Я наконец-то понял, как это сделать.Спасибо Николаю Шмыреву за то, что он указал мне правильное направление.Я написал подробные инструкции о том, как это сделать, и выкладываю их здесь, если кто-то захочет сделать то же самое.
Здесь будет описано, как настроить сервер потоковой передачи аудио в реальном времени + службу распознавания речи pocketsphinx на raspberry pi.Должно работать и на других дистрибутивах Linux.
1) Установить пакеты
sudo apt-get install gstreamer-1.0 gstreamer1.0-tools apache2 libapache2-mod-php libopus-dev libmicrohttpd-dev libjansson-dev libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev libconfig-dev pkg-config gengetopt libtool automake git bison python-dev swig make gedit firefox-esr
2) Скомпилировать janus
git clone https://github.com/meetecho/janus-gateway
cd janus-gateway
sh autogen.sh
./configure --prefix=/opt/janus
make -j4
sudo make install
sudo make configs
cd ..
3) Скомпилировать cmusphinx
git clone https://github.com/cmusphinx/sphinxbase
git clone https://github.com/cmusphinx/pocketsphinx
git clone https://github.com/cmusphinx/sphinxtrain
cd sphinxbase
./autogen.sh
make -j4
sudo make install
cd ..
cd pocketsphinx
./autogen.sh
make -j4
sudo make install
cd ..
cd sphinxtrain
./autogen.sh
make -j4
sudo make install
cd ..
pip install pocketsphinx
4) Обновить файл конфигурации janus
Просто замените содержимое файла /opt/janus/etc/janus/janus.plugin.streaming.jcfg следующим:
; You should ensure that one of the streams configured for Janus is the
; following. You need to edit
;
; /opt/janus/etc/janus/janus.plugin.streaming.cfg
;
; and add/modify it to have the following section. Make sure all other
; sections in that file are commented out/deleted.
[gstreamer-sample]
type = rtp
id = 1
description = Opus/VP8 live stream coming from gstreamer
audio = yes
audioport = 5002
audiopt = 111
audiortpmap = opus/48000/2
secret = adminpwd
5) Установите параметры среды vars
Вам необходимо запустить это в каждом терминале, где вы используете pocketsphinx, вместо этого вы можете добавить это в свой файл .bashrc:
export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
6) Скопировать содержимоеjanus-gateway / html в ваш каталог apache2 (возможно, / var / www / html)
sudo cp -a janus-gateway/html/. /var/www/html
7) Установите аудио по умолчанию на звуковую карту USB и перезагрузите
gedit /usr/share/alsa/alsa.conf
покажет:
defaults.ctl.card 0
defaults.pcm.card 0
изменить его на:
defaults.ctl.card 1
defaults.pcm.card 1
перезагрузка:
sudo reboot
8) перезапустить apache2
sudo service apache2 restart
9) запустить Янус
janus -F /opt/janus/etc/janus
10) Запустите команду gstreamer 1:
gst-launch-1.0 alsasrc ! audio/x-raw, endianness=1234, signed=true, width=16, depth=16, rate=44100, channels=1, format=S16LE ! tee name=t \
t. ! queue ! audioconvert ! audioresample ! tcpserversink host=127.0.0.1 port=3000 \
t. ! queue ! audioresample ! audio/x-raw, channels=1, rate=16000 ! opusenc bitrate=20000 ! rtpopuspay ! udpsink host=127.0.0.1 port=5002
Вы должны увидеть что-то вроде «New Audio Stream!»в терминале, где вы запустили janus.
11) Запустите команду gstreamer 2:
gst-launch-1.0 tcpclientsrc host=127.0.0.1 port=3000 ! audio/x-raw, endianness=1234, signed=true, width=16, depth=16, rate=44100, channels=1, format=S16LE ! audioconvert ! audioresample ! pocketsphinx ! fakesink
**) Завершено!
Вы можете перейти к http://127.0.0.1/streamingtest.html, нажмите «Пуск» на вкладке «Демонстрация плагина»: выберите «Потоковое вещание Opus / VP8 из gstreamer (live)» и нажмите «Смотреть или слушать».Вы услышите звук, исходящий из вашего микрофона.Вы можете посетить этот сайт с любого компьютера в локальной сети, заменив 127.0.0.1 на ip-адрес raspberry pi.У меня возникли проблемы с Chrome, используйте Firefox.Мы установили его в 1).Вы можете запустить его из меню или набрав «firefox-esr» в терминале.
Вы можете проверить pocketsphinx / src / gst-plugin / livedemo.c или livedemo.py, чтобы увидеть, как использовать pocketsphinx сGStreamer.