本文档介绍如何使用 DashScope Python SDK 调用实时语音识别(Qwen-ASR-Realtime)模型。
用户指南:模型介绍、功能特性和示例代码请参见实时语音识别-通义千问
请求参数
以下参数通过
OmniRealtimeConversation的构造方法设置。参数
类型
是否必须
说明
modelstr是
指定要使用的模型名称。
callback是
用于处理服务端事件的回调对象实例。
以下参数通过
OmniRealtimeConversation的update_session方法设置。参数
类型
是否必须
说明
output_modalitiesList[MultiModality]是
模型输出模态,固定为
[MultiModality.TEXT]。enable_turn_detectionbool否
是否开启服务端语音活动检测(VAD)。关闭后,需手动调用
commit()方法触发识别。默认值:
True。取值范围:
True:开启False:关闭
turn_detection_typestr否
服务端VAD类型,固定为
server_vad。turn_detection_thresholdfloat否
VAD检测阈值。
默认值:
0.2。取值范围:
[-1.0, 1.0]。较低的阈值会提高 VAD 的灵敏度,可能将背景噪音误判为语音。较高的阈值则降低灵敏度,有助于在嘈杂环境中减少误触发。
turn_detection_silence_duration_msint否
VAD断句检测阈值(ms)。静音持续时长超过该阈值将被认为是语句结束。
默认值:
800。取值范围:
[200, 6000]。较低的值(如 300ms)可使模型更快响应,但可能导致在自然停顿处发生不合理的断句。较高的值(如 1200ms)可更好地处理长句内的停顿,但会增加整体响应延迟。
transcription_params否
语音识别相关配置。
以下参数通过
TranscriptionParams的构造方法设置。参数
类型
是否必须
说明
languagestr否
音频源语言。
取值范围参见ISO 639-1标准。
sample_rateint否
音频采样率(Hz)。支持
16000和8000。默认值:
16000。设置为
8000时,服务端会先升采样到16000Hz再进行识别,可能引入微小延迟。建议仅在源音频为8000Hz(如电话线路)时使用。input_audio_formatstr否
音频格式。支持
pcm和opus。默认值:
pcm。corpus_textstr否
ASR 语料文本。提供与业务场景强相关的专有词汇(如产品名、人名),可以提升模型对这些词汇的识别准确度。
关键接口
OmniRealtimeConversation类
OmniRealtimeConversation通过from dashscope.audio.qwen_omni import OmniRealtimeConversation方法引入。
方法签名 | 服务端响应事件(通过回调下发) | 说明 |
| 会话已创建 会话配置已更新 | 和服务端创建连接。 |
| 会话配置已更新 | 用于更新会话配置,建议在连接建立后首先调用该方法进行设置。若未调用该方法,系统将使用默认配置。只需关注请求参数中的涉及到的参数。 |
| 无 | 将Base64编码后的音频数据片段追加到云端输入音频缓冲区。 |
| 服务端收到提交的音频 | 提交之前通过append添加到云端缓冲区的音视频,如果输入的音频缓冲区为空将产生错误。 禁用场景:请求参数 |
| 无 | 取消正在进行的响应。如果没有任何响应可供取消,服务端将以一个错误进行响应。 |
| 无 | 终止任务,并关闭连接。 |
| 无 | 获取当前任务的session_id。 |
| 无 | 获取最近一次response的response_id。 |
| 无 | 获取最近一次response的首包文本延迟。 |
| 无 | 获取最近一次response的首包音频延迟。 |
回调接口(OmniRealtimeCallback)
服务端会通过回调的方式,将服务端响应事件和数据返回给客户端。
继承此类并实现相应方法以处理服务端事件。
通过from dashscope.audio.qwen_omni import OmniRealtimeCallback引入。
方法签名 | 参数 | 说明 |
| 无 | WebSocket连接成功建立时触发。 |
| message:服务端事件 | 收到服务端事件时触发。 |
| close_status_code:状态码 close_msg:WebSocket连接关闭时的日志信息 | WebSocket连接关闭时触发。 |