百度PaddleSpeech模型适配迁移到昇腾910B(A2),适用于采用conformer架构的7个ASR模型。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 30 天前 | ||
| 30 天前 |
1. PaddleSpeech-ASR模型介绍
模型介绍:https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/asr/PPASR_cn.md
PaddleSpeech是百度开源的基于PaddlePaddle框架的工业级语音工具包,包含语音识别(ASR)、语音合成(TTS)、声音分类等模块。
ASR语音识别的基本流程如下图所示:

PaddleSpeech ASR 模块包含多种架构,最具代表性的是Conformer 和DeepSpeech2 ,如下所示:
| 模型架构 | 核心特点 |
|---|---|
| Conformer | PaddleSpeech 主推的生产级模型,基于 U2/U2++ 统一框架,结合自注意力与卷积模块,准确率高,支持流式与非流式推理 (本次完成迁移) |
| DeepSpeech2 | 经典的"卷积 + RNN"架构,是 PaddleSpeech 早期主力模型(本次未涉及) |
迁移模型列表
由于 Conformer 是 PaddleSpeech 官方主推的一组生产级模型,能够覆盖 PaddleSpeech ASR 的主要使用场景。根据训练数据和应用场景,Conformer有以下 7 个模型,本次都完成昇腾迁移和验证:
| 模型 | 训练数据 | 推理模式 | 应用场景 |
|---|---|---|---|
conformer_aishell |
AIShell(150h) | 离线 | 中文静音/短音频离线转写,适合对准确率要求高、不要求实时的场景,如会议录音转文字 |
conformer_online_aishell |
AIShell(150h) | 流式 | 中文实时语音转写,适合语音输入法、实时字幕等低延迟场景 |
conformer_wenetspeech |
WenetSpeech(10000h) | 离线 | 大数据量训练,泛化能力更强,适合多种中文口音和领域的离线转写场景 |
conformer_online_wenetspeech |
WenetSpeech | 流式 | 大数据量训练的流式版本,适合对泛化和实时性均有要求的场景,如直播字幕 |
conformer_u2pp_online_wenetspeech |
WenetSpeech | 流式(U2++) | U2++ 双向 chunk 增强,流式精度更高,适合对准确率要求较高的流式生产场景 |
conformer_online_multicn |
多中文数据集 | 流式 | 多数据集混合训练,覆盖面广,适合通用中文实时识别场景 |
conformer_talcs |
TALCS(中英夹杂,587h) | 离线 | 中英夹杂语音识别,适合口语中频繁中英混说的场景,如"我觉得这个 app 不错" |
2. 模型迁移
2.1 容器环境信息
| 项目 | 内容 |
|---|---|
| NPU 型号 | 910B(A2) |
| 固件版本 | 7.8.0.7.220 |
| 驱动版本 | 25.5.2 |
| CANN 版本 | 8.1.RC1 |
| OS | Ubuntu 22.04.5 LTS |
| 内核 | Linux 5.10.0-153.56.0.134.oe2203sp2.aarch64 aarch64 |
| Python | 3.10.17(python3) |
| PaddlePaddle | 3.0.0 |
| paddle-custom-npu | 3.0.0 |
| PaddleSpeech | 1.5.0 |
2.2下载镜像
从ModelScope下载镜像,将下面命令中的<下载目录>替换为实际使用的工程目录
# 1、安装魔塔
pip install -U modelscope
# 2、下载镜像
TORCH_DEVICE_BACKEND_AUTOLOAD=0 modelscope download Composite/PaddleSpeech_a2 --include paddlespeech_a2.tar.gz --local_dir <下载目录>
# 3、恢复镜像
cd <下载目录>
docker load -i paddlespeech_a2.tar.gz
执行完成后通过docker images确认镜像拉取成功
REPOSITORY TAG IMAGE ID CREATED SIZE
paddlespeech-asr_with_ckpt v1.0.1 9d90035ab183 4 months ago 45.6GB
2.3 下载测试脚本
clone本工程
mkdir -p <工程目录>
git clone https://gitcode.com/Ascend-SACT/PaddleSpeech-ASR-910B.git <工程目录>
2.4 下载测试数据
运行download_dataset.sh下载数据脚本,从 https://modelscope.cn/datasets/speech_asr/speech_asr_aishell1_trainsets 下载aishell1测试数据集和元数据
cd <工程目录>
bash download_dataset.sh
下载单条测试音频,方便通过命令行快速测试
cd test-data
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav
2.5. 创建容器
请注意修改下面<工程目录>内容为自己的工作目录
#创建容器
docker run -itd \
--name paddlespeech_env \
--privileged --network=host --shm-size=256G -w=/home/projects \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/dcmi:/usr/local/dcmi \
-e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" \
-v <工程目录>:/home/projects \
paddlespeech-asr_with_ckpt:v1.0.1 \
/bin/bash
#进入容器
docker exec -it paddlespeech_env /bin/bash
2.6 PP框架功能验证
python -c "import paddle; paddle.utils.run_check()"
预期输出结果如下(略掉前面过程信息,只保留最后两行),表示PaddlePaddle框架安装成功
PaddlePaddle works well on 8 npus.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
2.7 模型权重下载
模型权重存放目录在容器内的~/.paddlespeech/models目录,权重不需要单独下载,在3.2或3.3节中执行语音识别指令时会自动下载,配置了哪个模型,就会自动下载哪个模型的权重。
3. ASR功能验证
3.1. 工程目录说明

3.2. Paddle原生测试命令
#可更换模型
# conformer_wenetspeech,conformer_online_wenetspeech,conformer_u2pp_online_wenetspeech,conformer_online_multicn,conformer_aishell,
# conformer_online_aishell
#命令行
paddlespeech asr \
--input test-data/zh.wav \
--model conformer_wenetspeech \
--lang zh \
--device npu:0
预计输出结果如下:
我认为跑步最重要的就是给我带来了身体健康
3.3. 集成测试脚本
bash run_infer.sh
脚本可配置参数如下:
--device npu:2 \
--model_type ${MODEL} \
--test_num 10 \
--warmup_num 5 \
1000条aishell的语音文件测试结果参考:
========================================
测试设备: 910B3
测试卡: npu:2
模型: conformer_aishell
字错率 (CER): 1.50 %
实时率 (RTF): 0.2305
处理速度: 4.34 倍速 (X)
========================================