Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 38 из 38
Like Tree26Likes

Тема: Мой вариант организации трансляции голоса

  1. #1
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    120
    Downloads
    5
    Uploads
    0

    Post Мой вариант организации трансляции голоса

    Часть 1.
    Хочу рассказать о своём опыте организации трансляции голоса. Надеюсь кому-то будет полезен.

    Всё начиналось как и у всех: захотелось принимать, слушать, записывать общение диспетчеров и пилотов в своём районе. Для этого была приобретена и установлена A0 AVIA от Радиала. От неё спуск RG213 порядка 20-ти метров. После чего стоит полосовой фильтр от PolyAntenn. Идея была не получить для каждой частоты отдельный поток, а иметь единственный поток, в котором будет результат сканирования списка частот. Т.е. нужна была либо р/ст с возможностью сканирования каналов, либо сканер. Самый большой вопрос встал в выборе оборудования. Поиспользовав один раз продукцию Uniden, в итоге серьёзно на неё подсел. В персональном парке были две модели: BC125AT и BCT15X.

    Небольшие подробности по точкам установки. Обе точки находятся в удалённых местах, доступ к которым получить можно, но не по мгновенно. Везде используются полноценные Intel Celeron с Windows 7 на борту (raspberry, odroid-ы, vaio x86 и пр. уже пройденный этап).

    Первая попытка была использовать BC125AT. Собрал блок питания от сети, установил фильтры. Решил проверить всё на столе. Под сканер есть ПО для программирования по шнурку. Более того, после пропадания питания, сканер потом снова возвращается в последний режим работы. Но одна особенность создавала неудобства: после редактировании списка каналов удалённо и заливки, сканер переходил в режим стояния ("HOLD") на одной из частот. И сдвинуть его можно было только нажав кнопку сканирования. Для удалённой установки подходило мало, но надо с чего-то начинать. Всё было установлено и запущено. И конечно же, по закону подлости, в точке установки, где никогда не было проблем с электричеством, начинаются приключения. За месяц было 3 отключения, после одного из которых сканер не вернулся в режим сканирования - пришлось ехать. Плюс любое изменение в списке каналов тоже планировалось под выезд на точку. В целом, решение неплохое, но не удобное. Прелесть была в том, что сканер не собирал столько шума, сколько свисток.

    Можно было запустить shoutcast сервер прямо на компьютере в месте установки, но не все из них на белом (а лучше ещё и статическом) IP. Дома есть Linux сервер на котором поднял IceCast сервер. С компьютера в точке установки транслировал с помощью приложения butt, которое умеет и переподключаться, и авторизоваться, и на нужный Mount point поток вещать, и с нужными настройками качества, и даже записывать (но об этом позже). Дополнительной прелестью было то, что в icecast можно создать пользователей и раздать всем друзьям персональные логины и пароли для прослушивания. Так же, вещание на слушателей с домашнего сервера, не генерировало дополнительный трафик для точки приёма, которая может быть, например, на мобильном интернете.

    Дальше появилась идея всё записывать и хранить на всякий случай, например, месяц. Делать это на компьютере в точке установки не разумно, хотя butt позволяет записывать: ограничения интернета, жёсткий диск там минимального размера. Решением оказался пакет streamripper. Который автоматически запускается с помощью supervisor, подключается к серверу вещания icecast2, на протяжении указанного промежутка времени, например, 4 часа, пишет поток в mp3 файл с датой и временем в имени. После окончания промежутка времени файл перемещается в другой каталог для хранения и streamripper запускается заново.

    Утром посмотрев в FR24 можно посмотреть, что интересного пролетало в Вашем районе за ночь. Увидев интересный борт, можно найти соответствующий файл и послушать радиообмен. Одно неудобство, искать нужный участок в 4-х часовом промежутке очень тяжело и неудобно. Особенность ночного радиообмена - отсутствие радиообмена. И нужно изловчиться не пропустить эти несколько секунд. Почти на любую проблему можно найти решение. Им оказалась программа sox, которая может заниматься автоматической обработкой аудиофайлов. Одна из функций - это удаление тишины. Поиграв с параметрами получил решение, которое удаляло тишину и превращало 4-х часовой ночной файл в 20-ти минутный с двухсекундными паузами между репликами. Точная привязка по времени при этом терялась (но было точно известно, что это произошло в нужный 4-х часовой период), но при этом возрастало удобство и уменьшалось количество используемого места для хранения. При используемом мной списке частот, днём такая функция была не нужна, потому что радиообмен идёт постоянно. Автоматический запуск такого обработчика нашёл своё место в планировщике cron. Так же туда была добавлена команда, удаляющая все файлы старше двух месяцев, что убрало необходимость делать это вручную. Период в два месяца вполне достаточен для того чтобы отпала всякая необходимость в хранимой информации.

    К этому времени захотелось изменить что-то в приёмной части. Поэтому вместо BC125AT был установлен BCT15X, имевший свой блок питания и пр. В первую очередь, из-за возможности запуска сканирования прямо из родной программы управления сканером. Как результат, отпала необходимость выездов для запуска сканирования, каналы можно было редактировать в любое удобное время.

    Однажды, при поиске альтернативной программы управления сканером, рассматривал возможность покупки другой модели, под которую нет штатной программы, наткнулся на ProScan. Сразу же подкупила функциональность. Программа рисовала переднюю панель сканера с которой можно было интерактивно управлять сканером. В итоге она могла сама определять, когда открыт шумоподав в сканере, записывать поток с микрофона и отправлять на icecast2 через интернет. Необходимость в butt пропала. Приятным дополнением стала статистика, которую программа ведёт по запрограммированным каналам: сохраняет сколько раз была активность на каждом канале. Ещё одним бонусом стала возможность сохранения каждого сеанса в отдельный файл с указанием даты, времени и имени канала. Так же настраивается количество дней хранения истории. Поиск в такой истории совсем не составляет труда. Но т.к. место и ресурсы в компьютере на точке установки ограничены, пришлось поставить небольшой период хранения. Ну и вишенкой на торте стала передача имени канала в потоке трансляции. Практически в любом плеере при проигрывании голоса отображается название канала, на котором сейчас есть активность. Теперь не надо угадывать какой из диспетчеров говорит - это видно в плеере.

    В конце концов получилась система:
    • с возможностью не жечь мобильный трафик в точке установки и раздавать друзьям доступ к трансляции

    • иметь группу каналов в одной трансляции и видеть в плеере на каком канале идёт радиообмен

    • иметь "оперативный" архив, со всеми деталями (дата, время, название канала, отдельным файлом), на компьютере в точке установки

    • иметь "долгосрочный" архив со сжатием (удалением тишины) дома


    P.S. Держать полноценный миникомпьютер на каждой точке затратно, сами сканеры не дёшевы и программа стоит денег. Моей задачей было построить то, что удобно и устраивает меня. Получившееся решение удобно для использования и, на мой взгляд, стоит своих денег.

    P.S. Можно было прицепить скриншотов и примеров, для большей наглядности, но задача была не украшать, а поделиться опытом. Если возникли вопросы - предлагаю писать в эту тему, собственно для того и создавалась.

  2. 8 пользователя(ей) сказали cпасибо:
    Disp (09.12.2016) garry72 (09.12.2016) IC7K (09.12.2016) riki (1 неделю назад) Rumlin (09.12.2016) scorp1988 (09.12.2016) tutpipos (11.12.2016) UA4WIY (09.12.2016)
  3. Ksuxa ATC

  4. #31
    Опытный
    Регистрация
    04.06.2016
    Город
    Челябинск
    Аэропорт
    USCC
    Flightradar24
    USCC7
    Сообщений
    130
    Downloads
    7
    Uploads
    0
    Цитата Сообщение от Liveatc Посмотреть сообщение
    Один недостаток этого проекта , что количество слушателей ограничивается 4 пользователями ...
    Хм, а в чём выражается ограничение? Смотрел исходники, вроде никаких предпосылок для этого не было, разве что ограничение количества пользователей задаётся в настройках, в зависимости от мощности машины и ширины канала интернета.

  5. Ksuxa ATC

  6. #32
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    120
    Downloads
    5
    Uploads
    0

    Часть 5.

    Часть 5. Под антенной поселились: фильтр LC - фильтр 118 - 136 мГц и Малошумящий усилитель (LNA) - 118-136 мГц от polyantenn. Что уменьшило эффект влияния соседних FM вещалок и исключило затухание в кабеле снижения (около 20м RG-213). Эффект оказался значительным. Если раньше борта были слышны с одной громкостью, а диспетчера с громкостью на уровень ниже, то теперь всё имеет приблизительно одинаковую громкость. Часть диспетчеров (например руление), которые "отсутсвовали" ранее, теперь хорошо слышны.
    Как вариант дальнейшего развития рассматриваю: "деление" сигнала на несколько выходов, раздельная обработка (выход 1 - голос, выход 2 - ACARS, и т.д.).
    P.S. Возможность записи несколько раз помогала находить "интересные" детали различных ситуаций: спор пилотов на 10$ кто дойдёт первым до границы, необычные слова в лексиконе диспетчера "чего вы туда попёрлись?", расхождения в прессрелизе и реальном состоянии дел при нештатной ситуации, ...
    tutpipos and Disp like this.

  7. #33
    МегаПрофи
    Регистрация
    10.11.2011
    Город
    Москва
    Сообщений
    1,642
    Downloads
    13
    Uploads
    0
    А какие частоты пишете? И где территориально ваш сетап?

  8. #34
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    120
    Downloads
    5
    Uploads
    0

    Часть 6 (скучная)

    Часть 6 (скучная). Добавился сплиттер (из семейства телевизионных) и потока стало 2. Второй нагрузил SDR свистком и AcarSDeco2. Появилась дополнительная возможность быстро искать "нештат" в логах AcarSDeco2, если он был. А потом уже, отталкиваясь от времени, искать что было про это сказано в голосовом эфире.

    Для переноса (резервного копирования) файлов записей голоса и логов acars был использован rsync (с интервалом запуска 5 минут) и мини сервер в одном из публичных облаков. На сервере установил nginx с авторизацией и листингом директорий - так появилась возможность дать знакомым удобный доступ к информации. Итого имею 3 папки: одна с логами ACARS, вторая для датированых записей по отдельным репликам, третья с агрегированными кусками по 2 часа и удалёнными паузами (для удобства поиска если надо послушать хронологию).

    Скука и инженерное начало не дало остановиться на этом. Пришла мысль автоматизировать поиск потенциально "интересной" информации. В итоге появилось решение отправлявшие все короткие записанные реплики на сервис распознавания голоса, получающее назад текст фразы. И отдельная часть решения ищущая в этих файлах слова из словаря (со всеми вариациями описания нештата). Можно было наверх и полноценный поиск взгромоздить, но до этого не дошло. После нескольких дней работы стало ясно, что качество распознавания совсем неприемлимое. Иногда в распознанной фразе не было ни единого слова из аудио оригинала. Подбор настроек и использование других сервисов принципиально не повысили качество распознавания. Итог: эта часть отключена до лучших времён
    Disp and Rumlin like this.

  9. #35
    МегаПрофи
    Регистрация
    07.11.2016
    Город
    Санкт-Петебург
    Аэропорт
    ULLI
    Flightradar24
    T-ULSS7
    Сообщений
    409
    Downloads
    7
    Uploads
    0
    Им оказалась программа sox, которая может заниматься автоматической обработкой аудиофайлов. Одна из функций - это удаление тишины. Поиграв с параметрами получил решение, которое удаляло тишину и превращало 4-х часовой ночной файл в 20-ти минутный с двухсекундными паузами между репликами.
    Dmi3, поделитесь пожалуйста командной строкой запуска sox для данного решения

  10. Ksuxa ATC

  11. #36
    Опытный
    Регистрация
    28.01.2014
    Город
    Москва
    Сообщений
    120
    Downloads
    5
    Uploads
    0

    Часть 7.

    Часть 7. Сохраняем записанное
    В оркестраторе supervisor постоянно крутится следующий скрипт, дампит с icecast сервера кусками по 2 часа и перекладывает в другую директорию для последующей обработки, в случае недоступности сервера - постоянно долбит его попытками подключения:
    Код:
    #!/bin/bash
    while :
    do
    streamripper http://user:user@127.0.0.1:7000/example -l 7200 -A -s --quiet -a %d -d /home/media/airodump/
    mv /home/media/airodump/*.mp3 /home/media/airodump/captured/
    rm -f /home/media/airodump/*.cue
    done
    Затем в кронтабе имеем две записи для дальнейшей обработки:
    Код:
    00 6,12,18,23 * * * /home/media/airodump/cut >/dev/null 2>&1
    00 1 * * * /home/media/airodump/purge >/dev/null 2>&1
    Первый из которых режет паузы в файлах записи, с помощью утилиты sox:
    Код:
    #!/bin/bash
    FILES=/home/media/airodump/captured/*
    pid=""
    
    pid=`ps -ef | grep -v grep | grep "sox" | awk '{print $2}'`
    #echo $pid
    if ! [ -n "$pid" ]; then
            #/usr/bin/logger -t cronjob "STARTED"
            for f in $FILES; do
             if [ -f "$f" ]; then
             #echo "Processing $f file..."
             sox "$f" $(echo $f | sed s/captured/compressed/ | sed s/\.mp3/\_edited\.mp3/) -V1 silence -l 1 0.1 1% -1 2.0 1%
             rm -f "$f"
             fi
            done
    fi
    Второй чистит старые записи:
    Код:
    #!/bin/bash
    find /home/media/airodump/compressed/* -mtime +182 -type f -delete -print >> /var/log/purge.log
    P.S. Понравился мануал по sox на этом сайте: https://digitalcardboard.com/blog/20...ox-of-silence/

  12. 2 пользователя(ей) сказали cпасибо:
    denzen (11.11.2018) MiB (12.11.2018)
  13. #37
    МегаПрофи
    Регистрация
    07.11.2016
    Город
    Санкт-Петебург
    Аэропорт
    ULLI
    Flightradar24
    T-ULSS7
    Сообщений
    409
    Downloads
    7
    Uploads
    0
    Вдохновившись информацией из данного поста мы с kosmos4892 сделали трансляцию ULPB (Бесовец, Петрозаводск).

    Сама онлайн трансляция доступна здесь: Icecast Streaming Media Server

    Железо:
    • Плата Orange Pi PC
    • Рация Yaesu ft51r
    • Noname USB звуковая карта


    Из особенностей реализации отмечу следующее. Лог трансляции пишется в файлы по графику: с 00:00 до 08:00 непрерывно, далее блоками по каждый час по часу. После завершения записи блока он проходит "чистку" от пустоты и очищенный файл направляется в Telegram как аудио с помощью специально написанного мной бота. Таким образом, проснувшись утром, можно через Telegram быстро ознакомиться с ночным эфиром. Далее в течение дня также получать сводку. Из плюсов также то, что это записи уже хранятся в облаке и доступны на всех устройствах.

    Реализация в скриптах такая:

    1. В /etc/crontab добавлено:
    Код:
    0 0 * * * root bash /home/bin/./ulpb-audio.sh 28860
    0 8-23 * * * root bash /home/bin/./ulpb-audio.sh 3660
    2. Код скрипта ulpb-audio.sh


    3. Telegram бота можно взять с Github в собранном виде или в исходниках там же.
    внутри архива два файла. Для установки нужно:
    1. установить зависимости (обычно только libjson-c3, команда sudo apt-get install libjson-c3)
    2. закинуть файл libtelebot.so.0.4.5 в папку /lib/
    3. дать права на исполнение sstgb командой chmod 777 sstgb


    4. Для полноценной работы бота может потребоваться связка dente-client + tor чтобы проксировать telegram, а также переход на сторонние DNS-серверы...
    UA4WIY, Aleksei, Dmi3 and 4 others like this.

  14. 3 пользователя(ей) сказали cпасибо:
    Dmi3 (17.11.2018) Exios (23.12.2018) nakos (18.11.2018)
  15. #38
    МегаПрофи
    Регистрация
    03.11.2012
    Город
    Ижевск
    Аэропорт
    USII
    Flightradar24
    T-USII1 RIP, F-UKFF4 / FlgihtAware SITE 28437, Site 33733 / RadarBox24 PGANRB300760
    Сообщений
    844
    Downloads
    16
    Uploads
    0
    Ещё один вариант организации трансляции голоса с авиадиапазона.

    http://air.swl.su:8073/



  16. Пользователь сказал cпасибо:
    Dmi3 (1 неделю назад)
 

 
Страница 4 из 4 ПерваяПервая ... 234

Похожие темы

  1. Настройка VRC для трансляции
    от LehaUWSS в разделе VirtualRadarServer
    Ответов: 23
    Последнее сообщение: 20.07.2014, 21:32
  2. Вопрос о трансляции на сервер РР
    от UKLI в разделе PlanePlotter
    Ответов: 2
    Последнее сообщение: 15.06.2012, 21:01
  3. Новые трансляции в сети RadarBox
    от Netcop22 в разделе AirnavSystems RadarBox
    Ответов: 35
    Последнее сообщение: 29.04.2012, 11:41
  4. Ответов: 13
    Последнее сообщение: 31.03.2012, 17:01
  5. Оборудование для трансляции ?
    от Nikita9344 в разделе Общий
    Ответов: 1
    Последнее сообщение: 20.01.2012, 07:20

Что искали прежде чем попасть на этот форум:

Nobody landed on this page from a search engine, yet!
ADSBRADAR.ru

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Powered by vBulletin®
Русский перевод: zCarot
(с) ADSBRADAR.ru 2011-2012
Текущее время: 00:15. Часовой пояс GMT +4.
Skin by CompleteVB
Яндекс.Метрика
Search Engine Optimization by vBSEO