AI桌面陪伴助手:方案更新至 v2.4,代码剥离到独立仓库
代码剥离 - 助手本体、TTS 服务、P0 基准脚本、ESP32 固件移到 ~/workspace/ai-companion (独立 git 仓库),本目录只留方案、P0 报告与硬件记录 - 因此删除 esp32_smile_test.ino / esp32_touch_eyes.ino - 同时移除已失效的 .gitignore(原本只为挡住模型体积,代码已搬走) 方案 v2.4 重大变更:架构从"单机"改为"服务器即助手、本地为客户端" - 起因:实测 N5095 无 AVX2,跑不动可用的语音模型 - N5095 降为客户端/外设桥,只做 USB 接入、DoA、WebRTC 客户端 - 实施阶段表加进度列(P0/P1/P3/P4a 部分完成),新增三条验收要求 - 采购清单按实际到货更新,标出屏幕形态待确认(2.8寸 vs 原定1.28寸圆屏) 技术栈(实测更新) - LLM:DeepSeek deepseek-flash(云端,必须关思考);本机 27B 已停用 - TTS:Qwen3-TTS 1.7B(服务器 3090);vits-zh-ll 因音色不满意被替换 - STT:Zipformer int8 未变,中文识别率仍是未闭合项 新增两份 P0 报告 - P0-Qwen3TTS报告.md:TTS 换型过程与实测 - P0-DeepSeek验证报告.md:四条路径验证 两份旧报告加了状态说明(结论仍有效但选型已变), 并修正了随代码移走而失效的引用与复现命令。
This commit is contained in:
+122
-52
@@ -1,51 +1,87 @@
|
||||
# AI 桌面陪伴助手 · 实施规划 v2.3
|
||||
# AI 桌面陪伴助手 · 实施规划 v2.4
|
||||
|
||||
> 更新:2026-09-12。状态:架构方向确认,具体采购及环境待确认;尚未实现或实机验证。
|
||||
> 已确认:Ubuntu,复用 N5095 / 16G;麦克风、音箱、屏幕、摄像头均未购;LLM先用DeepSeek V4.1 Flash;语音优先本地运行。以本人使用为主,加入基础多人能力并预留身份扩展;预算分阶段投入。
|
||||
> 📁 **代码已与本文档分离**(2026-09-15)。本目录(Obsidian 笔记库)只保留
|
||||
> 方案、P0 报告和硬件记录;所有代码在 **`~/workspace/ai-companion/`**
|
||||
> (独立 git 仓库),包括:助手本体、TTS 服务、P0 基准脚本、ESP32 固件、
|
||||
> `README.md`(代码说明)、`部署说明.md`(运维)——这两份也在代码仓库。
|
||||
>
|
||||
> 更新:2026-09-15。状态:**助手本体已在服务器上实现并跑通**(端到端测试 16/16);设备侧(N5095 外设桥、ESP32)尚未开始。
|
||||
> 已确认:Ubuntu 24.04;N5095 / 16G 作为**客户端**;助手本体部署在 cadadmin-server(i9-14900K / 3090);麦克风、音箱、摄像头均未购;屏幕已于 09-14 到货并点亮(2.8 寸 ILI9341 触摸屏,非原定的 1.28 寸圆屏)。
|
||||
> 核心目标:听得清、回应及时、可打断、表情明确、转头自然。
|
||||
> 最新外形要求:屏幕不用太大,暂沿用1.28英寸圆屏;摄像头水平可用旋转总行程至少180°,按正前方左右各90°理解,不是镜头视场角180°。
|
||||
> 最新外形要求:屏幕不用太大;摄像头水平可用旋转总行程至少180°,按正前方左右各90°理解,不是镜头视场角180°。
|
||||
> 原方案备份:AI桌面陪伴助手方案.v1备份.md。本版指标为拟定目标,不是已测性能。
|
||||
>
|
||||
> **本版重大变更:架构从"单机"改为"服务器即助手、本地为客户端"。**
|
||||
> 起因是实测发现 N5095(无 AVX2)跑不动可用的语音模型——详见
|
||||
> `P0-语音基准报告.md`。变更后 N5095 只做 USB 外设接入与网络桥接。
|
||||
> 详细部署现状见代码仓库里的 `部署说明.md`,实测数据见本目录的四份 P0 报告。
|
||||
|
||||
## 1. 范围与待讨论事项
|
||||
|
||||
第一版做好本地中文语音、屏幕表情、按用户隔离的记忆;同一轮开发加入多人脸跟踪、轮流交互和显式身份切换。录入式人脸识别作为可关闭的试验功能,实测达标后用于身份建议;重叠说话分离、可靠声纹认人不作为首版要求。视觉问答和米家后续加入。
|
||||
第一版做好中文语音、屏幕表情、按用户隔离的记忆;同一轮开发加入多人脸跟踪、轮流交互和显式身份切换。录入式人脸识别作为可关闭的试验功能,实测达标后用于身份建议;重叠说话分离、可靠声纹认人不作为首版要求。视觉问答和米家后续加入。
|
||||
|
||||
| 项目 | 状态/建议 | 影响 |
|
||||
|---|---|---|
|
||||
| 主机 | 已有 N5095 / 16G,复用,不追加主机/GPU | 当前规划基础 |
|
||||
| **主机分工** | **服务器(cadadmin-server)跑助手本体;N5095 降为客户端/外设桥** | **v2.4 重大变更,见 §2** |
|
||||
| 服务器 | i9-14900K / 32线程 / 188G / RTX 3090 24G,局域网延迟 1–2ms | 与 N5095 同局域网,1ms 级 |
|
||||
| N5095 角色 | USB 麦克风阵列、USB 摄像头、DoA 读取、WebRTC 客户端、串口给 ESP32 | 不跑任何推理 |
|
||||
| 使用人数 | 本人使用为主,同时考虑多人扩展 | 首版基础多人,身份与会话从一开始分离 |
|
||||
| 新增预算 | 用户暂未设上限,先看选型;分阶段购买 | 音频优先,其次屏幕,再机械 |
|
||||
| 操作系统、现有外设 | 已确认Ubuntu;麦克风、音箱、屏幕、摄像头都没有 | 需采购;P0仍需确认Ubuntu版本和USB接口 |
|
||||
| 新增预算 | 服务器为复用已有机器,不算追加采购 | 音频优先,其次屏幕,再机械 |
|
||||
| 操作系统、现有外设 | Ubuntu 24.04 已确认;麦克风、音箱、摄像头都没有;屏幕已到货 | 需采购音频与摄像头 |
|
||||
| 使用距离 | 待确认;暂以桌面约0.5~2米作为测试设计假设 | 不能当作已确认需求或性能保证 |
|
||||
| 屏幕 | 用户要求不用太大,原型沿用1.28英寸圆屏,显示表情和短状态 | 暂不扩大屏幕 |
|
||||
| 屏幕 | **已到货:2.8 寸 ILI9341 触摸屏**(与原定 1.28 寸圆屏不符,待确认最终形态) | 见 `ESP32-S3与2.8寸SPI触摸屏接线记录.md` |
|
||||
| 摄像头旋转 | 水平可用总行程至少180°,正前方左右各90° | 优先屏幕与摄像头共用一轴头部,麦克风固定底座 |
|
||||
| 模型及月费 | DeepSeek V4.1 Flash API;中文STT/TTS本地优先;云端语音仅为可选后备 | 本地速度实测;月费主要来自LLM/按需视觉 |
|
||||
| **LLM** | **DeepSeek `deepseek-flash`(云端,关思考)**;本机 Qwen3.8-27B 已停用 | 首 token 0.8–1.2s;月费来自 LLM 与按需视觉 |
|
||||
| **TTS** | **Qwen3-TTS 1.7B(服务器 3090)**,Serena 音色 + 轻快活泼指令 | RTF 0.55–0.94;首音延迟的主要来源 |
|
||||
| **STT** | Zipformer 中英双语 int8(CPU)——**仍是 2023 年模型,中文识别率未测** | v2.4 未替换,遗留项 |
|
||||
| 米家设备 | 到扩展阶段收集型号、地区、网关/HA情况 | 集成与采购选择 |
|
||||
| 结构 | 屏幕/摄像头到货后称重,确认加工条件 | 电机、支架、电源 |
|
||||
|
||||
## 2. 总体架构
|
||||
|
||||
```text
|
||||
USB 麦克风阵列(固定底座) ──处理后音频、DoA──┐
|
||||
USB 摄像头(随头部转动) ──本地图像───────────┤
|
||||
▼
|
||||
N5095 / 16G
|
||||
会话状态机 + Pipecat:本地VAD / STT → DeepSeek API → 本地分句TTS
|
||||
TTS → 阵列 USB 播放端点 → 阵列音频输出 → 有源音箱
|
||||
本地人脸检测 / 目标锁定 → 角度控制(不依赖LLM响应)
|
||||
SQLite 记忆 / 受限工具调用 / 日志与故障恢复
|
||||
│ USB 串口,初始115200
|
||||
▼
|
||||
ESP32:本地表情、运动轨迹、限位、心跳超时处理
|
||||
├─ SPI → GC9A01屏幕
|
||||
┌─ cadadmin-server(192.168.0.20)—— 助手本体 ────────────────┐
|
||||
│ 会话引擎(身份 → 记忆 → LLM → TTS) │
|
||||
│ ├─ LLM:DeepSeek deepseek-flash(云端,关思考) │
|
||||
│ ├─ TTS:Qwen3-TTS 1.7B(RTX 3090,独立 HTTP 服务 :18040) │
|
||||
│ ├─ STT:Zipformer 中英宽带 int8(CPU 4 线程) │
|
||||
│ ├─ 记忆:SQLite(按 owner_user_id 强制隔离) │
|
||||
│ └─ 身份:手动切换 + 访客兜底 │
|
||||
└────────────────────────────────────────────────────────────┘
|
||||
▲ WebRTC(计划) ▲ 手机/浏览器客户端
|
||||
│ 局域网 1–2ms │
|
||||
┌─ N5095 / 16G —— 客户端 / 外设桥 ───────────────────────────┐
|
||||
│ USB 麦克风阵列(固定底座)──处理后音频、DoA──┐ │
|
||||
│ USB 摄像头(随头部转动)──本地图像───────────┤ │
|
||||
│ ├─ DoA 读取(本地,**不过网**——转头回路延迟敏感) │
|
||||
│ ├─ 本地人脸检测 / 目标锁定 → 角度控制(不依赖LLM响应) │
|
||||
│ ├─ 插话检测、音频编解码、WebRTC 客户端 │
|
||||
│ └─ USB 串口 115200 → ESP32 │
|
||||
└────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
ESP32-S3:本地表情、运动轨迹、限位、心跳超时处理
|
||||
├─ SPI → 2.8寸 ILI9341 触摸屏(已到货)
|
||||
└─ 控制信号 → 一轴执行器(独立合适供电支路)
|
||||
```
|
||||
|
||||
- Pipecat作为唯一会话管线框架;本地音频已有示例,系统音频依赖仍需验证。[官方示例](https://github.com/pipecat-ai/pipecat/blob/main/examples/README.md)
|
||||
- **分工原则:延迟敏感且硬件绑定的留在本地**(音频进出、唤醒、VAD、
|
||||
插话检测、DoA、表情/动作),**算力密集的放服务器**(STT、TTS、LLM 调用、记忆)。
|
||||
- Pipecat作为唯一会话管线框架。服务器侧用 WebRTC 传输(SmallWebRTC),
|
||||
**WebRTC 自带 AEC、抖动缓冲、丢包恢复**——这解决了方案 P2 要求的 AEC 难题,
|
||||
原本需要自行实现。[传输选型](https://docs.pipecat.ai/client/concepts/choosing-a-transport)
|
||||
- 不叠加Vision Agents:它是Stream的独立框架,不是Pipecat官方扩展。人脸检测另选轻量本地模型。[项目官方仓库](https://github.com/GetStream/vision-agents)
|
||||
- STT/TTS采用本地可替换适配器,LLM使用DeepSeek V4.1 Flash。官方2026-09-10公告指定API模型名为`deepseek-flash`;这是可更新别名,实施时记录实际版本并做流式/工具调用验证。[官方公告](https://deepseek.com/news/deepseek-v4-1-flash/)
|
||||
- 视觉跟随先试640×480、5~10fps,按CPU、温度和延迟调整,未承诺该帧率已可达到。视觉问答按请求抓拍和缩放上传,不持续发送视频。
|
||||
- STT/TTS采用可替换适配器(本地/远端两种后端已实现)。LLM 为 DeepSeek
|
||||
`deepseek-flash`;这是可更新别名,实施时记录实际版本并做流式/工具调用验证。
|
||||
**实测必须显式关闭思考模式**,否则多轮与工具回灌一律 400。
|
||||
[官方公告](https://deepseek.com/news/deepseek-v4-1-flash/) · 详见 `P0-DeepSeek验证报告.md`
|
||||
- **视觉跟随在客户端做**(N5095 本地),先试640×480、5~10fps,
|
||||
按CPU、温度和延迟调整,未承诺该帧率已可达到。视觉问答按请求抓拍和缩放上传,
|
||||
不持续发送视频。
|
||||
- CPU标称TDP不能当整机常开功耗;实际插座功率、风扇噪声、温度在原型阶段测量。
|
||||
- **降级策略**:服务器或网络失效时,本地按键、静音和屏幕继续工作;
|
||||
建议保留一个极小的本地 TTS 兜底(piper-x_low 仅 20MB、RTF 0.17),
|
||||
用于播报"网络断了"——这是设备失联时唯一能出声的东西。
|
||||
|
||||
### 视频采集与框架边界
|
||||
|
||||
@@ -59,35 +95,54 @@ ESP32:本地表情、运动轨迹、限位、心跳超时处理
|
||||
|
||||
阶段通过后再扩大范围,不预先给出未经验证的固定工期。
|
||||
|
||||
| 阶段 | 实施内容 | 拟定完成标准 | 硬件依赖 |
|
||||
**进度列说明**:✅ 完成 · 🔶 部分完成 · ⬜ 未开始
|
||||
|
||||
| 阶段 | 实施内容 | 拟定完成标准 | 进度 |
|
||||
|---|---|---|---|
|
||||
| P0 环境与服务 | 盘点Ubuntu版本/USB;固定依赖;本地STT/TTS基准及DeepSeek请求 | 样例音频/文本先测试;设备到货后10次录放测试;记录RTF、首音延迟、CPU和内存 | 无外设可先测文件;实时测试待音频套件 |
|
||||
| P1 基础语音 | 按键启动;流式回复;停止按钮;超时提示 | 20轮固定中文用例至少18轮完成;短问答结束到首段有声回复,目标P50≤2秒、P95≤4秒 | 耳麦或音频套件 |
|
||||
| P2 外放与表情 | AEC、打断、唤醒;听/想/说/离线/静音表情 | 指定距离音量下20次打断至少18次成功;检测到有效用户语音至停播目标≤300ms;30分钟外放无自我触发;运行2小时稳定 | 阵列、音箱、MCU、屏幕 |
|
||||
| P3 多用户记忆 | 用户档案、显式切换、偏好/摘要/修改/遗忘 | 两个用户同一问题得到各自偏好;未知用户无私人记忆;重启保留、更正/删除有效 | 无新增 |
|
||||
| P4 一轴转头 | 静态DoA/人脸验证,再接电机;锁定和限位 | 左/中/右各10次唤醒至少27次转向正确区域;轻微移动不频繁摆动;断联/重启不撞限位;运动时重复P2测试 | 摄像头、电机、支架、供电 |
|
||||
| P4a 基础多人/身份试验 | 2~3张脸跟踪;轮流发言;可选录入式人脸识别 | 20次轮流唤醒至少18次选中正确目标;同方向/交叉/遮挡时允许拒判;未知人、身份切换不得串记忆 | 同一阵列和单目摄像头,无新增专用硬件 |
|
||||
| P5 扩展 | 按需视觉问答;HA接一盏灯 | 检查10次视觉请求;开关灯、离线、超时均反馈真实结果 | 现有米家设备优先 |
|
||||
| P0 环境与服务 | 盘点Ubuntu版本/USB;固定依赖;本地STT/TTS基准及DeepSeek请求 | 样例音频/文本先测试;设备到货后10次录放测试;记录RTF、首音延迟、CPU和内存 | 🔶 **环境盘点、STT/TTS/LLM 基准、DeepSeek 四条路径均已实测**;缺 10 次录放(无音频硬件)。**STT 中文识别率仍是未闭合项** |
|
||||
| P1 基础语音 | 按键启动;流式回复;停止按钮;超时提示 | 20轮固定中文用例至少18轮完成;短问答结束到首段有声回复,目标P50≤2秒、P95≤4秒 | 🔶 **链路已跑通**(文本/音频 → STT → 记忆 → LLM → TTS → 音频,16/16 通过);缺实时音频进出、按键、20 轮用例。首音实测约 1.5s,加 VAD 后 **2.0–2.2s,卡在目标线** |
|
||||
| P2 外放与表情 | AEC、打断、唤醒;听/想/说/离线/静音表情 | 指定距离音量下20次打断至少18次成功;检测到有效用户语音至停播目标≤300ms;30分钟外放无自我触发;运行2小时稳定 | ⬜ 未开始。**AEC 计划由 WebRTC 提供**(不自行实现) |
|
||||
| P3 多用户记忆 | 用户档案、显式切换、偏好/摘要/修改/遗忘 | 两个用户同一问题得到各自偏好;未知用户无私人记忆;重启保留、更正/删除有效 | 🔶 数据层已实现并测试(身份隔离、越权删除、级联清理、候选不参与检索共 28 项);缺"修改/遗忘"的用户入口 |
|
||||
| P4 一轴转头 | 静态DoA/人脸验证,再接电机;锁定和限位 | 左/中/右各10次唤醒至少27次转向正确区域;轻微移动不频繁摆动;断联/重启不撞限位;运动时重复P2测试 | ⬜ 未开始,待摄像头与电机 |
|
||||
| P4a 基础多人/身份试验 | 2~3张脸跟踪;轮流发言;可选录入式人脸识别 | 20次轮流唤醒至少18次选中正确目标;同方向/交叉/遮挡时允许拒判;未知人、身份切换不得串记忆 | 🔶 `IdentityProvider` 接口与手动切换已实现(人脸候选**不自动切换**已测试);缺人脸检测 |
|
||||
| P5 扩展 | 按需视觉问答;HA接一盏灯 | 检查10次视觉请求;开关灯、离线、超时均反馈真实结果 | 🔶 工具调用链路已验证(DeepSeek 与本机 vLLM 均通过);缺米家与视觉 |
|
||||
|
||||
验收记录距离、背景声音、播放音量、网络、模型版本、样本数。目标用于定位瓶颈,不保证所有环境都达到。耳麦通过不能代替远场外放验收。
|
||||
|
||||
**v2.4 新增的验收项**:
|
||||
|
||||
- **首音延迟必须按部署机(服务器)测**,不能沿用开发机的数字。
|
||||
同一份代码在 N5095 上首音 1980ms,在服务器上 179ms(vits 时代)。
|
||||
- **TTS 与 STT 的线程配置分别测**。实测两者线程扩展方向相反:
|
||||
STT 超过 2 线程急剧退化(N5095 无 AVX2,4 线程慢 3.9 倍),
|
||||
TTS 是线程越多越快。不能沿用一套配置。
|
||||
- **换语音模型时必须重测首音延迟**。Qwen3-TTS 比 vits-zh-ll 音质好一个档次,
|
||||
但首音从 179ms 涨到 1545ms(8.6 倍)。音质与延迟在这个硬件上是此消彼长的。
|
||||
|
||||
P2的30分钟/2小时测试仅是初步门槛,不能证明长期稳定。阶段通过后做一次正常音量下至少8小时运行:记录误唤醒次数、内存增长、音频欠载、重连及温度。P4a把“转对人”和“认对身份”分开统计,额外报告误认、拒判、切换次数,不用总成功率掩盖串身份。测试人数不足时,多用户记忆可用模拟身份测试,人脸/发言者匹配则明确标记未实测。
|
||||
|
||||
## 4. 分批采购清单
|
||||
|
||||
本表未报价:用户预算尚未确定,具体SKU和商家现价需核价。已确认麦克风、音箱、屏幕、摄像头均需购买;MCU和线材是否已有待核对。
|
||||
> **v2.4 更新(2026-09-15)**:ESP32-S3 开发板与屏幕**已于 09-14 到货并点亮**,
|
||||
> 但屏幕是 **2.8 寸 ILI9341 触摸屏(240×320)**,与原定的 1.28 寸 GC9A01 圆屏不符。
|
||||
> 接线与测试程序见 `ESP32-S3与2.8寸SPI触摸屏接线记录.md`。
|
||||
> **最终屏幕形态待确认**——这会影响外壳与转台结构设计,越早定越省返工。
|
||||
> 下列清单已按现状调整。
|
||||
|
||||
### 第一批:可先购买的通用原型件
|
||||
本表未报价:用户预算尚未确定,具体SKU和商家现价需核价。**当前实际还缺的只有音频(麦克风阵列+音箱)和摄像头。**
|
||||
|
||||
| 物品 | 数量 | 购买规格 | 备注 |
|
||||
|---|---:|---|---|
|
||||
| ESP32-S3开发板 | 1 | 优先N8R8等带PSRAM型号,已焊2.54mm排针,有原理图/引脚表/USB下载说明 | PSRAM便于放素材,简单表情并非必须 |
|
||||
| GC9A01圆屏模块 | 1 | 1.28英寸240×240、SPI、3.3V逻辑;明确供电和背光接法;已焊排针 | 不买裸屏FPC;当前沿用原方案圆屏形态 |
|
||||
| USB数据线 | 按缺口 | 匹配板卡插口,明确支持数据,原型约0.5~1米 | 阵列和摄像头线按套装补齐 |
|
||||
| 杜邦线/面包板/绝缘固定件 | 1套 | 与排针匹配 | 只用于逻辑低电流,不走电机大电流 |
|
||||
| 瞬时按键 | 2 | 普通低压按键,接空闲GPIO | 会话停止、软件静音;不宣称物理断麦 |
|
||||
### 第一批:已基本到位
|
||||
|
||||
如更想减少接线,可以用ESP32-S3带1.28英寸屏幕的一体板替代前两项,不能重复买。须先核实外露GPIO、接插件间距和电机控制引脚。一体板不同SKU不能混用引脚表。[Waveshare官方参考](https://www.waveshare.com/product/esp32-s3-lcd-1.28.htm)
|
||||
| 物品 | 数量 | 状态 |
|
||||
|---|---:|---|
|
||||
| ESP32-S3开发板 | 1 | ✅ 已有 N16R8(带 PSRAM) |
|
||||
| 屏幕 | 1 | ✅ 已有 2.8 寸 ILI9341 触摸屏(**非原定 1.28 寸圆屏**) |
|
||||
| USB数据线 | 按缺口 | 按缺口补 |
|
||||
| 杜邦线/面包板/绝缘固定件 | 1套 | 按缺口补;只用于逻辑低电流,不走电机大电流 |
|
||||
| 瞬时按键 | 2 | 待购;会话停止、软件静音,不宣称物理断麦 |
|
||||
|
||||
若最终决定用 1.28 寸圆屏形态,仍需单独采购 GC9A01 模块;若接受 2.8 寸方屏,则本批已完成。
|
||||
两种形态的表情素材、外壳和结构设计都不同,**先定形态再动结构**。
|
||||
|
||||
### 同期优先核价:音频套件
|
||||
|
||||
@@ -126,19 +181,34 @@ P2的30分钟/2小时测试仅是初步门槛,不能证明长期稳定。阶
|
||||
|
||||
## 5. 音频与陪伴行为
|
||||
|
||||
### 本地STT/TTS优先方案
|
||||
### 语音方案(v2.4 已实测定稿)
|
||||
|
||||
STT是语音转文字,TTS是文字转语音,都不要求云API。N5095负责本地推理,DeepSeek负责理解和生成回复;Pipecat编排这些组件,不要求每个组件都上云。
|
||||
STT是语音转文字,TTS是文字转语音。**v2.4 起语音推理全部在服务器**,
|
||||
N5095 只做音频进出——实测证明 N5095 跑不动可用的语音模型,见 `P0-语音基准报告.md`。
|
||||
|
||||
| 模块 | 首选试验 | 备选与限制 |
|
||||
| 模块 | 采用方案 | 实测 | 备选与限制 |
|
||||
|---|---|---|---|
|
||||
| VAD | 本地轻量VAD | — | 单独处理唤醒和说完判断 |
|
||||
| 唤醒 | sherpa-onnx中文关键词检测作为候选 | — | 单独模型/词表,用户确定称呼后调阈值;普通STT不会自动等于唤醒引擎 |
|
||||
| STT | **Zipformer 中英双语 int8**(服务器 CPU 4线程) | RTF 0.03 | **仍是 2023 年模型,中文识别率从未测过**(无参考文本)。候选:SenseVoice / faster-whisper large-v3,已下载未测 |
|
||||
| TTS | **Qwen3-TTS 1.7B-CustomVoice**(服务器 3090,独立 HTTP 服务) | RTF 0.55–0.94 | 音色 Serena + 指令"用轻快活泼的语气说"(用户试听选定)。备选:vits-zh-ll(RTF 0.09 但音色不满意)、CosyVoice 2/3(未测) |
|
||||
| LLM | **DeepSeek `deepseek-flash`**(云端,关思考) | 首 token 0.8–1.2s | 本机 Qwen3.8-27B 的 vLLM 已停用——GPU 让给 TTS。可改 `AI_LLM_PRIMARY=local` 切回,但切回后 GPU 不够跑 Qwen3-TTS |
|
||||
|
||||
[sherpa-onnx官方功能](https://k2-fsa.github.io/sherpa/intro.html)、[SenseVoice模型说明](https://k2-fsa.github.io/sherpa/onnx/sense-voice/pretrained.html)、[中文VITS模型](https://k2-fsa.github.io/sherpa/onnx/tts/pretrained_models/vits.html)。以上说明模型/运行时支持,不构成性能保证。
|
||||
|
||||
**音质与延迟的取舍(v2.4 的核心权衡)**:同一台服务器上
|
||||
|
||||
| 配置 | 首音延迟 | 音质 |
|
||||
|---|---|---|
|
||||
| VAD | 本地轻量VAD | 单独处理唤醒和说完判断 |
|
||||
| 唤醒 | sherpa-onnx中文关键词检测作为候选 | 单独模型/词表,用户确定称呼后调阈值;普通STT不会自动等于唤醒引擎 |
|
||||
| STT | sherpa-onnx中文流式Zipformer模型 | 比较量化SenseVoiceSmall+VAD分段;后者不是原生流式识别,不混淆分段处理与流式中间结果 |
|
||||
| TTS | sherpa-onnx中文VITS,例如aishell3 | 对比中文Piper/Melo模型的速度和听感;先固定音色,不做克隆 |
|
||||
| LLM | DeepSeek V4.1 Flash API | 本地语音不等于整个助手离线:智能回复仍依赖网络 |
|
||||
| 本地 Qwen3.8-27B + vits-zh-ll | **179 ms** | 用户不满意 |
|
||||
| DeepSeek + Qwen3-TTS | **1545 ms** | 用户试听选定 |
|
||||
|
||||
[sherpa-onnx官方功能](https://k2-fsa.github.io/sherpa/intro.html)、[SenseVoice模型说明](https://k2-fsa.github.io/sherpa/onnx/sense-voice/pretrained.html)、[中文VITS模型](https://k2-fsa.github.io/sherpa/onnx/tts/pretrained_models/vits.html)。以上说明模型/运行时支持,不构成N5095性能保证。
|
||||
用约 1.4 秒的首音延迟换音质。这个取舍是可逆的(改配置即可),
|
||||
但**在 24GB 显存下两者不可兼得**。后续若装成 flash-attn 或实现真流式,
|
||||
延迟可望收回一部分——详见 `P0-Qwen3TTS报告.md`。
|
||||
|
||||
P0测试10~20条不同长度中文,覆盖数字、日期、中英混读。记录STT识别错误、语音结束后等待时间、TTS首段耗时和RTF(生成/处理耗时除以音频时长,低于1表示平均快于实时)。音频与视觉并发时重测,限制推理线程和视觉帧率,避免CPU争抢。
|
||||
**v2.4 补充:STT 与 TTS 的线程配置必须分别调**——实测两者线程扩展方向相反。
|
||||
|
||||
P0测试10~20条不同长度中文,覆盖数字、日期、中英混读。记录STT识别错误、语音结束后等待时间、TTS首段耗时和RTF(生成/处理耗时除以音频时长,低于1表示平均快于实时)。音频与视觉并发时重测,限制推理线程和视觉帧率,避免CPU争抢。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user