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

话接上篇:

我盘了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

相关推荐
其实防守也摸鱼21 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
甲维斯21 小时前
Workbuddy+HY4 略超预期!
人工智能
天远API1 天前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
朱涛的自习室1 天前
212 个需求、22 万行代码:Agent 接管开源项目的 19 天
android·前端·人工智能
美林数据Tempodata1 天前
高职大数据技术专业升级的六个落地样本:从产业链需求库到实训室数据链路
大数据·人工智能·数字化转型·产教融合·ai教育
美好世界1 天前
OpenAI Codex 源码深度剖析(三):执行引擎与内核沙箱深度剖析
人工智能
敖老师1 天前
Dify 接入高德地图 MCP:Agent 策略、新旧节点与配置全流程避坑指南
人工智能
Front_Yue1 天前
在 Rokid AIUI 上做「拍照识花」:图像链路与踩坑记录
人工智能
武子康1 天前
Agent 说“3 passed”就算修好了?先检查是谁判的通过
人工智能·agent
老金带你玩AI1 天前
ChatGPT上新功能!我做了一个批量生成动态表情包的Skill!
人工智能