gpt4 book ai didi

python - 谷歌语音 API Python 异常 : Specify FLAC encoding to match file header?

转载 作者:太空狗 更新时间:2023-10-30 02:55:13 26 4
gpt4 key购买 nike

我正在运行此处发布的 Google Speech API Python 示例代码:https://googlecloudplatform.github.io/google-cloud-python/stable/speech-usage.html

我要使用异步识别方法(只允许使用 LINEAR16 编码):

导入 Google Cloud 客户端库

  from google.cloud import speech

client = speech.Client()
sample = client.sample(source_uri='gs://my-bucket/example.flac',
encoding=speech.Encoding.LINEAR16,
sample_rate=44100)
operation = sample.async_recognize(language_code='es-CL',max_alternatives=2)

retry_count = 100
while retry_count > 0 and not operation.complete:
retry_count -= 1
time.sleep(10)
operation.poll() # API call

operation.complete

for result in operation.results:
for alternative in result.alternatives:
print('=' * 20)
print(alternative.transcript)
print(alternative.confidence)

这是我遇到的错误:google.gax.errors.RetryError:GaxError(异常发生在未归类为 transient 的重试方法中,由 <_RPC 的 Rendezvous 终止(StatusCode.INVALID_ARGUMENT,指定 FLAC 编码以匹配文件头。)>)

我该如何解决这个问题?使用同步方法时我没有遇到此问题。

最佳答案

从您的代码(以及您链接到的 Google 代码)看来,您将编码指定为 LINEAR16 但使用的是 FLAC 文件。如果您需要使用异步 API,则必须将 .flac 文件转换为原始 LINEAR PCM 文件。所以第二行应该看起来更像这样:

sample = client.sample(source_uri='gs://my-bucket/example.raw',
encoding=speech.Encoding.LINEAR16,
sample_rate=44100)

要从 FLAC 转换为 LINEAR16,您需要使用其他工具,例如 sox。参见 this page有关转换文件格式的更多信息。该命令可能类似于:

sox example.flac example.raw

关于python - 谷歌语音 API Python 异常 : Specify FLAC encoding to match file header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43163886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com