inoryQwQ commited on
Commit
5aa8bed
·
verified ·
1 Parent(s): 859dd7c

docs: README 更新(除 PNCA 解码外全 NPU,RTF 0.32)

Browse files
Files changed (1) hide show
  1. README.md +27 -23
README.md CHANGED
@@ -1,35 +1,32 @@
1
- ---
2
- license: mit
3
- pipeline_tag: other
4
- tags:
5
- - axmodel
6
- - axera
7
- - KAN-TTS
8
- ---
9
  # KAN-TTS · AX650 交付包(C++ SDK)
10
 
11
  将 [modelscope/KAN-TTS](https://github.com/modelscope/KAN-TTS)(SamBERT + HiFi-GAN,中文 16k,发音人 zhitian_emo)部署到 AX650(NPU3)的 C++ 推理包。
12
 
13
- ## 架构(混合部署
14
 
15
  | 模块 | 位置 | 说明 |
16
  |------|------|------|
17
  | 前端(文本→符号) | 主机 x86 | ttsfrd,产出 symbols.txt |
18
  | AM 编码器 enc | 板端 NPU | am_enc.axmodel(U16 PTQ) |
19
  | 前端 embedding/位置编码 | 板端 CPU | 查表生成 x_emb/attn_mask/mask_f |
20
- | 韵律/时长/PNCA 解码/Postnet | 板端 CPU | 自研 C++(float32) |
 
 
 
21
  | 声码器 voc | 板端 NPU | voc.axmodel(INT8) |
22
 
23
- > enc 曾尝试 INT8/SmoothQuant(text_hid cosine 0.99)与 QAT(0.9996,但 Pulsar2
24
- > QuantONNX 导出有工具链缺陷无法编译。最终采用剥离 embedding/mask 后的纯
25
- > transformer + U16 PTQ(text_hid cosine 0.9901),实际听感自然(RTF 0.58)。
 
 
26
  > 句末自动拼接 0.3s 静音,避免尾音听不清。
27
 
28
  ## 目录
29
 
30
  ```
31
  kantts-tts-ax650/
32
- model/ am_enc.axmodel + voc.axmodel + host_weights/ + resource/ + am_config.yaml
33
  sdk/ C++ 源码 + axrt 库(ax_engine/ax_sys)+ build.sh
34
  sdk/tools/ text_to_symbols.py(主机 x86,ttsfrd)
35
  example/
@@ -57,7 +54,11 @@ kantts-tts-ax650/
57
  LD_LIBRARY_PATH=/soc/lib ./sdk/kantts_tts model model/resource symbols.txt out.wav
58
  ```
59
 
60
- 示例输出`输出 out.wav(1.57s 音频合成 1.09s,RTF=0.69)`
 
 
 
 
61
 
62
  ## 板端依赖
63
 
@@ -68,13 +69,15 @@ kantts-tts-ax650/
68
 
69
  (测试文本:"北京今天天气怎么样")
70
 
71
- | 阶段 | 指标 |
72
  |------|------|
73
- | ling 编码 | 与官方 ttsfrd 逐项一致T=22) |
74
- | enc text_hid | cosine 1.0(CPU FP32) |
75
- | durations / memory | 与官方一致(M=42,lr_len=126) |
76
- | dec / postnet mel | cosine 1.0 / rms 0.8041=0.8139 |
77
- | 最终 wav | cosine 0.973 / 频谱 0.996(voc INT8) |
 
 
78
 
79
  ## 示例音频
80
 
@@ -85,6 +88,7 @@ kantts-tts-ax650/
85
  ## 已知限制
86
 
87
  - 前端(文本→符号)依赖主机 ttsfrd,不在板端运行;embedding/位置编码查表在板端 CPU
88
- - enc U16 PTQtext_hid cosine 0.9901、voc INT8(0.973 cosine);
89
- 如需更高精度可走 QAT(见 qat/ 目录,待 Pulsar2 修复 QuantONNX 导出
 
90
  - 句末自动拼接 0.3s 静音(16k)
 
 
 
 
 
 
 
 
 
1
  # KAN-TTS · AX650 交付包(C++ SDK)
2
 
3
  将 [modelscope/KAN-TTS](https://github.com/modelscope/KAN-TTS)(SamBERT + HiFi-GAN,中文 16k,发音人 zhitian_emo)部署到 AX650(NPU3)的 C++ 推理包。
4
 
5
+ ## 架构(除 PNCA 解码外全 NPU
6
 
7
  | 模块 | 位置 | 说明 |
8
  |------|------|------|
9
  | 前端(文本→符号) | 主机 x86 | ttsfrd,产出 symbols.txt |
10
  | AM 编码器 enc | 板端 NPU | am_enc.axmodel(U16 PTQ) |
11
  | 前端 embedding/位置编码 | 板端 CPU | 查表生成 x_emb/attn_mask/mask_f |
12
+ | 韵律 pitch/energy | 板端 NPU | pitch_energy.axmodel |
13
+ | 时长 duration | 板端 NPU | duration.axmodel |
14
+ | PNCA 解码 | 板端 CPU | 自研 C++(float32,保持精度) |
15
+ | Postnet | 板端 NPU | postnet.axmodel |
16
  | 声码器 voc | 板端 NPU | voc.axmodel(INT8) |
17
 
18
+ > am_dec(PNCA 自回归解码)曾尝试 PTQ 与 QAT 上 NPU:PTQ AR 循环精度不稳定;
19
+ > QAT(S16 对称 + 闭环序列训练单步 dec_out cosine 0.979,但 kv 状态误差在
20
+ > 42 AR 循环中累积,闭环 mel 达不到可交付听感,故解码保持 CPU(float32)。
21
+ > 其余模块(pitch/energy/duration/postnet)NPU 化已板端验证无质量退化
22
+ > (对齐后 mel cosine 0.98,RTF 0.32)。
23
  > 句末自动拼接 0.3s 静音,避免尾音听不清。
24
 
25
  ## 目录
26
 
27
  ```
28
  kantts-tts-ax650/
29
+ model/ am_enc/pitch_energy/duration/postnet/voc .axmodel + host_weights/ + resource/ + am_config.yaml
30
  sdk/ C++ 源码 + axrt 库(ax_engine/ax_sys)+ build.sh
31
  sdk/tools/ text_to_symbols.py(主机 x86,ttsfrd)
32
  example/
 
54
  LD_LIBRARY_PATH=/soc/lib ./sdk/kantts_tts model model/resource symbols.txt out.wav
55
  ```
56
 
57
+ 默认配置enc/韵律/时长/postnet/voc NPUPNCA 解码走 CPU。
58
+ 示例输出:`输出 out.wav(1.84s 音频,合成 0.58s,RTF=0.32)`
59
+
60
+ 环境变量开关(实验):
61
+ - `KANTTS_NPU_DEC=1`:PNCA 解码也走 NPU(需自备 am_dec.axmodel,QAT 实验产物,精度未达交付标准)
62
 
63
  ## 板端依赖
64
 
 
69
 
70
  (测试文本:"北京今天天气怎么样")
71
 
72
+ | 模块 | 板端对分 |
73
  |------|------|
74
+ | enc text_hid | cosine 0.9901U16 PTQ,听感自然) |
75
+ | pitch / energy | cosine 0.996 / 0.962 |
76
+ | log_dur | cosine 0.9999 |
77
+ | postnet mel | cosine 0.993 |
78
+ | 整链 mel(CPU vs NPU 预测器,DTW 对齐) | cosine 0.982 |
79
+ | voc(INT8) | wav cosine 0.973 |
80
+ | RTF | 0.32(解码 CPU,其余 NPU) |
81
 
82
  ## 示例音频
83
 
 
88
  ## 已知限制
89
 
90
  - 前端(文本→符号)依赖主机 ttsfrd,不在板端运行;embedding/位置编码查表在板端 CPU
91
+ - PNCA 解码在 CPUfloat32,其余全 NPU;RTF 0.32
92
+ - 时长 NPU 化后个别音节帧数可能与 CPU 参考差 1(取整敏感,听感为节奏微差、内容一致
93
+ - enc 为 U16 PTQ、voc 为 INT8;如需更高精度可走 QAT(见 qat/ 目录)
94
  - 句末自动拼接 0.3s 静音(16k)