Error in google cloud speech api synchronous speech recognition docs
我将 https://cloud.google.com/speech/docs/sync-recognize 上的谷歌云语音 api 同步语音识别文档中的信息复制到我的代码中,但是当我运行代码时,我收到了很多错误数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Traceback (most recent call last): File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/retry.py", line 121, in inner return to_call(*args) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/retry.py", line 68, in inner return a_func(*updated_args, **kwargs) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/grpc/_channel.py", line 487, in __call__ return _end_unary_response_blocking(state, call, False, deadline) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/grpc/_channel.py", line 437, in _end_unary_response_blocking raise _Rendezvous(state, None, None, deadline) grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, sample_rate_hertz (16000) in RecognitionConfig must either be omitted or match the value in the WAV header ( 44100).)> During handling of the above exception, another exception occurred: Traceback (most recent call last): File"TESTINGAUDIO.py", line 27, in <module> print (transcribe_file("output.wav")) File"TESTINGAUDIO.py", line 20, in transcribe_file response = client.recognize(config, audio) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/gapic/speech/v1/speech_client.py", line 201, in recognize return self._recognize(request, options) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/api_callable.py", line 452, in inner return api_caller(api_call, this_settings, request) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/api_callable.py", line 438, in base_caller return api_call(*args) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/api_callable.py", line 376, in inner return a_func(*args, **kwargs) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/retry.py", line 127, in inner ' classified as transient', exception) google.gax.errors.RetryError: RetryError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, sample_rate_hertz (16000) in RecognitionConfig must either be omitted or match the value in the WAV header ( 44100).)>) |
这是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import os import io def transcribe_file(speech_file): """Transcribe the given audio file.""" from google.cloud import speech from google.cloud.speech import enums from google.cloud.speech import types client = speech.SpeechClient() with io.open(speech_file, 'rb') as audio_file: content = audio_file.read() audio = types.RecognitionAudio(content=content) config = types.RecognitionConfig( encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16, sample_rate_hertz=16000, language_code='en-US') response = client.recognize(config, audio) # Each result is for a consecutive portion of the audio. Iterate through # them to get the transcripts for the entire audio file. for result in response.results: # The first alternative is the most likely one for this portion. print('Transcript: {}'.format(result.alternatives[0].transcript)) print (transcribe_file("output.wav")) |
有人可以帮我解决这个错误吗?
以下是接受 sorak 建议后的第二批错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Traceback (most recent call last): File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/retry.py", line 121, in inner return to_call(*args) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/retry.py", line 68, in inner return a_func(*updated_args, **kwargs) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/grpc/_channel.py", line 487, in __call__ return _end_unary_response_blocking(state, call, False, deadline) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/grpc/_channel.py", line 437, in _end_unary_response_blocking raise _Rendezvous(state, None, None, deadline) grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, Must use single channel (mono) audio, but WAV header indicates 2 channels.)> During handling of the above exception, another exception occurred: Traceback (most recent call last): File"TESTINGAUDIO.py", line 26, in <module> print (transcribe_file("output.wav")) File"TESTINGAUDIO.py", line 20, in transcribe_file response = client.recognize(config, audio) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/gapic/speech/v1/speech_client.py", line 201, in recognize return self._recognize(request, options) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/api_callable.py", line 452, in inner return api_caller(api_call, this_settings, request) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/api_callable.py", line 438, in base_caller return api_call(*args) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/api_callable.py", line 376, in inner return a_func(*args, **kwargs) File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/gax/retry.py", line 127, in inner ' classified as transient', exception) google.gax.errors.RetryError: RetryError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, Must use single channel (mono) audio, but WAV header indicates 2 channels.)>) |
错误信息似乎在抱怨:
1 | sample_rate_hertz=16000 |
因为它指定的采样率与标准 wav 采样率 44100 冲突。它说这个值
1 | must either be omitted or match the value in the WAV header |
...如果你只是删除那行会发生什么?