实时语音识别-通义千问服务通过 WebSocket 协议,接收实时音频流并实时转写。支持VAD 模式和Manual 模式交互流程。
用户指南:模型介绍、功能特性和示例代码请参见实时语音识别-通义千问
URL
编码时,将<model_name>替换为实际的模型。
wss://dashscope.aliyuncs.com/api-ws/v1/realtime?model=<model_name>Headers
"Authorization": "bearer <your_dashscope_api_key>"VAD 模式(默认)
服务端自动检测语音的起点和终点(断句)。开发者只需持续发送音频流,服务端会在检测到一句话结束时自动返回最终识别结果。此模式适用于实时对话、会议记录等场景。
启用方式:配置客户端session.update事件的session.turn_detection参数。
- 服务端在检测到语音开始时发送 - input_audio_buffer.speech_started事件。
- 客户端通过发送 - input_audio_buffer.append事件将音频追加到缓冲区。
- 服务端在检测到语音结束时发送 - input_audio_buffer.speech_stopped事件。
- 服务端通过发送 - input_audio_buffer.committed事件来提交输入音频缓冲区。
- 服务端发送 - conversation.item.created事件,其中包含从音频缓冲区创建的用户消息项。
- 服务端发送 - conversation.item.input_audio_transcription.text事件,其中包含语音识别结果。
Manual 模式
由客户端控制断句。客户端需要发送完一整句话的音频后,再发送一个input_audio_buffer.commit事件来通知服务端。此模式适用于客户端能明确判断语句边界的场景,如聊天软件中的发送语音。
启用方式:将客户端session.update事件的session.turn_detection设为null。
- 客户端通过发送 - input_audio_buffer.append事件将音频追加到缓冲区。
- 客户端通过发送 - input_audio_buffer.commit事件来提交输入音频缓冲区。 该提交会在对话中创建一个新的用户消息项。
- 服务端发送 - input_audio_buffer.committed事件进行响应。
- 服务端发送 - conversation.item.input_audio_transcription.text事件,其中包含语音识别结果。