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