我正在尝试使用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''
有人知道怎么做吗?预先谢谢你。
答案 0 :(得分:0)
注意:您正在运行的代码属于不是master的Github分支,因此可能不会更新。
有three Speech-to-Text main methods可以执行语音识别:
同步识别:将音频数据发送到语音转文本API,对该数据进行识别,并在处理完所有音频后返回结果。请求限于持续时间不超过1分钟的音频数据。
异步识别:将音频数据发送到语音转文本API并启动长时间运行的操作。异步请求音频数据,持续时间不超过180分钟。
流识别:对gRPC双向流中提供的音频数据执行识别。流请求旨在用于实时识别,例如从麦克风捕获实时音频。流识别在捕获音频时提供临时结果,例如在用户仍在讲话时允许结果出现。
如果您尝试进行实时语音识别,则最好的选择是流式识别。这是您可以尝试的demo file。
如果要测试其他两种方法,则有other demos in the repository for them。
关于音频files with more than 1 minute in duration。同步识别只能处理少于一分钟的音频文件。异步识别最多可以处理180分钟的音频文件,但是您必须从GCS提供它们。对于“流识别”,如果要处理持续时间超过一分钟的音频文件,则需要分批处理。
Google为测试目的提供了一些音频样本,它们存储在cloud-samples-test存储桶中。您可以使用以下命令显示它们的列表:
gsutil ls gs://cloud-samples-tests/speech