从 Obsidian 笔记库剥离为独立仓库。规划文档与 P0 报告留在笔记库, 代码(助手本体、TTS 服务、P0 基准脚本、ESP32 固件)在此。 架构:服务器是助手,本地是客户端 - 助手本体跑在 cadadmin-server,N5095 只做 USB 外设桥与网络桥接 - 起因:实测 N5095 无 AVX2,跑不动可用的语音模型 当前技术栈 - LLM:DeepSeek deepseek-flash(云端,必须关思考) - TTS:Qwen3-TTS 1.7B(服务器 3090,独立 HTTP 服务) - STT:Zipformer 中英双语 int8(CPU,中文识别率未测) 实测:端到端 16/16 通过,首音延迟 1545ms (对比:本地 LLM + vits-zh-ll 是 179ms,但音色不满意——音质与延迟 在此硬件上此消彼长) 设计要点 - MemoryStore 接口按"可能远程"设计(全 async、可超时、可失败) - user_id / session_id / track_id 三者分开,人脸只作候选不自动切身份 - 记忆查询强制带 owner_user_id,无按 id 单独取的口子 - 自动抽取的记忆是"候选",默认不参与检索 - 异步写记忆绑定创建时的身份,不读"当前用户" - 引擎与传输解耦,只用文件音频即可端到端测试 模型与音频产物不进版本管理(1.1GB),由 download_models.sh 恢复
86 lines
1.4 KiB
JSON
86 lines
1.4 KiB
JSON
{
|
|
"vits-zh-ll": {
|
|
"desc": "VITS 中文,115MB",
|
|
"rows": [
|
|
[
|
|
"短句",
|
|
1023.8842699995985,
|
|
0.44725,
|
|
2.289288474006928,
|
|
1
|
|
],
|
|
[
|
|
"中句",
|
|
2747.543926000162,
|
|
1.648,
|
|
1.6671989842233994,
|
|
1
|
|
],
|
|
[
|
|
"长句",
|
|
1709.2012230000364,
|
|
1.024,
|
|
1.669141819335973,
|
|
1
|
|
],
|
|
[
|
|
"数字",
|
|
3316.832393000368,
|
|
1.81275,
|
|
1.8297241169495893,
|
|
1
|
|
]
|
|
],
|
|
"rtf_avg": 1.8638383486289725,
|
|
"rtf_max": 2.289288474006928,
|
|
"gaps": [
|
|
2.0050806700000976,
|
|
1.562527183999915,
|
|
0.4825053690001191,
|
|
2.856295740000048,
|
|
3.7974527159998246
|
|
]
|
|
},
|
|
"piper-huayan-x_low": {
|
|
"desc": "Piper 中文,20MB",
|
|
"rows": [
|
|
[
|
|
"短句",
|
|
188.33520399994086,
|
|
1.104,
|
|
0.1705934818840044,
|
|
1
|
|
],
|
|
[
|
|
"中句",
|
|
584.8148079999191,
|
|
3.408,
|
|
0.17160058920185423,
|
|
1
|
|
],
|
|
[
|
|
"长句",
|
|
670.672593999825,
|
|
3.872,
|
|
0.17321089721069863,
|
|
1
|
|
],
|
|
[
|
|
"数字",
|
|
647.2685590001674,
|
|
3.776,
|
|
0.17141646159962062,
|
|
1
|
|
]
|
|
],
|
|
"rtf_avg": 0.17170535747404447,
|
|
"rtf_max": 0.17321089721069863,
|
|
"gaps": [
|
|
0.4739460710002277,
|
|
0.0,
|
|
0.0,
|
|
0.0,
|
|
0.0
|
|
]
|
|
}
|
|
} |