语音对话模式最佳实践
更新时间:2025-12-16
大模型互动支持典型的3种语音对话:按键说话、连续对话(唤醒词打断)、连续对话(插话打断)。该文档介绍这三种模式,并说明集成注意点。
1.按键说话
模式说明
Plain Text
1 - 终端设备上按住按键开始说话,松开按键结束说话。这种模式不需要开启云端VAD,不需要开启回声消除AEC。
2
创建智能体进入模式
Plain Text
1 - 在服务器调用generateAIAgentCall接口,传入config参数`asr_long_audio_mode:true`
动态切换进入模式
Plain Text
1 - 在设备上发送控制EVENT:`[E]:[CMD]:[ASR_DISABLE_REALTIME]` 进入到按键对话模式
开始与结束单轮收音
Plain Text
1 - 在设备上发送控制EVENT:`[E]:[CMD]:[ASR_START_LONGTEXT_REC]` 通知服务端开始收音
2 - 在设备上发送控制EVENT:`[E]:[CMD]:[ASR_STOP_LONGTEXT_REC]` 通知服务器结束收音。
3 服务器会将这两次事件之间接收音频数据,一次性送到ASR模块转化成文本,送到后续环节。
4 注意:端侧采集到的音频数据需要流式、均匀发送到服务器。
5
2.连续对话(唤醒词打断)
模式说明
Plain Text
1 - 终端设备连续对话,但是只能通过离线唤醒词或在线唤醒词打断语音播报。这种模式不需要开启回声消除AEC。
2
创建智能体进入模式
Plain Text
1 - 在服务器上调用generateAIAgentCall接口,传入config参数`disable_voice_auto_int:true`
动态切换进入模式
Plain Text
1 - 在设备上发送控制EVENT:`[E]:[CMD]:[ASR_ENABLE_REALTIME]` 进入到连续对话模式
2 - 在设备上发送控制EVENT:`[SET]:[AUTO_INT]:[FALSE]` 关闭自动打断功能
开始与结束单轮收音
Plain Text
1为了降低端设备的性能消耗,建议依据语音播报状态、设备是否处于被唤醒状态,控制开启MIC是否采集声音.
2
3 - 设备上接收到消息:`[E]:[TTS_BEGIN_SPEAKING]` 关闭MIC收音。
4 - 设备上接收到消息:`[E]:[TTS_END_SPEAKING]` 开启MIC收音,音频数据流式发送到服务器。
5 - 设备处于休眠状态(例如30秒没有对话,自动进入休眠状态),关闭MIC收音。
6 - 设备处于唤醒状态,开启MIC收音,音频数据流式发送到服务器。
7 注意:端侧采集到的音频数据需要流式、均匀发送到服务器。
8
9
离线唤醒词打断语音播报
如设备上集成离线唤醒词功能,唤醒后打断当前语音播报。
Plain Text
1 - 设备上离线唤醒词命中且响应后,在设备发送控制EVENT:`[B]:[BEGIN]:3000`到服务器;服务器接收到该指令后,立即打断当前语音播报,且持续3000ms丢弃用户输入的语音,或服务器收到`[B]:[END]`停止丢弃语音。
2 该指令是是解决唤醒词语音也同步发送到服务器上,让服务器忽略唤醒词的模型回答。 丢弃音频时长大小请根据设备的唤醒词长度,响应速度自行调节。
在线唤醒词打断语音播报
如终端设备上没有集成离线唤醒词功能,可采用在线唤醒词实现相似的功能。在线唤醒词、回复语,可根据业务自行修改。
Plain Text
1 - 启用在线唤醒词打断语音播报:在服务器上调用generateAIAgentCall接口,传入config参数`disable_voice_auto_int:false, interruption_words:"小文小文,你好小文", interruption_answer:"我在呢,咱们一起聊聊天吧。"`
3.连续对话(插话打断)
模式说明
Plain Text
1 - 终端设备连续对话,检测到用户说话则立即打断语音播报,跟人与人之间自然对话一样,随意打断。这种模式强依赖回声消除AEC功能。
2
创建智能体进入模式
Plain Text
1 - 在服务器上调用generateAIAgentCall接口,传入config参数`disable_voice_auto_int:false`
动态切换进入模式
Plain Text
1 - 在设备上发送控制EVENT:`[E]:[CMD]:[ASR_ENABLE_REALTIME]` 进入到连续对话模式
2 - 在设备上发送控制EVENT:`[SET]:[AUTO_INT]:[TRUE]` 开启自动打断功能
开始与结束单轮收音
Plain Text
1该模式终端连续MIC收音,音频数据流式、均匀发送到服务器;设备接收到的服务器播报的语音,解码播放即可。无需过多状态控制。
2
