将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解码,无论采样率如何.