Google Speech-to-Text v2 API list_recognizers调用预期输出及空结果疑问
Google Speech-to-Text v2 list_recognizers 空结果问题解析
预期输出
调用list_recognizers的预期输出分两种情况:
- 若项目下存在用户创建的自定义识别器,返回的迭代器会包含多个识别器对象,每个对象包含核心属性:
name:识别器的资源路径(如projects/xxx/locations/us-central1/recognizers/xxxx)display_name:识别器的自定义名称language_codes:识别器支持的语言代码model:关联的模型路径
遍历迭代器后可得到类似如下结构的结果:
[ Recognizer( name="projects/xxx/locations/us-central1/recognizers/12345", display_name="my-business-recognizer", language_codes=["en-US"], model="projects/xxx/locations/us-central1/models/base-model" ) ] - 若项目下没有任何自定义识别器,返回空迭代器是正常行为。
空结果的可能原因
- 无自定义识别器:
list_recognizers仅返回用户主动创建的自定义识别器,Google提供的预训练模型不会被列入结果。如果只使用预训练模型做识别任务,从未创建过自定义识别器,返回空迭代器符合预期。 - 位置不匹配:自定义识别器与创建时指定的位置绑定,必须在对应位置调用接口才能查询到。比如在
us-central1创建的识别器,用global作为请求位置时无法查到。 - 权限缺失:虽然项目ID在识别调用中有效,但
list_recognizers需要speech.recognizers.list权限。当前账号若仅拥有Speech User角色(仅允许识别调用),会因权限不足无法获取识别器列表,此时不会返回403(因为基础项目权限有效),而是返回空结果。需确认账号是否拥有Speech Admin角色或包含该权限的自定义角色。 - 客户端配置错误:检查客户端初始化时指定的位置是否与请求
parent中的位置一致,避免客户端默认位置覆盖请求参数导致查询范围错误。 - 识别器创建未完成/失败:若尝试创建过自定义识别器,可登录Google Cloud控制台的Speech-to-Text页面,确认识别器是否成功创建(比如是否因参数错误、资源配额不足导致创建失败)。
内容的提问来源于stack exchange,提问作者Malcolm Slaney
相关产品推荐
相关产品推荐

