Repository navigation
Releases
MOSS-TTS CPU v0.1.1
MOSS-TTS CPU v0.1.1
修掉 v0.1.0 里"音频播到一半开始卡、没播完就结束、末尾一截听不到"的播放缺陷,
并加上"边播边算"(限速生成)选项。
修复:播放端丢音频
v0.1.0 的主线程把收到的 PCM 一块接一块直接 postMessage 给音频线程。推理约 7 倍实时,
一段 9.3 s 的语音 1.2 s 就算完了,音频线程 4 s 的环形缓冲被灌满,多出来的部分直接丢弃。
用真实的 pcm-worklet.js + 真实的 HTTP 流做无浏览器重放,问题可复现:
| 逻辑 | 实际播放 | 丢样 |
|---|---|---|
| v0.1.0(来一块推一块) | 5.19 s / 9.28 s | 4.09 s |
| v0.1.1(信用窗口) | 9.28 s / 9.28 s | 0 |
现在主线程最多领先播放位置 2.5 s,缓冲满了就不读 socket(HTTP 背压会让服务端也慢下来),
另加"流结束把不足 128 帧的尾巴也播完"。回归脚本 tools/playback_sim.mjs
逐样点比对输出与输入,已并入发布门禁。
新增:边播边算(pace)
网页上多了一个勾选项,默认开启:
只比播放位置快 1.5 秒生成,CPU 平时只忙 15% 左右,风扇不会突然狂转。
关掉则一次算完(适合短句或急着要文件)。
接口层是 POST /api/v1/tts/stream 的新字段 pace(秒,0 = 不限速,默认 0)。
GET /api/v1/jobs/{id} 新增 wall_ms(墙钟);compute_ms 现在只算模型真正干活的时间,
限速等待和阻塞发送都被扣掉,所以 RTF 仍然是模型速度,不会被限速算法污染。
实测(16 帧 = 1.28 s 音频,pace=1.0):墙钟 0.53 s,compute 0.27 s。
取消在限速模式下仍然 30 ms 内响应。
同版本内的其他变化
- 页面上显示"墙钟"和"丢样/欠载"计数,异常时一眼能看出来。
- 发布门禁多了两步:
pace实测、播放重放(tools/playback_sim.mjs)。
包内容
不变:MossTTS-win-x64-full.zip(~159 MB,含权重与 18 个音色)、-lite.zip、MossTTS-sdk.zip、
sha256sums.txt。
v0.1.0
MOSS-TTS CPU v0.1.0
第一个可以直接给非技术用户使用的版本:下载、解压、双击,浏览器里就能合成语音。
全部在本机 CPU 上跑,不联网、不上传文本,和未来的 DeepSeek Harness 插件共用同一个二进制。
亮点
- 流式出声:首块 75~130 ms,边生成边播放(浏览器用 AudioWorklet 无缝排播)。
- 音色克隆:给一段 5~15 秒 WAV,本地编码成几 KB 的
.mossclone,之后随时复现。 - 零依赖:静态链接,只依赖 Windows 自带 DLL;不需要 VC++ 运行库、Python、ONNX。
- 一套推理:
moss_tts.exe同时是 CLI、本地服务(--serve)和 SDK 的引擎;HTTP 与命令行输出的
原始 PCM 逐字节相同。
包内容
| 文件 | 说明 |
|---|---|
MossTTS-win-x64-full.zip(~159 MB) |
程序 + 权重 + 18 个内置音色,解压即用 |
MossTTS-win-x64-lite.zip(~1 MB) |
只有程序与网页,权重另取(插件/开发者) |
MossTTS-sdk.zip(~1 MB) |
tts.h + moss_tts.lib + API 文档 |
sha256sums.txt 是三个包的校验和。
开始
- 解压到任意目录(例如
D:\MossTTS)。 - 双击
moss_tts.exe(不带参数 = 起本地服务并自动打开http://127.0.0.1:8759/)。 - 输入文字,Ctrl+Enter。
首次运行 Windows 可能提示"已保护你的电脑"(未购买代码签名证书):更多信息 → 仍要运行。
接口
GET /api/v1/{health,info,voices}、POST /api/v1/tts/stream(chunked s16le 48k 立体声)、
POST /api/v1/tts/wav、POST /api/v1/voices/clone?name=、GET /api/v1/jobs/{id}、
POST /api/v1/jobs/{id}/cancel。细节见 doc/api.md。
已知限制
- 只支持 Windows x64;没买代码签名,首次运行会有 SmartScreen 提示。
- 只监听
127.0.0.1,默认不允许网页跨源直连(门户页只负责下载/跳转)。 - 无 AVX2 的老 CPU 会自动降级到标量路径,约慢 2.6 倍。
- Safari / 移动端浏览器打不开本地试听台(loopback 的混合内容豁免在 Safari 上不成立)。
- 模型偶尔会在句尾低声"自言自语";
/api/v1/tts/wav支持trim:true裁掉。