docs: README 更新(除 PNCA 解码外全 NPU,RTF 0.32)
Browse files
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 |
-
| 韵律
|
|
|
|
|
|
|
|
|
|
| 21 |
| 声码器 voc | 板端 NPU | voc.axmodel(INT8) |
|
| 22 |
|
| 23 |
-
>
|
| 24 |
-
>
|
| 25 |
-
>
|
|
|
|
|
|
|
| 26 |
> 句末自动拼接 0.3s 静音,避免尾音听不清。
|
| 27 |
|
| 28 |
## 目录
|
| 29 |
|
| 30 |
```
|
| 31 |
kantts-tts-ax650/
|
| 32 |
-
model/ am_enc
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
## 板端依赖
|
| 63 |
|
|
@@ -68,13 +69,15 @@ kantts-tts-ax650/
|
|
| 68 |
|
| 69 |
(测试文本:"北京今天天气怎么样")
|
| 70 |
|
| 71 |
-
|
|
| 72 |
|------|------|
|
| 73 |
-
|
|
| 74 |
-
|
|
| 75 |
-
|
|
| 76 |
-
|
|
| 77 |
-
|
|
|
|
|
|
|
|
| 78 |
|
| 79 |
## 示例音频
|
| 80 |
|
|
@@ -85,6 +88,7 @@ kantts-tts-ax650/
|
|
| 85 |
## 已知限制
|
| 86 |
|
| 87 |
- 前端(文本→符号)依赖主机 ttsfrd,不在板端运行;embedding/位置编码查表在板端 CPU
|
| 88 |
-
-
|
| 89 |
-
|
|
|
|
| 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 走 NPU,PNCA 解码走 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.9901(U16 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 解码在 CPU(float32),其余全 NPU;RTF 0.32
|
| 92 |
+
- 时长 NPU 化后个别音节帧数可能与 CPU 参考差 1(取整敏感),听感为节奏微差、内容一致
|
| 93 |
+
- enc 为 U16 PTQ、voc 为 INT8;如需更高精度可走 QAT(见 qat/ 目录)
|
| 94 |
- 句末自动拼接 0.3s 静音(16k)
|