You need to enable JavaScript to run this app.
导航
如何提升语音识别准确性?
最近更新时间:2025.11.19 11:47:51首次发布时间:2025.05.16 19:18:11
复制全文
我的收藏
有用
有用
无用
无用

实时对话式 AI 场景中,准确的语音识别结果能够让智能体更好地理解用户意图,从而提供更精准的服务。本文将介绍如何提高 RTC 实时对话式 AI 场景中语音识别的准确性。

选择合适的 ASR 模型

实时对话式 AI 场景,支持使用火山引擎以下模型用于语音识别,你可以按需选择合适的 ASR 模型:

  • 流式语音识别大模型:识别准确性更高。
  • 流式语音识别:识别速度更快。

开启二遍识别

该功能仅火山引擎流式语音识别大模型支持。

开启二遍识别后,在双向流式实时返回逐字文本的基础上,实现对分句进行二次识别。即当用户说话的停顿时间超过 ASRConfig.VADConfig.SilenceTime 时,系统会对该分句音频再进行一次识别(此次识别为流式输入、非流式输出)。既满足用户实时上屏需求(快),又可以保证识别准确率(准)。

调用 StartVoiceChat 时,StreamMode 设置为 2enable_nonstream 设置为 true

//...
	"ASRConfig": {
	   // ... ProviderParams ...
	   "ProviderParams": {
	      "StreamMode": 2,
	      "enable_nonstream": true,
	    //...
	  }
	}
	//...

开启降噪

通过调整音量增益、开启 AI 降噪或声纹降噪,在嘈杂环境下滤除环境噪音,提升语音识别准确性。具体操作,请参见语音降噪

调整 VAD 配置

VAD 用于判断用户是否开始说话以及何时结束说话。不合理的 VAD 配置可能导致句子被错误地截断或合并,从而影响识别准确率。
调用 StartVoiceChat 时,配置 ASRConfig.VADConfig:

字段配置说明
SilenceTime判停时间。当检测到用户的语音静默(停顿)时间超过此阈值时,系统会判断为一句话结束。请按照场景合理配置(比如根据用户语速调整):
  • 值过小:可能导致用户话未说完(例如句中停顿),就被错误地判停。
  • 值过大:可能导致用户说完话后,智能体需要等待更长时间才响应,感觉“迟钝”。
AIVAD(公测中)语义判停。对于复杂的对话场景(如陈述长句、口语中停顿较多),您可以启用 AIVAD 功能,启用后系统会引入 AI 模型来辅助判断语义的完整性,能更智能地区分句中停顿和意图结束,有效避免错误切分。
"VADConfig": {
    "SilenceTime": 800, // 如果用户语速较慢或停顿较多,可适当调大
	"AIVAD": true  //开启语义判停
}

使用热词

对于业务中常见的专有名词、人名、产品名、特定术语等,ASR 可能难以准确识别。通过配置热词,可以显著提高这些词汇的识别准确率。

仅火山引擎流式语音识别大模型支持热词功能。

具体配置如下:

直接在 API 请求中通过 JSON 字符串传入一个或多个热词。 例如:"{"hotwords": [{"word": "火山引擎"},{"word": "实时音视频"},{"word": "豆包"}]}"

  • 限制:最大 200 tokens,超出会自动截断。
  • 配置:调用 StartVoiceChat 时,在 ProviderParams 中传入 context
  • 配置示例
    "ProviderParams": {
        "Mode": "bigmodel",
        // ... AppId, AccessToken ...
        "context": "{"hotwords": [{"word": "智能客服"},{"word": "数字人"},{"word": "火山大陆"}]}"
    }
    

使用替换词

替换词功能可以将 ASR 识别出的特定词汇替换为预期的标准词汇,常用于纠错、脱敏或别名替换。比如“二零二三年”替换为“2023年”。

  • 仅火山引擎流式语音识别大模型支持替换词功能。
  • 替换词的执行优先级低于热词。即如果一个词同时是热词和替换词的源词,优先执行热词,再执行替换词。例如,原词为“智立”:
    • 若热词有“致力”,替换词要求“智立→治理”,最后结果为 “致力”。
    • 若热词有“致力”,替换词要求“致力→治理”,最后结果为 “治理”。

具体配置如下:

  1. 火山豆包语音控制台替换词管理创建替换词表,并获取替换词 ID 或文件名称。

  2. 调用 StartVoiceChat 时,在 ProviderParams 中传入 correct_table_idcorrect_table_name

    correct_table_idcorrect_table_name 不可同时设置。

    "ProviderParams": {
        "Mode": "bigmodel",
        // ... AppId, AccessToken ...
        "correct_table_id": "YOUR_CORRECT_TABLE_ID"
        // 或 "correct_table_name": "YourCorrectTableName"
    }
    

使用上下文轮次

将最近指定轮次的对话内容作为上下文信息送入流式语音识别大模型,有助于模型理解当前对话的背景,从而可能提升对后续输入的识别准确性。

  • 仅火山引擎流式语音识别大模型支持上下文轮次功能。
  • 增加上下文轮数可能会略微增加处理开销,需根据实际效果进行调整。

调用 StartVoiceChat 时,在 ProviderParams 中传入 context_history_length

"ProviderParams": {
    "Mode": "bigmodel",
    // ... AppId, AccessToken ...
    "context_history_length": 3 // 示例:将最近3轮对话作为上下文传入流式语音识别大模型。取值:0(不开启),或 [1, 21)之间的整数
}