在实时对话式 AI 场景中,你需要配置语音识别(ASR)能力,将用户的语音实时转换为文本,以便智能体进行理解和处理。RTC 提供一站式接入方案,只需在 StartVoiceChat 接口配置 ASRConfig 即可完成语音识别能力接入。本文将详细介绍不同服务的配置参数、注意事项及适用场景,帮助你根据需求选择合适的语音识别方案。
注意
当通过 StartVoiceChat 接口中的 S2SConfig 参数启用端到端语音模型时,系统的语音识别能力将由端到端模型内部处理。此时,本文档描述的 ASRConfig 相关配置将无效。关于端到端模型的配置,请参见接入端到端语音模型。
火山引擎提供以下语音识别接入方案,分别适用于不同场景:
| 服务商 | 模型 | 优势/适用场景 |
|---|---|---|
| 火山引擎 | 流式语音识别大模型 | 识别准确率更高,适用于对识别准确率要求较高的场景(如会议记录、智能客服等)。 |
| 流式语音识别 | 识别速度更快,适用于响应速度要求高的语音控制场景。 | |
| 第三方 | 自定义语音识别服务 | 将自定义 ASR 服务接入边缘大模型网关后,即可在实时对话式 AI 方案中使用该服务进行语音识别。 |
该接入方案由大模型能力加持,识别准确率更高,适用于对识别准确率要求较高的场景(如会议记录、智能客服等)。详细功能特性可参看大模型语音识别。
使用火山引擎流式语音识别大模型时,StartVoiceChat.ASRConfig 结构核心配置参数如下:
完整参数及说明可参看 StartVoiceChat 接口。
| 参数名 | 类型 | 是否必填 | 示例值 | 说明 |
|---|---|---|---|---|
Provider | String | 是 | volcano | 语音识别服务提供商。该参数固定取值:volcano,表示仅支持火山引擎语音识别服务 |
ProviderParams.Mode | String | 是 | bigmodel | 模型类型,固定取值 bigmodel。 |
ProviderParams.AppId | String | 是 | 93****21 | 开通流式语音识别大模型服务的 App ID。从豆包语音控制台获取。 |
ProviderParams.AccessToken | String | 是 | MOaOaa_VQ6****1B34UHA4h5B | 与 App ID 对应的鉴权 Token。从豆包语音控制台获取。 |
ProviderParams.ApiResourceId | String | 否 | volc.bigasr.sauc.duration | 服务开通类型:volc.bigasr.sauc.duration(小时版);volc.bigasr.sauc.concurrent(并发版)。默认 duration。 |
ProviderParams.StreamMode | Integer | 否 | 0 | 输出模式:
|
你可参看以下示例,使用火山引擎流式语音识别大模型进行语音识别:
{ "ASRConfig": { "Provider": "volcano", "ProviderParams": { "Mode": "bigmodel", "AppId": "93****21", "AccessToken": "MOaOaa_VQ6****1B34UHA4h5B", "ApiResourceId": "volc.bigasr.sauc.duration", "StreamMode": 0 }, "VADConfig": { "SilenceTime": 800 }, "VolumeGain": 0.3, "TurnDetectionMode": 0 } }
该接入方案采用端到端算法模型,识别速度更快,适用于响应速度要求高的语音控制场景。详细功能特性可参看语音识别。
使用 StartVoiceChat 接口配置时,需通过 Config.ASRConfig 结构设置参数。以下为核心配置参数说明:
完整参数及说明可参看 StartVoiceChat 接口文档。
| 参数名 | 类型 | 是否必填 | 示例值 | 说明 |
|---|---|---|---|---|
Provider | String | 是 | volcano | 语音识别服务提供商,固定取值 volcano(仅支持火山引擎服务)。 |
TurnDetectionMode | Integer | 否 | 0 | 对话触发方式:
0。 |
ProviderParams.Mode | String | 是 | smallmodel | 模型类型,固定取值 smallmodel。 |
ProviderParams.AppId | String | 是 | 93****21 | 开通流式语音识别服务的 App ID。从豆包语音控制台获取。 |
ProviderParams.Cluster | String | 是 | volcengine_streaming_common | 服务集群标识。从豆包语音控制台开通后获取。 |
你可参看以下示例,使用火山引擎流式语音识别进行语音识别:
{ "ASRConfig": { "Provider": "volcano", "ProviderParams": { "Mode": "smallmodel", "AppId": "93****21", "Cluster": "volcengine_streaming_common" }, "VADConfig": { "SilenceTime": 800 }, "VolumeGain": 0.3, "TurnDetectionMode": 0 } }
将自定义语音识别服务接入边缘大模型网关后,即可在实时对话式 AI 方案中使用该服务进行语音识别。
具体接入方式和说明可参看接入自定义 ASR。
在使用火山引擎语音识别服务时,可通过调整音量增益、添加热词、替换词等方式提升识别准确率。详细说明参看如何提升语音识别准确性?。
在使用火山引擎语音识别服务时:
InterruptSpeechDuration 设为 0,避免自动阈值覆盖关键词触发逻辑。在使用火山引擎流式语音识别大模型时,如果用户输入的音频过长,可能会出现识别结果未完整返回便被截断。为避免这种情况,你可以使用以下方式优化:
ASRConfig.VADConfig.AIVAD 设置为 true、适当延长 SilenceTime(例如 1000ms 以上),并将 LLMConfig.Prefill 设置为 true,让系统更智能地判断长句中的自然停顿。