谷歌云语音到文本不提供 OGG 和 MP3 文件的输出

时间:2021-04-25 20:07:32

标签: python google-cloud-platform ffmpeg google-speech-api google-cloud-speech

我正在尝试对一堆超过 10 分钟的音频文件进行语音到文本的转换。我不想通过直接上传 wav 文件来浪费云存储桶上的存储空间。所以我使用 ffmpeg 将文件转换为 ogg 或 mp3,如: ffmpeg -y -i audio.wav -ar 12000 -r 16000 audio.mp3

ffmpeg -y -i audio.wav -ar 12000 -r 16000 audio.ogg

出于测试目的,我在一个虚拟 wav 文件上将语音运行到文本服务,它似乎有效,我按预期获得了文本。但是由于某种原因,当我使用 ogg 或 mp3 文件时,它没有检测到任何语音。我也无法使用 amr 文件。

我的代码:

def transcribe_gcs(gcs_uri):
    client = speech.SpeechClient()

    audio = speech.RecognitionAudio(uri=gcs_uri)
    config = speech.RecognitionConfig(
        encoding="OGG_OPUS", #replace with "LINEAR16" for wav, "OGG_OPUS" for ogg, "AMR" for amr
        sample_rate_hertz=16000,
        language_code="en-US",
    )
    print("starting operation")
    operation = client.long_running_recognize(config=config, audio=audio)
    response = operation.result()
    print(response)

我已经正确设置了身份验证,所以这不是问题。

当我在相同的音频上运行语音到文本服务但以 ogg 或 mp3(我只是从 mp3 的配置中注释掉编码设置)格式时,它没有响应,只是打印出一个换行符并完成。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用 Opus 或 FLAC

FLAC

FLAC 已压缩但无损。这将产生最佳的语音转文本结果。

ffmpeg -i input.wav -vn output.flac

作品

如果文件空间很重要,那么在 OGG 中使用 Opus。它可以制作高质量的小文件。

ffmpeg -i input.wav -vn -c:a libopus output.ogg
相关问题