使用Azure speech-to-text如何获取多个NBest备选转录结果
实现单语音段多备选转录需补充的配置
仅设置format=detailed参数只会开启NBest字段的结构返回,默认情况下Azure Speech-to-Text会将备选结果数量限制为1,需要额外补充以下配置才能拿到多条转录结果:
- 显式设置
nbest查询参数
该参数的取值范围为1~10,代表希望接口返回的最高备选转录条数。比如需要获取最多3条备选结果,就在请求URL的查询字符串中追加nbest=3。如果使用SDK调用,需要通过服务属性通道将该参数附加到实际请求中,不能仅在SDK的本地配置对象上自定义字段名,否则SDK会自动过滤未通过标准通道传递的参数。 - 确认调用场景的多结果返回权限
- 短实时识别、批量文件转写场景在正确传参后均可正常返回多备选结果
- 如果使用自定义训练的语音模型端点,需确认端点配置未禁用多结果返回选项
- 若开启了发音评估、说话人分离等附加识别能力,这类功能会默认强制将NBest列表长度限制为1,和多备选返回逻辑互斥
- 注意SDK的默认限制
多数官方SDK在初始化阶段会将服务端的nbest默认值锁定为1,哪怕开启了detailed格式也不会自动放开多结果返回,必须手动在配置层显式传入目标数值覆盖默认值。
配置后仍只返回单条结果的排查方向
- 抓包核对实际发出的请求URL,确认
nbest参数确实被携带在请求中,部分SDK会自动过滤未走标准配置通道的自定义参数 - 确认使用的API版本为2021-10-01及之后的正式版本,早期API版本对多备选返回的支持不完整,即使传参也只会返回单条结果
- 如果语音本身内容识别置信度极低、和模型匹配度极差,接口不会为了凑够
nbest要求的条数硬返回低质量无效结果,此时NBest列表实际长度小于设置的数值属于正常情况
内容的提问来源于stack exchange,提问作者Alain Désilets
相关产品推荐
相关产品推荐

