首页 > 解决方案 > Google Speech API 在 Python 子进程中不起作用

问题描述

此问题仅出现在 Google Cloud 中的特定项目(在多个虚拟机上)。完全相同的代码在其他项目和我的 Mac 上完美运行。

我有一个 python 模块,它运行流式语音 API,如下所示:

responses = client.streaming_recognize(
    streaming_config,
    get_requests()
)

该代码基于此处的 Google 示例

我可以直接运行这个模块并看到它正在获取结果回调。即使在后来(见下文)我遇到问题的 Google VM 上也是如此。

然后我运行相同的模块,multiprocessing.Process然后调用streaming_recognize什么也不做。
我使用日志记录来查看它正在被调用并且代码继续运行。我没有错误

但是get_requests()永远不会被调用。

我在每个环境中都尝试了不同的服务帐户。但是失败只显示在一个项目中,无论使用什么服务帐户。

任何应该有不同行为的原因是子过程?

更新: 我发现如果我开始这个过程而不是subprocess.Popen一切正常。提醒一下,这个问题(基于我如何开始流程的行为差异)只发生在一个特定的 Google Cloud 项目中,而不发生在其他任何地方。

标签: pythongoogle-cloud-platformpython-multiprocessinggoogle-speech-api

解决方案


推荐阅读