PocketTTS-ZH-6L(R21)中文语音克隆模型

中文语音合成(TTS)模型,支持语音克隆与数字/中英混读,CPU 优先设计,权重原生 int8 量化。

基于 Kyutai Pocket TTS 架构:6 层 FlowLM(d_model 1024)+ Mimi 神经音频编解码器(24 kHz),端到端流式推理。本版本(R21)相对上一代的核心变化:

  • 原生 int8 交付:FlowLM 注意力与 FFN 权重已离线量化打包,无需运行时转换,体积 223 MB,CPU 速度提升约 1 倍
  • 9174 token 词表:官方英文 BPE-4000 基底 + 追加单字汉字/全角标点,byte_fallback 兜底生僻字符
  • 内置文本规范化(TN):阿拉伯数字、金额、日期、订单号自动转中文读法(368.5三百六十八点五,16 位订单号逐位读出)
  • 中英混读:APP、VIP、5G、WiFi 等英文术语按中文习惯读法

English summary: A Mandarin Chinese TTS model with voice cloning, built on the Pocket TTS architecture (6-layer flow transformer + Mimi codec). Weights ship pre-quantized int8 (223 MB, no runtime conversion needed): 0.18× real-time single-threaded on an i7-12700KF (≈5.5× faster than real-time audio production), 0.16× with 4 threads. Built-in text normalization reads Arabic digits, amounts, dates and order numbers in Mandarin (digit-by-digit for serial numbers). 9174-token SentencePiece vocabulary. Intended for customer-service dialogue and short-form Mandarin speech. See Performance and Limitations below.

快速开始

pip install pocket-tts soundfile wetext
cd <本目录>
python demo.py --prompt your_voice.wav --text "您的订单编号是20260918123456,退款368.5元预计三个工作日内到账。" --out out.wav
  • TN 默认开启:数字、金额、日期、订单号自动转中文读法;--no-tn 可关闭
  • 模型为预量化 int8 权重(model_int8.pt),加载即用,无需 quantize=True

或有界面演示(需 pip install gradio):

python demo.py --gradio

界面中可看到 TN 规范化后的文本,并可选关闭 TN。

Python API:

import sys
sys.path.insert(0, "<本目录>")
from demo import load  # int8 加载 + TN
from tn import normalize_tn

model = load()
state = model.get_state_for_audio_prompt("your_voice.wav")  # 3~10 秒干净普通话
text = normalize_tn("您的订单编号是20260918123456")  # TN 显式调用(可选,demo.synthesize 默认已含)
audio = model.generate_audio(state, text)
  • 参考音频:3~10 秒、干净、单说话人普通话,效果最佳
  • 采样温度 temp=0.3(默认);文本越长对参考音频质量越敏感

性能

文本准确性用 whisper-small 对合成音频转写后计算字错误率(CER),每个场景 10 次独立采样取均值,生产配置(单步采样)数值越低越好。

主指标:客服业务长句(52 字),语音克隆(客服参考音色)

指标 CER (n=10)
客服长句(主指标) 8.1%(上一代 13.65%)
数字订单句(16 位订单号 + 金额) 0%(ASR 逐字核对通过)
中英混读句(APP/VIP/官网) ASR 全对

分文本长度(客服参考音色,n=10)

文本 CER (n=10)
短句未见(9 字) 17.1%
中句未见(15 字) 6.2%
长句未见(31 字) 6.4%

速度与资源(int8 权重)

测试环境:Intel i7-12700KF,生成 52 字客服长句(约 8.5 秒音频),每档 3 次取均值。

项目 数值
CPU 推理速度(单线程,库默认) 0.18× 实时(生成 1 秒音频约需 0.18 秒)
CPU 推理速度(2 线程) 0.17× 实时
CPU 推理速度(4 线程) 0.16× 实时
权重文件 223 MB(model_int8.pt,FlowLM int8 + Mimi fp32)
FlowLM 参数量 约 89M(注意力 + FFN 已 int8)
采样率 24 kHz

示例音频

参考音频:客服目标音色(kefu_long / digits_order / codeswitch / short_unseen)与 AISHELL-3 说话人 A/B(speakerA_long / speakerB_long,仅用于演示音色克隆,不在交付范围内)。均由交付的 int8 模型 + TN 默认配置生成。

场景 文本 试听
客服长句 您好,非常抱歉给您带来了不好的使用体验,麻烦您先提供一下订单编号,我这边马上帮您查询订单信息和售后政策。
数字订单 您的订单编号是20260918123456,退款368.5元预计三个工作日内到账。
中英混读 请打开APP查看您的VIP会员状态,或者登录官网查询订单详情。
短句 今天天气很好,适合外出散步。
说话人 A 请问您反映的问题我们已经记录下来,稍后会有专员与您联系,请保持电话畅通。
说话人 B 人工智能正在改变我们的生活方式。

输入文本说明

  • TN 默认开启(推荐):阿拉伯数字、金额、日期、电话、订单号/运单号/航班号自动转中文口语读法;订单号类编号逐位读出(如 20260918123456二零二六零九一八一二三四五六)
  • 关闭 TN(--no-tn)时,请自行使用中文数字写法;词表虽有数字 token,但训练数据全部经过 TN,关闭后数字读法不受控
  • 网址(URL)、邮箱等复合符号朗读不稳定,建议预处理或避免
  • 纯英文句子不受支持(可能输出静音),中英混读仅限常见术语词汇

局限性与已知问题

  • 极短句 + 语音克隆可能不稳定:约 9 字且无标点的文本,在嘈杂/电话信道参考音频下可能输出静音或复述参考音频内容(建议参考此类文本时实测);demo 已内置静音检测自动换 seed 重试
  • 未见说话人泛化有限:对全新音色克隆长业务句 CER 明显高于已适应音色,建议参考音频清晰、时长 5 秒以上
  • 必须提供参考音频(语音克隆是本模型的设计形态);无参考音频的直接合成质量不可用
  • 方言、外语、唱歌不适用;情绪化/高表现力朗读能力有限
  • 音色相似度未做定量评测,建议实际试听

伦理与使用限制

  • 本模型仅用于已获得合法授权的语音合成。未经声音主体明确同意,禁止克隆其声音
  • 禁止用于冒充、欺诈、制造虚假信息或任何违法用途
  • 合成内容应明确标识为 AI 生成

文件清单

文件 说明
model_int8.pt 预量化 int8 权重(FlowLM int8 + Mimi fp32),223 MB
config.yaml 模型架构配置(自包含,不含权重路径依赖)
tokenizer.model SentencePiece 分词器(9174 词,含 byte_fallback)
tn.py 文本规范化(TN)模块,wetext + 业务规则
demo.py 推理演示(int8 加载 + TN,CLI + Gradio)
samples/ 示例音频(见上表)
README.md 本文件
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support