把旧手机和平板变成带屏 AI 语音终端:小新 APP 的开源方案

📅 2026/7/2 10:45:21
把旧手机和平板变成带屏 AI 语音终端:小新 APP 的开源方案
很多人做 AI 语音助手时第一反应是找一个麦克风、一个扬声器再接一个大模型服务端。这个方向可以跑通“听和说”但一旦进入真实业务场景纯语音盒子的表达能力很快就不够用了。比如会议室预约、医院导诊、门店导购、智能家居中控、办公区查询屏这些场景里用户不只是想听一句回答还需要看到列表、路线、二维码、表格、图片、视频、确认按钮和业务状态。语音负责自然输入屏幕负责结构化表达这才是带屏 AI 终端真正有价值的地方。我最近开源了一个项目小新 APP。它不是云端聊天服务也不是一个换壳 AI 聊天客户端而是一个基于 Flutter 的端侧语音交互终端客户端。项目地址官网小新 APP - 开源带屏 AI 语音交互终端客户端GitHubGitHub - fengin/xiaoxin-app: 小新 APP 是一个基于 Flutter 开发的跨平台语音交互客户端实现了与 [xiaozhi-esp32](https://github.com/78/xiaozhi-esp32) 相同的通信协议可连接 xiaozhi-esp32-server-java/python/golang 后端服务。 · GitHubAndroid ReleaseReleases · fengin/xiaoxin-app · GitHub小新 APP 解决的不是“聊天 UI”而是端侧语音链路一个真实可用的语音终端难点不在于页面上画一个聊天气泡而在于端侧这条链路是否稳定用户怎么唤醒设备怎么判断用户开始说话和说完录音时怎样避免开头半秒被吃掉音频数据如何压缩传输服务端流式返回 TTS 时客户端怎样低延迟播放用户中途打断时本地播放、服务端推理、前端状态如何同时复位H5 业务页面怎样拿到原生语音能力小新 APP 的定位就是把这些端侧链路工程沉淀成一个可复用的开源客户端。技术链路拆解小新的核心链路可以概括为离线热词唤醒 - VAD 语音活动检测 - PCM 采集与预缓存 - Opus 编码 - WebSocket 小智协议通信 - 服务端 STT/LLM/TTS - 流式音频返回 - PCM 解码播放 - 打断与状态机复位这里面每一段都不是孤立模块。真正难的是把它们串成一个自然的实时对话体验。1. 离线唤醒小新使用 Sherpa-ONNX 做端侧热词唤醒。唤醒词在本地识别不需要每一秒都把环境声音上传到云端也更适合常驻智能屏、桌面屏、挂墙屏这类设备。2. 端侧 VAD用户说话不是一个按钮事件。真实环境里会有停顿、噪声、误触发和半句话。小新集成 Silero VAD用端侧模型判断语音活动区间让客户端知道什么时候开始录、什么时候停止传。3. Opus 流式音频直接传 PCM 会让网络负担很重。小新把采集到的音频通过 Opus 编码后按帧走 WebSocket 发送更适合弱网和低延迟实时对话。4. 低延迟播放和打断服务端返回 TTS 音频时小新不是等完整音频文件下载完再播放而是分片接收、即时解码、写入 PCM 播放缓冲区。更关键的是打断。用户说“停一下”或者重新唤醒时客户端需要清空本地播放缓冲、通知服务端停止当前推理、把状态机切回可监听状态。否则用户会明显感觉设备“不听话”。为什么要做 H5 Bridge很多业务团队已经有 Web/H5 页面例如会议室系统、导诊系统、商品详情页、设备管理页。让他们重新写一套原生 App 成本很高。所以小新内置了 WebView 容器并向页面注入 window.XiaoXin 对象。H5 页面可以直接调用原生语音能力window.addEventListener(xiaoxin:ready, () { XiaoXin.on(onStateChange, data { console.log(当前状态, data.state); }); XiaoXin.on(onSttText, data { console.log(用户说, data.text); }); XiaoXin.on(onTtsSentence, data { console.log(AI 回复, data.text); }); XiaoXin.startVoice(); });这样业务页面不用理解底层录音、VAD、Opus、WebSocket、播放缓冲也可以获得语音交互能力。它适合哪些场景小新更适合“语音 屏幕 业务流程”的终端场景前台或会议室外的日程查询屏。医院自助导诊屏。门店、展厅的 AI 导购屏。桌面 4 寸智能屏或家庭中控。需要把 Web 业务页面改造成语音入口的内部系统。这些场景不适合只用一个纯语音盒子。因为用户需要看、点、确认、扫码、比较和选择。小新不提供什么这里也要说清楚小新 APP 本身不提供官方云端大模型服务。它负责端侧客户端链路开发者需要接入自建服务端或者兼容小智协议的服务端。这也是它作为开源项目的价值数据、服务端、业务逻辑都掌握在开发者自己手里客户端负责把语音交互链路稳定跑起来。适合学习什么如果你想研究 AI 语音终端小新可以作为一个完整工程样例Flutter 跨平台终端开发。小智协议 WebSocket 通信。Sherpa-ONNX 离线热词唤醒。Silero VAD 端侧语音活动检测。Opus 流式音频传输。PCM 低延迟播放。H5 WebView 与 JS Bridge。语音会话状态机和打断控制。总结带屏 AI 语音终端的重点不是“给聊天机器人套个屏幕”而是把自然语音和结构化界面结合起来。语音负责低门槛输入屏幕负责高信息密度表达业务系统负责最终动作。小新 APP 目前已经 MIT 开源并提供 Android 安装包和完整源码。对智能硬件、AI 语音助手、H5 业务系统语音化、Flutter 终端开发感兴趣的同学可以从官网和 GitHub 开始看官网https://xiaoxin.chat/?utm_sourcecsdnutm_mediumarticleutm_campaignxiaoxin_202606_sprintutm_contentsummary_homeGitHubGitHub - fengin/xiaoxin-app: 小新 APP 是一个基于 Flutter 开发的跨平台语音交互客户端实现了与 [xiaozhi-esp32](https://github.com/78/xiaozhi-esp32) 相同的通信协议可连接 xiaozhi-esp32-server-java/python/golang 后端服务。 · GitHubH5 Bridge 文档https://github.com/fengin/xiaoxin-app/blob/main/H5_VOICE_SDK.md?utm_sourcecsdnutm_mediumarticleutm_campaignxiaoxin_202606_sprintutm_contenth5_bridge