Потоковая передача аудио-буфера с веб-страницы в C# Google Cloud Speech to Text SDK и получение 400 ошибок
У меня есть требование добавить речь к тексту с веб-страницы. Я не могу найти достаточно документации, чтобы сказать мне, какой будет лучший подход. Я читал посты и просматривал образцы Stream Audio из C#.
ОБНОВЛЕНИЕ: я преобразовал в WAV формат на клиенте перед отправкой на сервер. Результатом является файл, который распознается как WAV без вывода.
ОБНОВЛЕНИЕ [20181004]: я могу успешно отправить запись и сохранить полный WAV-файл, а затем отправить его в Google Speech API branch_Record-in-browser-before-sending-all
, В ветке также содержится код, который успешно отправляет фрагменты данных WAV на сервер, но Google Speech API не возвращает результаты для этих аудио частей
ОБНОВЛЕНИЕ [20181005]: Попытка использовать ConcurrentQueue для реализации потоковой передачи без успеха. Переместил последний код в develop
филиал и установите его по умолчанию.
ОБНОВЛЕНИЕ [20181012] Попытался скопировать и преобразовать код из https://github.com/googlecodelabs/speaking-with-a-webpage
Мой подход: Пример AspnetCore Source + WebPage
Я записываю звук с микрофона и отправляю буфер через веб-сокеты в веб-приложение AspNetCore. В веб-приложении я попытался буферизовать данные и разместить фрагменты по 32 Кб. Код локального буфера был введен, чтобы увидеть, исправит ли это 400 ошибок.
Код работает для отправки данных в Google Speech API. В консоли Google я вижу, что 100% моих вызовов "WriteAsync" вернули ошибку 400, но я понятия не имею, где взять детали. Я также не получаю никаких ответов от API, позволяющих мне распечатать подробности ошибки.
Я предполагаю, что данные, отправляемые в речевой API, имеют неверный формат или размер.
[20181004] Удалены устаревшие фрагменты кода