Речь в реальном времени с распознаванием текста (обнаружение намерения) - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть веб-приложение, которое позволяет пользователю обнаруживать некоторые намерения с помощью Dialogflow API. У меня есть рабочее решение, но оно довольно медленное. В ярлыке текущий поток выглядит так:

Начать запись -> Остановить запись -> Получить блоб WAV PCM (RecordRT C lib) -> Отправить в. NET API -> Invoke Dialogflow API -> Вернуть обнаруженное пользователем намерение.

Так что это очень синхронный процесс, следующий шаг можно сделать, если предыдущий завершен. Я ищу другое решение в реальном времени.

Начало записи -> Отправка фрагментов аудиопотока в API с помощью websocket (SignalR) -> Отправка фрагментов в Dialogflow API по GRP C -> Остановить запись -> Закрыть все потоки -> Вернуть обнаруженное пользователем намерение.

Я пытаюсь получить аудиоблоки, используя RecordRT C, но это не так просто. Метод OnDataAvailable получает блочный блок, но проблема в том, что он всегда содержит некоторый заголовок WAV. Когда я попробовал некоторые другие библиотеки Записать как Ogg, используя MediaRecorder в Chrome, они делают то же самое - так что я предполагаю, что это ограничение формата WAV PCM, что заголовок всегда должен содержать некоторую длину данных, и это приводит нас к Другая проблема - как передавать эти данные?

  1. Можно ли разработать упомянутое решение с использованием формата WAV PCM или выбрать другой формат?
  2. Знаете ли вы какой-нибудь реальный примеры распознавания времени (JS,. NET, Dialogflow / Speech-to-text API)?
...