gpt4 book ai didi

google-cloud-speech - 为什么我的 python 脚本无法识别音频文件中的语音?

转载 作者:行者123 更新时间:2023-12-02 13:10:29 24 4
gpt4 key购买 nike

我有以下代码段成功识别短(不到 1 分钟)测试音频文件,但无法识别另一个长音频文件(1.5 小时)。

from google.cloud import speech


def run_quickstart():
speech_client = speech.Client()
sample = speech_client.sample(source_uri="gs://linear-arena-2109/zoom0070.flac", encoding=speech.Encoding.FLAC)
alternatives = sample.recognize('uk-UA')
for alternative in alternatives:
print(u'Transcript: {}'.format(alternative.transcript))

with open("Output.txt", "w") as text_file:
for alternative in alternatives:
text_file.write(alternative.transcript.encode('utf8'))

if __name__ == '__main__':
run_quickstart()

这两个文件都会上传到 Google Cloud

第一个: https://storage.googleapis.com/linear-arena-2109/sample.flac

第二个: https://storage.googleapis.com/linear-arena-2109/zoom0070.flac

两者都是使用 ffmpeg 实用程序从 mp3 转换而来:

ffmpeg -i sample.mp3 -ac 1 sample.flac
ffmpeg -i zoom0070.mp3 -ac 1 zoom0070.flac

第一个文件已成功识别,但第二个文件输出以下错误:

google.gax.errors.RetryError: GaxError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, Sync input too long. For audio longer than 1 min use LongRunningRecognize with a 'uri' parameter.)>)

但是我已经在我的 python 脚本中使用了 uri 参数。怎么了?

更新

@NieDzejkob 帮助理解了该错误。因此,应该使用方法 long_running_recognize 而不是 recognize。完整的long_running_recognize使用示例可以在相应的document page中找到。

最佳答案

对于任何超过 1 分钟的音频文件,您需要使用异步语音识别并且该文件必须上传到 Google Cloud Storage,以便您可以传入一个gcs_uri

此外,您还需要在脚本中使用 .long_running_recognize 方法。 GCP 文档中的示例可以找到 here .

我意识到OP已经解决了这个问题,但我认为提供一个答案并对其进行概括会很有用。

关于google-cloud-speech - 为什么我的 python 脚本无法识别音频文件中的语音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44835522/

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