昇腾300I npu 部署paddlespeech tts 实现文本转语音功能
本次任务使用了paddle-npu镜像启动容器,并在容器里部署paddlespeech
题外话:网上有在主机上直接安装paddlespeech适配npu的教程,但是我在安装的时候主机的gcc相关依赖没法满足(是本人技术没法满足与机子无关)再加上之前部署模型都是使用docker进行npu适配的,有点强迫症,所以我灵机一动决定尝试一下这种方法,但是我找不到相关的教程所以我也不太确定这算不算旁门左道,但是能跑就行哈哈哈,如有不足之处,恳请指正。
一、下载paddle-npu的docker镜像,这镜像有20多G,建议检查docker空间是否满足。
# 适用于 X86 架构
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann80RC2-ubuntu20-npu-base-x86_64-gcc84
# 适用于 Aarch64 架构
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann80RC2-ubuntu20-npu-base-aarch64-gcc84
昇腾 NPU 安装说明-使用文档-PaddlePaddle深度学习平台(这个镜像好像是python3.9的环境兼容性可能会好点,但是我没试过)
二、启动容器
第一种方法就是直接使用docker启动
docker run -it --name paddle-npu-dev -v $(pwd):/work \
--privileged --network=host --shm-size=128G -w=/work \
-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" \
ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann80RC2-ubuntu20-$(uname -m)-gcc84 /bin/bash
以下,是我使用的第二种方法,使用docker-compose 启动,如果使用第一种方法记得挂载目录。
1. 新建docker目录并在docker目录下新建docker-compose.yml文件和data目录
mkdir -p /path/to/your/docker/data
cd /path/to/your/docker
nano docker-compose.yml
2.,参考下面内容设置docker-compose启动的相关配置
version: '3.8'
services:
paddle-npu-dev:
image: paddle-npu:cann80RC2-ubuntu20-npu-base-aarch64-gcc84
container_name: paddle-npu-dev
command: /bin/bash
privileged: true
network_mode: host
shm_size: 128G
working_dir: /work
environment:
- ASCEND_RT_VISIBLE_DEVICES="4,5,6,7"
volumes:
- /path/to/your/docker/data:/work #这个是我新增的挂载目录
- /usr/local/Ascend/driver:/usr/local/Ascend/driver
- /usr/local/bin/npu-smi:/usr/local/bin/npu-smi
- /usr/local/dcmi:/usr/local/dcmi
tty: true
stdin_open: true
3.docker-compose 启动容器
cd /path/to/your/docker
#旧版本
docker-compose up -d
或
#新版本
docker compose up -d
4.拉取paddlespeech代码到挂载目录中
cd /path/to/your/docker/data
git clone https://github.com/PaddlePaddle/PaddleSpeech.git
三、进入容器
docker exec -it paddle-npu-dev /bin/bash
然后,检查容器环境的python版本,修改为python3.9
python --version
python3 --version
安装python3.9并设置默认版本,仅在docker容器里修改,主机环境慎重!!
add-apt-repository ppa:deadsnakes/ppa
apt update
apt install python3.9
#设置python版本优先级,数字越大优先级越高
update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
#设置优先级后还可手动切换,输入对应的Selection的值即可
update-alternatives --config python
https://www.sysgeek.cn/install-python-ubuntu/
验证python版本
python --version
python3 --version
正片开始,开始安装paddlespeech
PaddleSpeech适配昇腾开源验证任务心得-云社区-华为云
python -m pip install paddlepaddle==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
pip install sox swig -i https://mirrors.aliyun.com/pypi/simple
apt update
apt install libasound2-dev libflac-dev libmpg123-dev libvorbis-dev
apt install libsndfile1-dev
apt install bzip2
pip install pytest-runner -i https://mirrors.aliyun.com/pypi/simple
cd /work/PaddleSpeech #进到容器的paddlespeech根目录下
pip install . -i https://mirrors.aliyun.com/pypi/simple
# 有可能报错opencc版本错误
vim setup.py
opencc==1.1.6 改为opencc
Ubuntu安装libsndfile:轻松上手音频文件处理必备利器! - 云原生实践
四、测试paddlespeech
1.命令行测试
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav
2.服务启动测试
# 在容器中进入paddlespeech根目录
cd /work/PaddleSpeech
# 开启服务
paddlespeech_server start --config_file ./paddlespeech/server/conf/application.yaml
3. 安装nltk_data,启动测试时会有nltk_data相关的报错,需要先下载nltk_data,目录里大概包含这些项目

这个CSDN里有相关教程,这里就不多讲,记得下载后目录里的zip压缩包要解压不然可能会报错。
然后
将下载的nltk_data要放在挂载目录/path/to/your/docker/data里,再进入容器中把nltk_data复制到指定目录中。
# 查询并将nltk_data移动到指定的任一目录
import nltk
nltk.find('.')
# 我复制到了/root目录中
cp -r /work/nltk_data /root/nltk_data
结尾
如果服务测试成功就结束了,总的来说,虽然废话多了一点,但是就只是换了docker环境而已,希望这个教程对你有一点帮助,如有疏漏,敬请指正。
「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!
更多推荐



所有评论(0)