热词(Hotwords)详解与应用
什么是热词?
热词是指在语音识别、翻译等处理过程中,用户预先定义的一组需要被优先识别或特殊处理的特定词汇或短语。当你的业务领域或使用场景中存在部分专业术语、人名、品牌名、特殊表达等词汇通用模型识别效果不佳时,就可以通过热词功能来提升识别准确率。
例如,在语音识别场景中:
- 提高特定电影名称识别率:"肖申克的救赎"、"霸王别姬"
- 专业领域术语:"EGFR 抑制剂"、"厄洛替尼盐酸盐"
- 特定名称翻译:"夏洛特烦恼" → "Goodbye Mr. Lose"
⚙️ 热词工作原理
热词技术通过在识别过程中赋予特定词汇更高权重或概率来实现精准识别:
1. 权重提升机制
当语音识别引擎处理音频流时,热词列表中的词汇会被赋予更高的识别优先级。系统会在解码过程中提升这些词汇的声学得分或语言模型得分,使其在候选结果中更容易被选中。
2. 热词表结构
热词通常以结构化列表形式存在,包含以下核心字段:
text:热词文本内容lang:源语言代码(可选)target_lang:目标语言代码(可选,用于翻译场景)translation:翻译结果(可选,用于翻译场景)
3. 识别流程整合
在语音识别过程中,热词功能通过以下方式介入:
- 在声学模型和语言模型输出多个候选结果时
- 对包含热词的候选结果进行分数加权
- 输出优化后的识别结果
💻 在 Faster-Whisper 中使用热词
Faster-Whisper 是 OpenAI Whisper 的优化版本,支持热词功能以提升特定领域识别准确率。
基本使用方法
在实际开发中,我们通常直接通过 hotwords 参数传入热词列表。下面是一个基础示例,展示了如何加载模型并启用热词:
from faster_whisper import WhisperModel
# 加载模型
model = WhisperModel("large-v3")
# 定义热词 - 提升动漫相关术语识别率
hotwords = ["星灵感应", "鹿乃子", "艾莉同学", "语气词"]
# 转录时加入热词参数
segments, info = model.transcribe(
"audio.wav",
hotwords=hotwords,
beam_size=5,
best_of=5,
compression_ratio_threshold=2.4,
no_speech_threshold=0.2
)
配置示例与技巧
根据实际使用经验,以下配置在动漫字幕生成场景中效果显著。这里我们将热词作为提示词的一部分传递,同时调整搜索策略:
transcription_params = {
: ,
: ,
: ,
: ,
: [, , , , ],
: ,
: ,
: ,
: ,
:
}


