Я разработал код js, способный выполнять аудиовызов webrtc только в сочетании с pocketsphinxjs для распознавания речи горячими ключевыми словами.
Я объединил эту демонстрацию горячих ключевых слов с распознаванием текста (в которой используется трехлетняя версия pocketsphinxjs) с , этот webrtc вызывает только аудио и этот аудио визуализатор , со следующими модификациями:
- Я переместил два вызова конструктора
AudioContext()
всего за один (и при необходимости предоставил его в качестве параметра) после успешной операции getUserMedia()
, поскольку Google Chrome разрешает создание AudioContext()
только после того, как пользователь дает доступ к датчикам .
- Я также переместил операцию
getUserMedia()
, чтобы она запускалась с момента запуска окна window.onLoad, как в демонстрации pocketsphinxjs, для немедленного получения доступа к потоку.
- Я ограничил кнопки «Пуск» и «Стоп» кнопками «Вызов» и «Зависание».
- Так как pocketsphinxjs (ognizer.js + audioRecorderWorker.js) запускается в веб-работниках, и их невозможно загрузить как стандартные js-файлы , я использовал следующую команду для запуска демонстрации:
python -m SimpleHTTPServer 8000
Файл main.js довольно большой (но в основном трудно читаемый), так как объединяет три демонстрации, но, похоже, работает:
1) Я запускаю свое веб-приложение с помощью команды "python -m SimpleHTTPServer 8000" внутри своего каталога веб-приложений 2) Я открываю экземпляр google chrome для "localhost: // 8000" и даю доступ к своему микрофону 3) Я жду до обработчики распознавателя и записывающего устройства готовы. 4) Я нажимаю кнопку вызова и вижу визуализатор звукового графика, вывод распознавания некоторых ключевых слов "Cat", поскольку распознаватель уже скомпилирован для этого конкретного и слышу себя.
Я знаю, что это происходит только в браузере моего ноутбука, и есть попытки выполнить эту демонстрацию в мобильном приложении. Пока что использование веб-обозрения - лучшая идея, которая у меня есть, но вот вопросы, которые возникли у меня, потому что я никогда не работал с реагировать на нативный.
- Это модуль реакции-нативного веб-просмотра Я бы хотел использовать.
- Имеет ли он доступ к аудиопотоку с помощью
getUserMedia()
api? Если да, появляется ли оно дважды, один раз как собственное приложение, запрашивающее аудио-разрешение, а второй как браузер?
- Позволяет ли создание веб-работников? Если да, могут ли они порождаться через файловую систему, а не через локальный http-демон, как с моей командой
python -m SimpleHTTPServer
?
- Может ли это быть скрыто?
Кроме того, как вы думаете, это звучит как разумный технический стек, или я должен идти с чистым мобильным нативным кодом?