Qwen3.5-Omni-Plus-Realtime
复制成功!
实时全模态
概述
实时全模态
Qwen3.5-Omni是Qwen最新一代全模态大模型,支持文本,图片,音频,音视频理解与交互。作为 Qwen3-Omni 的全面进化版本,支持60+种语言音频输入,30+语言语音输出以及可控语音对话,WebSearch和复杂FunctionCall的调用,并且具备智能语义打断的交互能力,广泛应用于文本创作、语音助手、多媒体分析等场景,提供自然流畅的多模态交互体验。
输入
文本图像视频音频
输出
文本音频
功能
定价
- 输入:音频¥80/M tokens
- 输出:文本+音频(输出的文本不计费)¥300/M tokens
- 输入:文本/图片/视频¥10/M tokens
- 输出:文本¥60/M tokens
速率限制与上下文
- 最大输入196.60K
- 最大输出65.53K
- RPM每分钟请求数60
- TPM每分钟 Token 数100K
- 上下文262.14K
内置工具
search_strategy:agentCompletions API
API 参考
获取 API Key复制成功!
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
# 依赖:dashscope >= 1.23.9,pyaudio
import os
import base64
import time
import pyaudio
from dashscope.audio.qwen_omni import MultiModality, AudioFormat,OmniRealtimeCallback,OmniRealtimeConversation
import dashscope
url = f'wss://dashscope.aliyuncs.com/api-ws/v1/realtime'
# 配置 API Key,若没有设置环境变量,请用 API Key 将下行替换为 dashscope.api_key = "sk-xxx"
dashscope.api_key = os.getenv('DASHSCOPE_API_KEY')
# 指定音色
voice = 'Ethan'
# 指定模型
model = 'qwen3.5-omni-plus-realtime'
# 指定模型角色
instructions = "你是个人助理小云,请用幽默风趣的方式回答用户的问题"
class SimpleCallback(OmniRealtimeCallback):
def __init__(self, pya):
self.pya = pya
self.out = None
def on_open(self):
# 初始化音频输出流
self.out = self.pya.open(
format=pyaudio.paInt16,
channels=1,
rate=24000,
output=True
)
def on_event(self, response):
if response['type'] == 'response.audio.delta':
# 播放音频
self.out.write(base64.b64decode(response['delta']))
elif response['type'] == 'conversation.item.input_audio_transcription.completed':
# 打印转录文本
print(f"[User] {response['transcript']}")
elif response['type'] == 'response.audio_transcript.done':
# 打印助手回复文本
print(f"[LLM] {response['transcript']}")
# 1. 初始化音频设备
pya = pyaudio.PyAudio()
# 2. 创建回调函数和会话
callback = SimpleCallback(pya)
conv = OmniRealtimeConversation(model=model, callback=callback, url=url)
# 3. 建立连接并配置会话
conv.connect()
conv.update_session(output_modalities=[MultiModality.AUDIO, MultiModality.TEXT], voice=voice, instructions=instructions)
# 4. 初始化音频输入流
mic = pya.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True)
# 5. 主循环处理音频输入
print("对话已开始,对着麦克风说话 (Ctrl+C 退出)...")
try:
while True:
audio_data = mic.read(3200, exception_on_overflow=False)
conv.append_audio(base64.b64encode(audio_data).decode())
time.sleep(0.01)
except KeyboardInterrupt:
# 清理资源
conv.close()
mic.close()
callback.out.close()
pya.terminate()
print("\n对话结束")