首页 > 解决方案 > Cloud Speech API 流模式识别超过 1 分钟

问题描述

我正在尝试使用 Cloud Speech API 进行超过 1 分钟的实时语音识别,但同步语音识别的限制仅为每个请求 1 分钟。我已经尝试运行https://github.com/GoogleCloudPlatform/python-docs-samples/blob/speech-continuous/speech/cloud-client/transcribe_streaming_indefinite.py ,正如从这个问题Multiple StreamingRecognizeRequest的回答中建议的那样, 但我得到了这个错误:

File "transcribe_streaming_indefinite.py", line 30, in __init__ 
self._bytes_per_sample = 2 * self._num_channels AttributeError: 
'ResumableMicrophoneStream' object has no attribute '_num_channels''

有谁知道如何做到这一点?先感谢您。

标签: pythonspeech-recognitiongoogle-speech-apigoogle-cloud-speech

解决方案


注意:您正在运行的代码属于非 master 的 Github 分支,因此可能不会更新。


Speech-to-Text执行语音识别的主要方法有以下三种:

同步识别:将音频数据发送到 Speech-to-Text API,对该数据执行识别,并在处理完所有音频后返回结果。请求仅限于持续时间为 1 分钟或更短的音频数据。

异步识别:将音频数据发送到 Speech-to-Text API 并启动长时间运行的操作。对最长 180 分钟的任何持续时间的音频数据使用异步请求。

流式识别:对 gRPC 双向流中提供的音频数据执行识别。流式传输请求是为实时识别目的而设计的,例如从麦克风捕获实时音频。流式识别在捕获音频时提供临时结果,例如,当用户仍在说话时,结果会出现。

如果您正在尝试进行实时语音识别,您最好的选择是流式识别。这是您可以尝试的演示文件。

如果您想测试其他两种方法,则存储库中还有其他演示

关于时长超过 1 分钟的音频文件。同步识别只能处理不到一分钟的音频文件。异步识别可以处理长达 180 分钟的音频文件,但您必须从 GCS 提供它们。对于流式识别,如果要处理持续时间超过一分钟的音频文件,则需要分批进行。

Google 提供了一些用于测试目的的音频样本,它们存储在 cloud-samples-test 存储桶中。您可以使用以下命令显示它们的列表:

gsutil ls gs://cloud-samples-tests/speech

推荐阅读