通过自定义热词和上下文增强提升语音识别准确率。
部分业务词汇(如产品名、专有名词、行业术语)不在模型通用词表中,识别准确率较低。千问云语音识别提供自定义热词和上下文增强两种方式,提升这类词汇的识别效果。
千问云语音识别提供两种处理专业术语的方式,适用模型和接口不同:
热词功能由 Fun-ASR 和 Paraformer 系列模型支持。可用模型如下:
Fun-ASR:
工作流程:
热词以 JSON 数组提交,数组元素定义单个热词及其属性。
示例:提升电影名称的识别率(Fun-ASR 及 Paraformer 系列模型)
字段说明:
热词文本规范:
权重控制模型对热词的偏好程度,合理设置可在提升目标词识别率的同时避免误识别。
建议从
API 参考:自定义热词 API 参考
上下文增强支持以下模型:
**使用场景:**适用于 ASR 与大语言模型结合的场景。将前几轮对话的上下文(大模型回复内容和用户语音识别结果)传入 ASR 模型,可显著提升专有词汇(人名、地名、产品术语等)的转写准确率,比传统热词更灵活。
**用法:**通过
上下文的
上述示例中,在上下文的
依次排查:
创建方式相同,调用时存在差异:
还可从以下方向优化:
自定义热词与上下文增强的区别
千问云语音识别提供两种处理专业术语的方式,适用模型和接口不同:
| 维度 | 自定义热词 | 上下文增强 |
|---|---|---|
| 原理 | 提供带权重的词汇表,模型在解码时提升匹配概率 | 传入对话历史或领域语料,模型利用上下文修正识别结果 |
| 适用模型 | Fun-ASR、Paraformer 系列(实时 + 非实时) | fun-asr-flash-2026-06-15(仅非实时) |
| 适用场景 | 词汇已知且相对稳定,需要跨请求复用同一词表(如产品名、医学术语) | 词汇随对话动态变化,或需要通过上下文帮助模型理解专有名词(如会议纪要中的参会人、客服对话中的业务术语) |
| 配置方式 | 预先创建热词列表,调用时传入列表 ID | 每次请求时通过 input.messages 传入对话历史或领域文本 |
前提条件
- 已获取 API Key 并将其配置到环境变量。
- 如果通过 SDK 调用,需安装 DashScope SDK。
自定义热词
适用范围
热词功能由 Fun-ASR 和 Paraformer 系列模型支持。可用模型如下:
Fun-ASR:
- 实时语音识别:fun-asr-realtime、fun-asr-realtime-2026-02-28、fun-asr-realtime-2025-11-07、fun-asr-realtime-2025-09-15、fun-asr-flash-8k-realtime、fun-asr-flash-8k-realtime-2026-01-28
- 非实时语音识别:fun-asr、fun-asr-2025-11-07、fun-asr-2025-08-25、fun-asr-mtl、fun-asr-mtl-2025-08-25
- 实时语音识别:paraformer-realtime-v2、paraformer-realtime-8k-v2
- 非实时语音识别:paraformer-v2、paraformer-8k-v2
快速开始
工作流程:
- 创建热词列表:调用创建 API 定义热词列表,并将
target_model设置为您计划使用的语音识别模型。 - 使用热词列表:在语音识别请求参数中传入热词列表 ID(
vocabulary_id)。确保target_model与调用的模型一致。
热词管理 API 与语音识别 API 必须使用同一账号,否则识别接口无法访问对应的热词列表。
- Python
- Java
热词格式
热词以 JSON 数组提交,数组元素定义单个热词及其属性。
示例:提升电影名称的识别率(Fun-ASR 及 Paraformer 系列模型)
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| text | string | 是 | 热词文本,需为实际词语而非任意字符组合,且语言必须在所选模型的支持范围内。长度限制参见下文。 |
| weight | int | 是 | 热词权重,取值范围 [1, 5],推荐 4。权重越高,模型越倾向于输出该词。过高的权重可能影响其他词的识别。 |
| lang | string | 否 | 语言代码,限定该热词作用的语种。语种未知时可省略。注意:language_hints 是语音识别接口的参数(非热词接口),用于声明音频语种。一旦设置,仅匹配 language_hints 所指定语种的热词生效,其他语种的热词将被忽略。 |
-
含非 ASCII 字符时:总字符数(汉字、日文假名、韩文谚文、西里尔字母等非 ASCII 字符与 ASCII 字符合计)不超过 15 个。
示例:
"厄洛替尼盐酸盐"(7 个字符)"EGFR抑制剂"(7 个字符,其中 EGFR 占 4 个 ASCII 字符)"こんにちは"(5 个字符)"Фенибут Белфарм"(15 个字符,含空格)"Клофелин Белмедпрепараты"(24 个字符)-- 超出限制
-
纯 ASCII 字符时:按空格切分后的片段数不超过 7 个。
示例:
"Exothermic reaction"-- 2 个片段"Human immunodeficiency virus type 1"-- 5 个片段"The effect of temperature variations on enzyme activity in biochemical reactions"-- 11 个片段,超出限制
调优热词效果
调整热词权重
权重控制模型对热词的偏好程度,合理设置可在提升目标词识别率的同时避免误识别。
| 权重 | 效果 | 适用场景 |
|---|---|---|
| 1-2 | 轻微偏好 | 热词与常用词发音相似,需避免过度纠偏 |
| 3-4 | 明显偏好(推荐) | 大多数场景的最佳起始值 |
| 5 | 强制偏好 | 该词在音频中频繁出现且几乎不会与其他词混淆。权重过高可能导致发音相近的其他词被误识别为热词。 |
weight=4 起测,根据识别效果逐步调整。
设计热词表
- 按场景分组:为不同业务场景建立独立的热词列表(如医疗术语、产品名称各建一个),便于维护与复用。
- 多语种混合:同一热词列表可混入不同语种的热词,通过
lang字段区分。语音识别时指定language_hints后,仅匹配该语种的热词生效。 - 定期清理:删除不再使用的热词列表以释放额度(每账号上限 10 个)。
限制与计费
| 限制项 | 说明 |
|---|---|
| 热词列表数量 | 每账号 10 个,所有模型共享。 |
| 单个列表热词数 | 每个热词列表最多 500 个热词。 |
| 计费 | 免费。 |
上下文增强
适用范围
上下文增强支持以下模型:
- 非实时语音识别:fun-asr-flash-2026-06-15
快速开始
**使用场景:**适用于 ASR 与大语言模型结合的场景。将前几轮对话的上下文(大模型回复内容和用户语音识别结果)传入 ASR 模型,可显著提升专有词汇(人名、地名、产品术语等)的转写准确率,比传统热词更灵活。
**用法:**通过 input.messages 传入历史对话上下文。其中 assistant 角色为前轮大模型的回复内容,user 角色 + input_text 类型为前轮的语音识别结果。上下文需成对出现在当前音频消息之前,详见 DashScope (Fun-ASR)。
请求体结构示例:
效果示例
上下文的 text 字段内容格式灵活,可以是词表、自然语言段落或两者的混合,对无关文本的容错性极高。
某段音频正确识别结果应该为:"投行圈内部的那些黑话,你了解哪些?首先,外资九大投行,Bulge Bracket,BB ..."
| 不使用上下文增强 | 使用上下文增强 |
|---|---|
| 未使用上下文增强时,部分投行公司名称识别有误。例如"Bird Rock"正确应为"Bulge Bracket"。识别结果:"...外资九大投行,Bird Rock,BB ..." | 使用上下文增强,投行公司名称识别正确。识别结果:"...外资九大投行,Bulge Bracket,BB ..." |
text 字段中加入包含"Bulge Bracket"等专业术语的词表或自然语言段落即可实现增强效果。
常见问题
设置热词后识别效果没有改善?
依次排查:
- 模型是否匹配:创建时指定的
target_model必须与语音识别接口使用的模型一致。两者不一致时接口不会报错,识别仍能返回结果,但热词不生效。识别结果未命中预期热词时应优先排查此项。 - 模型是否支持:模型必须为 Fun-ASR 或 Paraformer 系列,其他系列不支持热词。在不支持的系列上调用时接口不会报错,但识别结果可能为空或不含热词增强。使用 SenseVoice 等系列时应优先排查此项。
- 权重是否合适:将权重从 4 提到 5 观察效果。如果出现发音相近的其他词被误识别为热词,回调到 4。
- 热词列表状态:通过查询接口确认
status为OK。
热词在实时和非实时语音识别中的使用方式是否相同?
创建方式相同,调用时存在差异:
- 实时语音识别:在 Recognition 或 WebSocket 连接参数中传入
vocabulary_id。 - 录音文件识别:在 Transcription 请求参数中传入
vocabulary_id。
target_model 都必须与实际调用的语音识别模型一致。
除了热词和上下文增强,还有哪些方式可以提升识别准确率?
还可从以下方向优化:
- 音频质量:采样率匹配模型要求(16 kHz 或 8 kHz),降低背景噪声。
- 选择合适的模型:不同场景适用模型不同,详见语音识别模型选型指南。
- 指定语种:通过
language_hints声明音频语种,可提升单语种场景的准确率。