슬기로운 연구생활

[ Google Speech API ] 아무것도 출력이 되지 않는 이슈 본문

슬기로운 에러 생활

[ Google Speech API ] 아무것도 출력이 되지 않는 이슈

vhrehfdl 2019. 9. 10. 11:23

* 원인

- 아래 코드의 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 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='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)
Comments