Как передать аудиобуфер в службу преобразования речи в текст с помощью python

#python #speech-to-text #azure-speech

#python #преобразование речи в текст #azure-речь

Вопрос:

Я использую службу преобразования речи в текст Azure, используя python для обработки множества аудиозаписей. Для обработки аудиозаписей выполняются следующие шаги-

  1. Загрузка аудио с веб-сервера на локальный ‘C:/audio — веди машину.
  2. Передайте путь к загруженному аудио в Speech SDK — Audioconfig(filename =’C:/audio/my_audio.wav ‘)

Вместо загрузки на локальный компьютер я хочу получить файл с сервера и передать его непосредственно в службу преобразования речи в текст. Для чего,

  1. Я сохранил аудио в bytes форме в аудиобуфере следующим образом- raw_audio = my_audio_in_bytes # class <'bytes'>
  2. Затем я передаю аудиобуфер в AudioConfig(filename = raw_audio) — он не работает. Потому что он ожидает путь к файлу

Есть ли способ передать аудиобуфер в эту службу?

Настройка кода python:

 speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
audio_config = speechsdk.audio.AudioConfig(filename='C:/audios/audio1.wav')
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)  
 

Комментарии:

1. Проверьте документацию. Функция AudioConfig принимает stream параметр, хотя я не могу сказать вам, какой формат он хочет.

2. Также протестировано с stream, потоки push / pull принимают необработанные данные, но окончательные расшифровки содержат много избыточных слов. Следовательно, попробовал этот подход.

Ответ №1:

@user1990, согласно нашему обсуждению этой проблемы на GitHub, пожалуйста, используйте пакетную транскрипцию, поскольку Speech SDK напрямую не поддерживает распознавание из WAV-файла, размещенного на веб-сервисе (сначала вам нужно будет загрузить его локально).