Я написал программу на 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
, моя программа выполняет правильный код.Что я делаю не так?
Спасибо!