我把“打电话“和“对讲机“做进了同一个页面

话接上篇:

我盘了11个能"边听边说"的语音模型:开源占 2 个

其中,MiniCPM-o 是唯一带视频帧、且中文能用的那一个。

于是,我把它接进来了。

今日分享,聊聊背后的思考和取舍。

01 为什么是 MiniCPM-o

1.1 它是什么

Github 地址:https://github.com/OpenBMB/MiniCPM-V

MiniCPM-o 4.5 是面壁智能开源的全模态模型,2026 年 2 月放出来,9B 参数。

"全模态":文本、图像、音频吃进去,文本和语音吐出来。

在开源阵营里,能"边听边说"的全双工实时语音模型只有两个------Moshi 和它。

Moshi 是先行者,但纯音频、以英法为主,中文场景直接搞不定。

MiniCPM-o 是唯一同时带视频帧、且中文可用的那一个,权重和代码 Apache-2.0 开源。

1.2 它怎么做到"边听边说"

普通语音模型是回合制:你说完 → 它想 → 它说 → 你听。

哪怕端到端、哪怕低延迟,它也得等你把话说完才接。

全双工不一样:它把"听"和"说"当成两条同时进行的流,模型一边生成语音,一边持续吃你的输入。

谁先开口、要不要停、要不要接话,是每秒做很多次决策的结果,而不是等静音攒够才反应。

MiniCPM-o 做到这点,靠的不是把 ASR、LLM、TTS 三段拼起来。

它是一个端到端模型:视觉(SigLIP2)、音频理解(Whisper)、语音合成(CosyVoice2、Step-Audio2 提供 tokenizer 与声码)、大脑(Qwen3-8B)四个模块,在 token 级用隐藏状态直连成一个系统。

真正让它"边听边说"的,是那套时分复用机制------把并行的音频、视频、文本流,按毫秒对齐到同一条时间轴,切成小时间片里的信息组,让大脑主干同时处理"进"和"出"。

于是输入流(视频 + 音频)和输出流(语音 + 文本)互不阻塞:它能同时看、听、说。

这也是它能"主动"的原因:模型每秒判断一次要不要开口,看到该提醒的就提醒,不用你问。

落到听感上:16k 单声道进,24k 出,中间没有"转成文字再转回来"这一刀。

所以你听到的不是 TTS 拼出来的机械音,节奏像真人。

此外,系统提示里除了文字,还带一段"音频系统提示",给一句参考音频,它就能零样本克隆那个声音(注:实测音色不稳定)。

02 全双工实测

为了方便体验,我们已经接进了千流云,地址:

https://live.qlcloud.top

2.1 音频通话与随时打断

打开网页,选"全双工模型",点开始。

体验上最直观的一点:它说话时你可以随时打断 ,不用等它把一句话说完。

2.2 视频全双工

点一下相机按钮,进入视频全双工。

每秒从摄像头抓一帧,降采样到 320×240、压成 JPEG,随音频一起上行;网关把最新一帧,和下一帧音频,一起送进模型。

也就是 1 帧/秒。

你拿手机对着一道题、一个零件、一块屏幕,问它"这是什么、怎么弄",它看得懂,也能直接念出来。

2.3 扩展能力:双路字幕

MiniCPM-o 模型不带语音识别能力,也即不会返回用户的音频转写内容。

所以用户侧字幕是我们自己接的:旁挂一路实时 ASR,专门转写你的声音,不影响对话主链路。

实时对话时,屏幕上走两条字幕:你说的话,和 AI 说的话------模型本来就吐 output_text.delta,直接上屏。

2.4 扩展能力:跨会话记忆

今天你告诉它"我住杭州",明天它自己会提。

机制很朴素:会话开始时,把记忆库里的内容拼进 system_prompt;会话结束后,把双方的文字稿喂给记忆模块,挑出值得记的写回去。

这个跨会话记忆,是一个独立能力,体验地址在:https://mem.qlcloud.top

开不开、用哪个大脑,由你决定。

