- 원인
아래 코드의 sample_rate_hertz가 일치하지 않아서 그렇다.
ffmpeg를 사용해 동영상 확장자를 변환할 때 맞춰주어야 한다.
해결방법
ffmpeg로 변환을 시킨다.
sample_rate_hertz가 16000으로 설정했기 때문에 변활시킬 때 16000으로 바꿔주어야 한다.ffmpeg -i audio_file.mp4 -acodec pcm_s16le -ac 1 -ar 16000 audio_file.wav
예제 코드
def transcribe_file(speech_file):"""Transcribe the given audio file."""from google.cloud import speechfrom google.cloud.speech import enumsfrom google.cloud.speech import typesclient = 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='ko-KR')response = client.recognize(config, audio)print("test2")# 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:print("test3")# The first alternative is the most likely one for this portion.print(u'Transcript: {}'.format(result.alternatives[0].transcript))speech_file = "audio_file.wav"transcribe_file(speech_file)