本文介绍千问实时语音/音视频翻译 API 的客户端事件,包括事件类型、参数和示例。
相关文档:实时语音/音视频翻译-千问。
session.update
客户端建立 WebSocket 连接后,需首先发送该事件,用于更新会话的默认配置。
服务端收到 session.update 事件后,会校验参数。如果参数不合法,则返回错误;如果参数合法,则更新并返回完整的配置。
type 事件类型,固定为 session 会话配置。 属性 output_modalities 适用于 audio 适用于 属性 input 输入音频配置。 属性 turn_detection 语音检测配置。 属性 type 可选值: threshold 检测阈值。使用 modalities 适用于 模型输出模态设置,可选值:
voice 生成音频的音色。未启用声音复刻时,可设置为系统预设音色,可选值参见支持的音色。
enable_voice_clone 是否启用声音复刻。默认值为 voice_clone_options 声音复刻控制参数,仅在 属性 frequency 音色复刻频率,可选值:
sample_rate 适用于 输入音频的采样率,单位为Hz。可选值:
input_audio_transcription 适用于
输入音频相关配置。 属性 model 语音识别模型,默认值为 可选值: language 翻译源语种,可选值:支持的语种。默认不填写,此时模型会自动识别源语种。 input_audio_format 适用于 用户输入音频格式,可选值:
output_audio_format 适用于 输出音频格式,当前仅支持设为 turn_detection 适用于 语音活动检测(VAD,Voice Activity Detection)配置,用于控制语音起止的检测方式:
属性 type VAD 类型,固定为 threshold VAD 检测灵敏度。值越低,越容易将微弱声音(包括背景噪音)识别为语音;值越高,需要更清晰、音量更大的语音才能触发。 取值范围:[-1.0, 1.0],默认值为 0.2。 silence_duration_ms 语音结束后需保持静音的最短时长(毫秒)。超过该时长后判定语音结束,服务端自动提交音频缓冲区并触发翻译响应。 取值范围:[200, 6000],默认值为 1000。 translation 翻译配置。 属性 language 翻译目标语种,可选值:支持的语种。默认值为 same_language_skip_options
同语种输出配置。当源语种与目标语种相同时,可跳过文本输出、音频输出或两者。仅当翻译目标语种为 属性 skip_text 是否在源语种与目标语种相同时跳过文本输出。 skip_audio 是否在源语种与目标语种相同时跳过音频输出。 corpus 热词配置,用于提升特定词汇的翻译准确性。 属性 phrases 热词映射表。key 为源语言词汇,value 为目标语言对应翻译。 示例: | qwen3.8-livetranslate-flash-realtimeqwen3.5-livetranslate-flash-realtime |
input_audio_buffer.append
向输入音频缓冲区追加音频字节。服务端使用此缓冲区检测并决定语音提交时机。
type 事件类型,固定为 audio Base64 编码的音频数据。 | |
input_audio_buffer.commit
提交输入音频缓冲区。仅在 Manual 模式(turn_detection设为null)下需要发送此事件;VAD 模式下服务端会自动提交,客户端无需发送。
服务端收到该事件后,会返回input_audio_buffer.committed事件确认,并自动开始生成翻译响应(无需再发送其他事件触发响应)。若音频缓冲区为空,服务端将返回错误事件。
type 事件类型,固定为 | |
input_audio_buffer.clear
清空输入音频缓冲区中尚未提交的音频数据。
type 事件类型,固定为 | |
input_image_buffer.append
用于将图像数据添加到图像缓冲区。图像可来自本地文件,或从视频流实时采集。
目前对图片输入有以下限制:
- 图像格式必须为 JPG 或 JPEG。建议分辨率为 480p 或 720p以获得最佳性能,最高不超过 1080p;
- 单张图片大小不大于500KB(Base64编码前);
- 图片数据需要经过Base64编码;
- 以不超过每秒 2 张的频率向缓冲区添加图像;
- 发送 input_image_buffer.append 事件前,至少发送过一次 input_audio_buffer.append 事件。
type 事件类型,固定为 image Base64 编码的图像数据。 | |
session.finish
用于结束当前会话。发送此事件后,服务端响应流程:
- 已检测到语音:服务端完成剩余翻译;启用原文识别时,通过 conversation.item.input_audio_transcription.completed 事件返回完整原文。所有音频翻译完成后,发送 session.finished 事件作为会话结束标识。
- 未检测到语音:服务端直接发送
session.finished事件。
客户端监听到session.finished事件后,需主动断开连接。
type 事件类型,固定为 | |