File size: 4,786 Bytes
0c723b3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31a2198
 
 
24a6fa0
31a2198
 
 
 
 
 
 
24a6fa0
 
40b388f
 
 
 
 
 
 
 
0c723b3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
---
license: apache-2.0
language:
- zh
tags:
- text-to-speech
- tts
- chinese
- axera
- axmodel
- onnx
pipeline_tag: text-to-speech
---

# Inflect-Micro-v2-zh

从零训练的中文 TTS:基于 [Inflect-Micro-v2](https://huggingface.co/owensong/Inflect-Micro-v2)
架构(Apache-2.0)+ [NVIDIA BigVGAN](https://github.com/NVIDIA/BigVGAN) 声码器(MIT)。
声学模型 6.7M 参数(text→100-band mel),可在 **AX650 系列 NPU** 上实时部署
(CPU + NPU 混合架构,RTF 0.15-0.19)。

## 示例音频(AX650 板上 C++ SDK 实跑)

以下音频由交付的 **C++ SDK** 在 AX650 板端到端生成(acoustic ONNX 于 CPU +
BigVGAN axmodel 于 NPU int8,女声 v2:mel-GAN + length_scale=1.0 + noise=0),可直接试听:

<audio controls src="audio/demo_female_casual.wav"></audio> 女声 · 日常口语:“今天中午我想吃一碗牛肉面。”

<audio controls src="audio/demo_female_news.wav"></audio> 女声 · 新闻播报:“中国人民银行决定下调存款准备金率。”

<audio controls src="audio/demo_male.wav"></audio> 男声 · 日常口语:“请问最近的医院在哪里。”

<audio controls src="audio/demo_female_tianqi.wav"></audio> 女声 · 送气音示例:“天气允许的话”

## 长文本示例(Python SDK 自动分句,AX650 板上实跑,约 22s)

<audio controls src="audio/demo_female_long.wav"></audio> 女声 · 长文本:央行降准新闻 + 北京简介

<audio controls src="audio/demo_male_long.wav"></audio> 男声 · 长文本:人工智能话题节目开场

> 长文本由 Python SDK `infer_board.py` 自动分句(≤250 tokens/句)后拼接,句间 0.2s 停顿。

## 文件说明

```
models/
├── acoustic_female.onnx (+ .data)   # 女声 文本→mel(CPU fp32,ls=0.7)
├── acoustic_male.onnx   (+ .data)   # 男声 文本→mel(CPU fp32,ls=0.85)
├── bigvgan_base.onnx    (+ .data)   # 声码器 mel→wav(CPU fp32,动态帧)
├── bigvgan_base.axmodel              # 声码器 mel→wav(AX650 NPU int8)
└── model_meta.json                   # 模型规格元数据
checkpoints/                          # 训练权重(PyTorch)
├── base300.pt                        # 基础模型(AiShell-3,20 说话人)
├── female_gan.pt                     # 女声(CosyVoice 音色 + GAN)
└── male_gan.pt                       # 男声(SSB0609 音色 + GAN)
python/                               # Python 推理 SDK
reports/                              # 验证报告(可懂度/性能/量化)
```

## 快速开始(Python,CPU)

```bash
pip install onnxruntime numpy soundfile pypinyin

python python/infer_onnx.py \
  --text "你好世界,今天天气真不错,适合出去散步。" \
  --acoustic models/acoustic_female.onnx \
  --vocoder models/bigvgan_base.onnx \
  --output out.wav
```

## 快速开始(AX650 板,CPU+NPU 混合)

板上安装 `onnxruntime``pypinyin``axengine`(AXERA 提供):

```bash
python python/infer_board.py \
  --text "人工智能技术正在改变我们的生活方式。" \
  --acoustic models/acoustic_female.onnx \
  --vocoder models/bigvgan_base.axmodel \
  --output out.wav
```

`infer_board.py` 自动完成:文本分句 → 声学模型(CPU)→ mel 后处理
(静音门限 + 句尾拉伸)→ 声码器(NPU)分块拼接。

## 性能(AX650N 实测)

| 组件 | 耗时 | 说明 |
|---|---|---|
| acoustic(CPU fp32) | 0.30s/句 | 静态 max_mel=1024(单句 ≤10.9s) |
| vocoder(NPU int8) | 0.30s/块 | 512 mel 帧 = 5.46s 音频 |
| 整链路 RTF | 0.15-0.19 | 约 6x 实时 |

## 可懂度(SenseVoice,8 句测试)

| 音色 | CER |
|---|---|
| 女声(CPU 全 fp32) | 0.075 |
| 男声(CPU 全 fp32) | 0.108 |

## 说明

- 声学模型必须 CPU fp32:VITS 的 flow/duration 对 NPU 8/16-bit 量化系统性敏感
  (int8/U16/BRecQ 全部验证失败);声码器 NPU int8 可用
- 长文本自动分句(≤250 tokens/句)+ 声码器分块拼接(重叠交叉淡化)
- 训练流程与复现脚本见 [GitHub 仓库](https://github.com/ml-inory/Inflect-Micro-v2-zh)

## 致谢

- [owensong/Inflect-Micro-v2](https://huggingface.co/owensong/Inflect-Micro-v2)(架构,Apache-2.0)
- [NVIDIA BigVGAN](https://github.com/NVIDIA/BigVGAN)(声码器,MIT)
- [FunAudioLLM/CosyVoice](https://github.com/FunAudioLLM/CosyVoice)(数据生成,Apache-2.0)
- [OpenSLR AISHELL-3](https://www.openslr.org/resources/93/)(中文语料)
- AXERA Pulsar2(AX 编译工具链)

完整第三方声明见 GitHub 仓库 `THIRD_PARTY_NOTICES.md`。

## License

[Apache-2.0](https://github.com/ml-inory/Inflect-Micro-v2-zh/blob/main/LICENSE)
(与原版 Inflect-Micro-v2 一致)