阿里雲百鍊語音辨識提供先行編譯熱詞、即時熱詞和上下文增強三種方式,提升專業術語、產品名稱等特定詞彙的識別準確率。本文介紹三種方式的適用範圍與使用方法。
概述
部分業務詞彙(如產品名、專有名詞、行業術語)不在模型通用詞表中,識別準確率較低。阿里雲百鍊語音辨識提供先行編譯熱詞、即時熱詞和上下文增強三種方式,提升這類詞彙的識別效果。
先行編譯熱詞、即時熱詞與上下文增強區別
自訂熱詞分為先行編譯熱詞和即時熱詞兩種。下表對比三種方式的差異,適用模型和介面不同:
維度 | 先行編譯熱詞 | 即時熱詞 | 上下文增強 |
|---|---|---|---|
原理 | 預先建立帶權重的詞彙表,模型在解碼時提升匹配機率 | 請求中直接攜帶帶權重的熱詞,模型在解碼時提升匹配機率 | 傳入對話歷史或領域語料,模型利用上下文修正識別結果 |
適用模型 | 參見支援的模型與地區 | 參見支援的模型與地區 | 參見支援的模型與地區 |
適用情境 | 詞彙已知且相對穩定,需要跨請求複用同一詞表(如產品名、醫學術語) | 臨時性、會話層級的熱詞,無需跨請求複用(如單次會話中的人名、臨時術語) | 詞彙隨對話動態變化,或需要通過上下文協助模型理解專有名詞(如會議紀要中的參會人、客服對話中的業務術語) |
配置方式 | 預先建立熱詞列表,調用時傳入列表 ID | 請求中直接傳入 | 每次請求時傳入對話歷史或領域文本。非即時通過 |
前提條件
- 已擷取與配置 API Key並將其配置到環境變數。
- 如果通過 DashScope SDK 調用,需要安裝最新版SDK。
先行編譯熱詞
預先建立熱詞列表並獲得列表 ID,識別時傳入該 ID。適用於詞彙已知且相對穩定、需要跨請求複用同一詞表的情境(如產品名、醫學術語)。
支援的模型與地區
- 新加坡
- 華北2(北京)
-
即時語音辨識:
- Qwen-Audio-3.0-ASR-Flash-Streaming:qwen-audio-3.0-asr-flash-streaming
- Fun-ASR-Realtime:fun-asr-realtime、fun-asr-realtime-2025-11-07
-
非即時語音辨識:
- Qwen-Audio-3.0-ASR-Flash-Filetrans:qwen-audio-3.0-asr-flash-filetrans
- Qwen-Audio-3.0-ASR-Flash:qwen-audio-3.0-asr-flash
- Fun-ASR-Flash:fun-asr-flash-2026-06-15
- Fun-ASR:fun-asr、fun-asr-2025-11-07、fun-asr-2025-08-25、fun-asr-mtl、fun-asr-mtl-2025-08-25
快速開始
工作流程
先建立熱詞列表,再在語音辨識時引用其 ID:
-
建立熱詞列表。
調用建立熱詞列表介面,必須指定
target_model(Java 中為targetModel),表明該列表所屬的語音辨識模型。 如已有熱詞列表(可通過查詢所有熱詞列表介面查看),跳過此步。 -
調用語音辨識介面並傳入熱詞列表 ID。
語音辨識使用的模型必須與建立時指定的
target_model(Java 中為targetModel)一致,否則熱詞不生效。
範例程式碼
完整流程樣本:建立熱詞列表 → 調用語音辨識 → 刪除列表。
熱詞格式
熱詞以 JSON 數組提交,數組元素定義單個熱詞及其屬性。
樣本:提升電影名稱的識別率。
欄位 | 類型 | 是否必填 | 說明 |
|---|---|---|---|
text | string | 是 | 熱詞文本,需為實際詞語而非任一字元組合,且語言必須在所選模型的支援範圍內。長度限制參見熱詞文本規範。 |
weight | int | 是 | 熱詞權重。取值範圍 [1, 5],推薦 4。權重越高,模型越傾向於輸出該詞。使用 Qwen-Audio-3.0-ASR-Flash-Streaming、Qwen-Audio-3.0-ASR-Flash-Filetrans、Qwen-Audio-3.0-ASR-Flash 系列模型時,還支援 |
lang | string | 否 | 語言代碼,限定該熱詞作用的語種。語種未知時可省略。 注意: |
即時熱詞
即時熱詞在識別請求中直接傳入 vocabulary 索引值對,本質上也是一組帶權重的熱詞(與先行編譯熱詞的詞表內容對應),區別僅在於隨請求內聯傳入、無需預先建立熱詞列表。適用於臨時性、會話層級的熱詞最佳化。
支援的模型與地區
- 新加坡
- 華北2(北京)
-
即時語音辨識:
- Qwen-Audio-3.0-ASR-Flash-Streaming:qwen-audio-3.0-asr-flash-streaming
-
非即時語音辨識:
- Qwen-Audio-3.0-ASR-Flash-Filetrans:qwen-audio-3.0-asr-flash-filetrans
- Qwen-Audio-3.0-ASR-Flash:qwen-audio-3.0-asr-flash
快速開始
在語音辨識請求的 parameters 中傳入 vocabulary,無需建立熱詞列表。各介面的詳細用法參見語音辨識下的 API 參考。
樣本(非即時語音辨識):
熱詞格式
即時熱詞以 JSON 對象(索引值對)傳入:鍵為熱詞文本(string),值為熱詞權重(integer)。熱詞文本規範參見熱詞文本規範。
樣本:
熱詞調優與規範
以下熱詞文本規範與調優建議對先行編譯熱詞和即時熱詞均適用。
熱詞文本規範
熱詞文本必須為實際詞語,長度限制如下:
-
含非 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 起測,根據識別效果逐步調整。
超級熱詞(weight=50):先行編譯熱詞和即時熱詞均支援超級熱詞,但僅 Qwen-Audio-3.0-ASR-Flash-Streaming、Qwen-Audio-3.0-ASR-Flash-Filetrans、Qwen-Audio-3.0-ASR-Flash 系列模型支援。設為 50 時召回率大幅提升,但超級熱詞數量最多不超過 50 個。
設計建議
- 按情境分組:為不同業務情境分別組織熱詞(如醫學術語、產品名稱各成一組),便於維護與複用。先行編譯熱詞可為每個情境建立獨立的熱詞列表。
- 多語種混合(先行編譯熱詞):同一熱詞列表可混入不同語種的熱詞,通過
lang欄位區分。語音辨識時指定language_hints後,僅匹配該語種的熱詞生效。 - 定期清理(先行編譯熱詞):刪除不再使用的熱詞列表以釋放額度(每帳號上限 10 個)。
熱詞限制與計費
限制項 | 說明 |
|---|---|
熱詞列表數量(先行編譯熱詞) | 熱詞列表是先行編譯熱詞預先建立的持久化詞表(對應一個 vocabulary_id)。每帳號最多 10 個,所有模型共用。 |
熱詞數量上限(先行編譯熱詞 / 即時熱詞) | 熱詞數量上限取決於語音辨識所用的模型:
其中,先行編譯熱詞按單個熱詞列表計數;即時熱詞按單次請求傳入的熱詞數計數。 |
超級熱詞數量(先行編譯熱詞 / 即時熱詞) | 權重為 50 的超級熱詞最多 50 個。 |
計費 | 先行編譯熱詞與即時熱詞均免費。 |
上下文增強
支援的模型與地區
- 新加坡
- 華北2(北京)
-
即時語音辨識:
- Qwen-Audio-3.0-ASR-Flash-Streaming:qwen-audio-3.0-asr-flash-streaming
- Fun-ASR-Realtime:fun-asr-realtime、fun-asr-realtime-2025-11-07
-
非即時語音辨識:
- Qwen-Audio-3.0-ASR-Flash-Filetrans:qwen-audio-3.0-asr-flash-filetrans
- Qwen-Audio-3.0-ASR-Flash:qwen-audio-3.0-asr-flash
- Fun-ASR-Flash:fun-asr-flash-2026-06-15
快速開始
上下文增強無需預先建立資源,在語音辨識請求中直接傳入上下文參數即可生效:
- 非即時語音辨識:在 HTTP 要求的
input.messages中傳入上下文訊息,置於音頻訊息之前。 - 即時語音辨識:在 WebSocket
run-task事件的input.context中傳入上下文訊息;任務執行中如需更新,發送continue-task事件。DashScope SDK 已封裝該協議,通過參數直接傳入即可。
- 非即時語音辨識
- 即時語音辨識
input.messages 傳入上下文。其中 user 角色 + input_text 類型用於傳入前幾輪的識別結果或領域相關的詞表,assistant 角色用於傳入前幾輪大模型的回複內容(可選)。上下文訊息置於音頻訊息之前,詳見非即時語音辨識(Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash)。傳入前幾輪的識別結果(user / input_text)和大模型回複(assistant / text)。若只需傳入領域術語或詞表,省略其中的對話歷史(assistant 訊息)即可。效果樣本
內容相關的 text 欄位內容格式靈活,可以是詞表、自然語言段落或兩者的混合,對無關文本的容錯性極高。
某段音頻正確識別結果應該為“投行圈內部的那些黑話,你瞭解哪些?首先,外資九大投行,Bulge Bracket,BB ...”。
不使用上下文增強 未使用上下文增強時,部分投行公司名稱識別有誤,例如 “Bird Rock” 正確應為 “Bulge Bracket”。 識別結果:“投行圈內部的那些黑話,你瞭解哪些?首先,外資九大投行,Bird Rock,BB ...” | 使用上下文增強 使用上下文增強,對投行公司名稱識別正確。 識別結果:“投行圈內部的那些黑話,你瞭解哪些?首先,外資九大投行,Bulge Bracket,BB ...” |
text 欄位中加入包含“Bulge Bracket”等專業術語的詞表或自然語言段落即可實現增強效果。
API參考
- 先行編譯熱詞 API 參考
- 即時語音辨識-Qwen-Audio-ASR-Streaming/Fun-ASR-Realtime API參考
- 即時語音辨識-Qwen-ASR API參考
- 即時語音辨識-Paraformer API參考
- 非即時語音辨識-Qwen-Audio-ASR-Filetrans/Fun-ASR API參考
- 非即時語音辨識-Qwen-Audio-ASR/Fun-ASR-Flash API參考
- 非即時語音辨識-Qwen-ASR API參考
- 非即時語音辨識-Paraformer API參考
常見問題
Q:設定熱詞後識別效果沒有改善?
依次排查:
- 模型是否匹配(先行編譯熱詞):建立熱詞列表時指定的
target_model必須與語音辨識介面使用的模型一致。兩者不一致時介面不會報錯,識別仍能返回結果,但熱詞不生效;識別結果未命中預期熱詞時應優先排查此項。 - 模型是否支援
- 權重是否合適:將權重從 4 提到 5 觀察效果。如果出現發音相近的其他詞被誤識別為熱詞,回調到 4。
- 熱詞列表狀態(先行編譯熱詞):通過查詢介面確認
status為OK。
Q:先行編譯熱詞在即時和非即時語音辨識中的使用方式是否相同?
建立方式相同,調用時存在差異:
- 即時語音辨識:在 Recognition 或 WebSocket 串連參數中傳入
vocabulary_id。 - 錄音檔案識別:在 Transcription 請求參數中傳入
vocabulary_id。
target_model 都必須與實際調用的語音辨識模型一致。即時熱詞無需建立列表和指定 target_model,直接在請求參數中傳入 vocabulary 索引值對即可。對於支援即時熱詞的 Qwen-Audio-3.0-ASR-Flash-Streaming、Qwen-Audio-3.0-ASR-Flash-Filetrans 和 Qwen-Audio-3.0-ASR-Flash 系列模型,同時配置先行編譯熱詞和即時熱詞時,系統會合并兩類熱詞;合并後超過 2,000 個時,隨機播放 2,000 個使用。
Q:除了熱詞和上下文增強,還有哪些方式可以提升識別準確率?
還可從以下方向最佳化:
- 音頻品質:採樣率匹配模型要求(16 kHz 或 8 kHz),降低背景雜訊。
- 選擇合適的模型:不同情境適用模型不同,詳見語音辨識選型指南。
- 指定語種:通過
language_hints聲明音頻語種,可提升單語種情境的準確率。