python - 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''
有谁知道如何做到这一点?先感谢您。
解决方案
注意:您正在运行的代码属于非 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
推荐阅读
- ruby-on-rails - 捆绑安装在我的项目 ruby on rails 中不起作用
- .htaccess - .htaccess 难以根据最后一页反斜杠“/”确定要使用的文件
- php - 带着laravel护照大摇大摆不工作
- search - 如果我在具有逗号分隔数字的文本字段上使用通配符搜索,Alfresco SOLR4 不会给出结果
- javascript - 使用 Javascript 生成和读取受密码保护的 ZIP
- deep-learning - 如何使用 ModelCheckpoint 回调加载我的张量流模型?
- google-apps-script - 如何使用谷歌应用脚本每隔一列洗牌?
- angular - 未在子延迟加载的路由上调用父解析器
- javascript - 如何在react中提交表单时进行多个api调用
- c - C中函数调用的返回循环问题