Распознавание потокового режима Cloud Speech API более 1 мин.

Я пытаюсь выполнить распознавание речи в реальном времени более 1 минуты с помощью Cloud Speech API, но предел синхронного распознавания речи составляет всего 1 минуту на запрос. Я пробовал запустить https://github.com/GoogleCloudPlatform/python-docs-samples/blob/speech-continuous/speech/cloud-client/transcribe_streaming_indefinite.py, как предлагается в ответе на этот вопрос Multiple StreamingRecognizeRequest, но я получил следующую ошибку:

File "transcribe_streaming_indefinite.py", line 30, in __init__ 
self._bytes_per_sample = 2 * self._num_channels AttributeError: 
'ResumableMicrophoneStream' object has no attribute '_num_channels''

Кто-нибудь знает, как это сделать? Заранее спасибо.


person sttc1998    schedule 29.11.2018    source источник


Ответы (1)


Примечание. Код, который вы запускаете, принадлежит ветке Github, которая не является главной, поэтому он может не обновляться.


Существует три основных метода преобразования речи в текст для распознавания речи. :

Синхронное распознавание: отправляет аудиоданные в API преобразования речи в текст, выполняет распознавание этих данных и возвращает результаты после обработки всего звука. Запросы ограничены аудиоданными продолжительностью 1 минуту или менее.

Асинхронное распознавание: отправляет аудиоданные в API преобразования речи в текст и инициирует длительную операцию. Используйте асинхронные запросы для аудиоданных любой продолжительности до 180 минут.

Распознавание потоковой передачи: выполняет распознавание аудиоданных, предоставленных в двунаправленном потоке gRPC. Запросы потоковой передачи предназначены для распознавания в реальном времени, например для записи звука в реальном времени с микрофона. Распознавание потоковой передачи обеспечивает промежуточные результаты во время записи звука, что позволяет отображать результат, например, пока пользователь все еще говорит.

Если вы пытаетесь распознавать речь в реальном времени, лучшим вариантом является потоковое распознавание. Вот демонстрационный файл ты можешь попробовать.

Если вы хотите протестировать два других метода, есть другие демки в репозитории для них.

Относительно аудио файлов продолжительностью более 1 минуты. Синхронное распознавание может обрабатывать только аудиофайлы короче одной минуты. Асинхронное распознавание может обрабатывать аудиофайлы продолжительностью до 180 минут, но вам нужно будет предоставить их из GCS. Для потокового распознавания, если вы хотите обрабатывать аудиофайлы продолжительностью более одной минуты, вам нужно делать это партиями.

Google предоставляет несколько образцов аудио для тестирования, они хранятся в корзине cloud-samples-test. Вы можете отобразить их список с помощью следующей команды:

gsutil ls gs://cloud-samples-tests/speech
person llompalles    schedule 18.12.2018
comment
У вас есть умная идея, как создавать эти партии? Я использую распознавание потоковой передачи, и проблема состоит в том, что из-за перезапуска предложения часто разрезаются пополам. Таким образом, контекст произнесенных слов теряется, а результат неверен. Я думаю, то же самое будет и при выполнении пакетов с распознаванием Async. - person Josef Biehler; 18.03.2019