File size: 2,493 Bytes
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 | # 验证报告
## 可懂度(SenseVoice `iic/SenseVoiceSmall`,8 句固定测试)
测试句:
1. 你好世界,今天天气真不错,适合出去散步。
2. 机器服务员的生产厂家介绍说这款产品很好用。
3. 从八月九日十九时到八月十二日上午十时。
4. 中国人民银行决定下调存款准备金率。
5. 人工智能技术正在改变我们的生活方式。
6. 今天中午我想吃一碗牛肉面。
7. 北京是中国的首都,有着悠久的历史文化。
8. 请问最近的医院在哪里。
| 配置 | 女声 CER | 男声 CER |
|---|---|---|
| CPU 全 fp32(ONNX) | 0.075 | 0.108 |
注:日期句(#3)的系统性偏差为 SenseVoice itn 转写差异("上午十时"→"上午10"),
非语音错误。去掉该句后女声 CER 约 0.02。
## 性能(AX650N,10.126.35.115,Ubuntu 22.04)
| 输入 | acoustic(CPU) | vocoder(NPU) | 总耗时 | 有效音频 | RTF |
|---|---|---|---|---|---|
| 女声 21 字 | 0.32s | 0.32s | 0.65s | 4.04s | 0.161 |
| 男声 15 字 | 0.31s | 0.30s | 0.63s | 3.31s | 0.191 |
| 女声 19 字 | 0.30s | 0.30s | 0.62s | 4.11s | 0.151 |
| 长句(分块 526 帧) | 0.30s | 0.61s | 0.93s | 5.61s | 0.166 |
## NPU 量化验证结论
### 声学模型(text→mel):NPU 量化不可行
| 方案 | 结果 |
|---|---|
| int8(Percentile/BRecQ) | duration 偏差 13%、mel 渲染 CER~0.9 |
| U16(激活+权重) | 同上(duration 偏差 13%) |
| 混合精度 | Pulsar2 编译失败(AxLayerNorm tiling bug) |
| FP16/F32 | Pulsar2 7.0 不支持 |
根因:VITS 的 flow(仿射耦合)+ duration(对数尺度)对 8/16-bit 量化系统性敏感。
→ 声学模型必须 CPU fp32(AX650N 实测 0.30s/句)。
### 声码器(mel→wav):NPU int8 可用
- Pulsar2 7.0 编译,`onnx_opt.enable_onnxsim: true` 必须开启
(BigVGAN edge-pad 节点会导致 AxPad shape 错误)
- 对多数句子可懂(男声真机 CER 0.000);个别句子有轻微质量波动
- 板上 CPU fp32 vocoder 实测 >30s/句(rtf>5)不可用 → vocoder 必须 NPU
## 音质优化要点(训练/推理)
- 数据:CosyVoice 官方音色(女)生成 150 条/音色,比原始语料更干净
- 训练:声码器感知 GAN(mel→冻结 BigVGAN→MPD/MSD)+ 句尾采样 `tail_bias=0.4`
- 节奏:`length_scale` 女 0.7 / 男 0.85(音节时长贴近自然 180ms)
- 尾字:`tail_stretch()` 句尾 mel 20→45 帧拉伸(模型句尾音节 duration 偏短)
|