IBM Watson Speech to Text Audio / Basic не принимает узкополосные .WAV - PullRequest
0 голосов
/ 21 сентября 2018

Я написал программу на Python 3.6, которая использует библиотеку IBM Watson's Speech to Text.Когда программа ищет папку и читает каждый файл .wav по отдельности, она должна проверять частоту файла и по-разному помечать мою интеграцию с IBM Watson.Затем он принимает ответ и отображает его в список.Через тестирование заглушки основной, проблемный код, о котором идет речь, находится здесь:

        speech_to_text.set_detailed_response(True)

        # Narrowband
        if rate < 16000:
            x = json.loads(
                json.dumps(speech_to_text.recognize(audio_file, content_type='audio/basic', timestamps=True, max_alternatives=0).get_result(),
                indent=2), object_hook=lambda d: namedtuple('X', d.keys())(*d.values())
                )

        # Broadband
        else:
            x = json.loads(
                json.dumps(speech_to_text.recognize(audio_file, content_type='audio/wav', timestamps=True, max_alternatives=0).get_result(),
                indent=2), object_hook=lambda d: namedtuple('X', d.keys())(*d.values())
                )

Эта программа полностью работоспособна, когда я передаю ей файл со скоростью более 16 кбит / с.Однако, что-то меньшее, и я получаю эту ошибку:

  File "echo_cli.py", line 64, in <module>
    json.dumps(speech_to_text.recognize(audio_file, content_type='audio/basic', timestamps=True, max_alternatives=0).get_result(),
  File "C:\Python37\lib\site-packages\watson_developer_cloud\speech_to_text_v1.py", line 373, in recognize
    accept_json=True)
  File "C:\Python37\lib\site-packages\watson_developer_cloud\watson_service.py", line 479, in request
    info=error_info, httpResponse=response)
watson_developer_cloud.watson_service.WatsonApiException: Error: This 8000hz audio input requires a narrow band model.  See https://<STT_API_ENDPOINT>/v1/models for a list of available models., Code: 400 , Information: {'code_description': 'Bad Request'} , X-dp-watson-tran-id: stream01-167902601 , X-global-transaction-id: f257b1145ba417780a01fd89

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

Согласно этой документации, я должен быть в состоянии принять узкополосный файл с audio/basic,и в соответствии с командами печати, которые я использовал, когда я загружаю узкополосный .wav, моя программа выполняет правильный код.Что я делаю не так?

Спасибо!

1 Ответ

0 голосов
/ 21 сентября 2018

Вы должны передавать тип audio/basic MIME только в том случае, если это тип загружаемого вами файла (также известный как файл "Sun .au", это один из самых старых типов аудиофайлов) ).Если вы загружаете файл WAV, укажите тип MIME как audio/wav, независимо от частоты дискретизации.

...