Skip to content

Releases

MOSS-TTS CPU v0.1.1

Choose a tag to compare

@github-actions github-actions released this 08 Nov 05:16

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

Choose a tag to compare

@litterbit litterbit released this 05 Nov 14:43

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 是三个包的校验和。

开始

  1. 解压到任意目录(例如 D:\MossTTS)。
  2. 双击 moss_tts.exe(不带参数 = 起本地服务并自动打开 http://127.0.0.1:8759/)。
  3. 输入文字,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 裁掉。