小编Pet*_*zos的帖子

OGG_OPUS使用Google Speech API失败,但在同一样本中使用LINEAR16似乎没问题?

将OGG_OPUS提交到谷歌语音API中似乎存在问题,它不会返回任何结果并退出,但转换为LINEAR16时相同的示例工作正常.

使用带有同步提交的标准python库,为每个样本提供以下参数:

sample = speech_client.sample(
    content,
    source_uri=None,
    encoding='LINEAR16',
    sample_rate_hertz=16000)

sample = speech_client.sample(
    content,
    source_uri=None,
    encoding='OGG_OPUS',
    sample_rate_hertz=16000)
Run Code Online (Sandbox Code Playgroud)

样品通过以下方式转换为LINEAR16:

./ffmpeg-git-20170621-64bit-static/ffmpeg -i ./audio.opus -acodec libopus -b:a 16000 -f s16le -acodec pcm_s16le output.raw
Run Code Online (Sandbox Code Playgroud)

原始音频通过Chrome在58的js中通过MediaRecorder录制:https: //developer.mozilla.org/en-US/docs/Web/API/MediaRecorder 就Opus音频而言,使用以下构造函数参数似乎完全没问题:

audioBitsPerSecond=16000
mimeType="audio/webm"
Run Code Online (Sandbox Code Playgroud)

OGG_OPUS返回的错误是:

ValueError: No results returned from the Speech API.
Run Code Online (Sandbox Code Playgroud)

最初我有点困惑,因为OPUS通常将ffprobe注册为48000比特率,但这似乎是由于编解码器默认在48000解码,无论采样率如何.

google-speech-api

5
推荐指数
1
解决办法
512
查看次数

标签 统计

google-speech-api ×1