Как выглядит конфигурация преобразования речи в текст Google для аудиофайла .opus - PullRequest
0 голосов
/ 06 августа 2020

Я передаю аудиофайл .opus в API преобразования речи в текст Google для транскрипции. Я использую следующие конфигурации:

  • encoding = enums.RecognitionConfig.AudioEncoding.OGG_OPUS
  • language_code = "en-US"
  • sample_rate_hertz = 16000

Я получаю следующую ошибку:

google.api_core.exceptions.GoogleAPICallError: None Unable to recognize speech, possible error in encoding or channel config. Please correct the config and retry the request.

Я пробовал другие кодировки, такие как FLA C и LINEAR16, и на выходе получил None.

Требуется ли для аудиофайлов opus дополнительное поле конфигурации и как должен выглядеть файл конфигурации?

1 Ответ

0 голосов
/ 07 августа 2020

Проработав документацию, предоставленную Google, и пару попыток я нашел решение полученной ошибки. Кодирование OGG_OPUS требует явного определения конфигурации audio_channel_count. В моем случае аудиоканалов было 2, и мне нужно было явно определить это. Кроме того, в случае многоканальности для параметра enable_separate_recognition_per_channel необходимо установить значение True.

Конфигурация, которая сработала для меня:

encoding = enums.RecognitionConfig.AudioEncoding.OGG_OPUS
config = {
        "audio_channel_count": audio_channel_count,
        "enable_separate_recognition_per_channel": enable_separate_recognition_per_channel,
        "language_code": language_code,
        "sample_rate_hertz": sample_rate_hertz,
        "encoding": encoding
    }

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

...