对话结束,由模型主动写入记忆库:

2.5 模型缺陷:不会调工具

这是 MiniCPM-o 最大的短板。

公开的 Realtime 协议里,根本没有定义 function-call 事件。

连带着,工具调用、文字输入、历史恢复、记忆写入、后台委派------凡是挂在 function calling 上的能力,整体不可用。

03 办事交给级联

要它查个资料、办个事,就彻底没戏了?

为此,我们走了另一条路,把工具调用接进了级联模型。

3.1 链路与打断

级联是 VAD → ASR → LLM → TTS 拼出来的链路。

轮次靠 ASR 自带的 VAD 断句------它检测到你说完一句,自动吐终稿。

当然,实时打断也在:ASR 一检出你的新语音,立刻取消当前正在合成的 TTS 流。

所以,级联模式保留了随时打断能力。

你也能插话,只是底层是一轮一轮的实现,有轮次感。

3.2 工具怎么接

级联的大脑是 LLM,工具调用是它的看家本领。

联网搜索、长期记忆、知识库问答,都能挂进来。

而且调用过程在字幕里看得见,比如 "调用工具 web_search..." → "工具 web_search 完成"

这一路是"会干活的语音助手",所以我们把音色克隆也开放出来了,你可以定制自己的音色,体验地址在:

https://tts.qlcloud.top

3.3 代价诚实说

级联不是免费的午餐,两个缺陷要摊开讲:

• 有轮次感:它毕竟一轮一轮的,双讲(你和它同时说)和噪声环境下,不如全双工顺。

• 噪声会误触发:VAD 判轮次,电视声、旁人说话都可能被当成"你开口了"而误打断,得调高检测阈值或播放期闭麦缓解。

04 选型与接入

4.1 怎么选

一句话:对话本身就是产品,走全双工;要它查东西、办事的,走级联。

• 口语陪练、陪伴、视觉辅助、硬件入口 → 全双工

• 查资料、办业务、知识问答 → 级联

4.2 API 接入

API 接入,支持以上两种模式,同一个端点,用 mode 参数区分:

bash 复制代码
wss://api.qlcloud.top/gateway/live/v1/realtime?mode=duplex|cascade

上行 PCM16 16k 音频流,下行 PCM16 24k 音频 + 字幕 / 事件。

• 全双工:vision=1 开视频帧,asr=模型id 选用户侧字幕

• 级联:voice 选音色,llm 选大脑,tools=search,memory,kb 开工具组,bank 挂记忆

一个 key 同时只能跑一路;单会话最长 120 分钟。

完整协议、错误码、示例代码都在 live.qlcloud.top 的接入文档里。

SECTION 05写在最后

本文分享了我们对 MiniCPM-o 的理解和取舍,以及它在千流云的接入方式。

想直接上手试,欢迎来:

https://live.qlcloud.top

相关推荐
镜象科技1 小时前
职业院校AI心理健康解决方案是什么?从一台设备到全周期守护
android·人工智能
愤怒的代码1 小时前
模型量化为什么几乎不损失精度:误差的四道防线
人工智能
YoLo♪1 小时前
PicGo OpenHarmony PC 适配说明
人工智能·机器人·交互
Web3&Basketball1 小时前
决策模型vs GPT-5实测:便宜400倍
人工智能·python·gpt·大模型·ai落地·推理优化·决策模型
zzu123zsw1 小时前
从 Copilot 中间人切换到自主工程执行体:Block 开源 AI 研发智能体 Goose 的 Rust 微内核与 MCP 扩展实践
人工智能·开源·copilot
Mars-xq1 小时前
家庭膳食营养速查表
大数据·人工智能
围炉聊科技1 小时前
从一次36分钟的翻盘学习DSH是怎么做 Loop Engineering的——智能体基建系列
人工智能
java资料站1 小时前
十五、Spring AI Alibaba · 高级 ·Graph
java·人工智能·spring
明志数科1 小时前
具身智能机器人从演示验证到常态化部署的工程差距分析
人工智能·机器人