添加Diarization配置后Speechmatics API密钥验证异常问题排查
问题原因及解决思路
出现这个问题的核心是代码错误处理逻辑过于笼统,把所有HTTP请求错误都归为API密钥无效,但实际触发错误的原因通常是以下几种:
- 权限不足:说话人分离(
diarization: speaker)是Speechmatics的付费功能,你的API密钥对应的账号未开通该权限,请求被拒绝后返回的403类错误被代码误判为密钥无效。 - 参数位置错误:
diarization参数的配置层级不符合API要求。在v2 API中,该参数需要嵌套在transcription_config对象内,而非顶层配置项,位置错误会导致请求格式非法,触发HTTP错误。 - API版本不兼容:当前使用的v2 API可能不支持
diarization参数,该功能仅在更高版本(如v3)的API中可用,用旧版本URL请求新参数会导致报错。
快速排查步骤
- 修正错误处理逻辑:修改捕获
HTTPStatusError的代码,打印具体错误信息,明确真实原因:except HTTPStatusError as e: print(f"请求错误:状态码 {e.response.status_code},详情:{e.response.text}") - 调整参数位置:确保
diarization参数放在正确层级,v2 API的正确写法示例:conf = { "type": "transcription", "transcription_config": { "language": LANGUAGE, "enable_entities": True, "diarization": "speaker" # 嵌套在transcription_config内 }, } - 确认账号权限:登录Speechmatics控制台,检查账号是否已开通说话人分离的付费功能。
- 验证API版本:如果v2不支持该功能,将API URL改为v3版本(
https://asr.api.speechmatics.com/v3),并对应调整配置参数结构。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

