Parler-tts适配昇腾开源验证任务心得
Parler-tts适配昇腾开源验证任务心得
首先看了一下任务计划书:https://bbs.huaweicloud.com/blogs/437807,主要目的是将 parler-tts 项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保其在这些硬件平台上的高效运行,也就是说验证parler-tts 能不能在使用Ascend(昇腾)运行。
开发过程
明确目的后开始熟悉模型,parler-tts 的github网址:https://github.com/huggingface/parler-tts 。为了方便后续使用,我把代码库中的代码文件fork到了我自己的代码仓库,代码仓库的README文件有模型的下载链接,也可以去常用的模型仓库网站寻找模型然后下载,比如huggingface和魔塔社区。
我是在魔塔社区下载的模型。先使用:pip install modelscope 安装modelscope,然后使用:modelscope download --model AI-ModelScope/parler_tts_mini_v0.1 --local_dir ./dir把模型下载到当前文件夹。
cpu推理:
推理代码:
我先在鲲鹏处理器、欧拉操作系统的弹性服务器上进行的测试,官方在README文件里给出了推理代码,我们只需把模型地址和分词器地址改为我们的模型地址,再把prompt的固定内容改为prompt=(“user:”)就可以用用户交互的方式使用模型进行文本转语音的操作。
安装依赖:
官方也给出了下载模型依赖的方法,运行:
pip install git+https://github.com/huggingface/parler-tts.git
就可以把模型的依赖下载下来。我在运行时遇到一个大坑:运行完github给的安装库指令,运行代码时它会提示import soundfile失败,因为没找到libsndfile.os文件
我使用的CentOS系统,使用
yum install libsndfile
命令安装这个文件时他会继续报错:
Error: Failed to download metadata for repo 'docker-ce-stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
,说是镜像源里找不到这个文件,网页上也没找到解决办法,这个时候只要运行:
sudo yum --disablerepo=docker-ce-stable install libsndfile
就可以下载了,这个命令意味着 yum 在搜索和安装 libsndfile 时不会考虑 docker-ce-stable 仓库中的任何包或依赖项。解决之后就可以运行代码使用模型了。
编写推理代码在NPU推理模型:
官方并没有直接提供parler-tts的推理代码,需要自己编写,可以参考:https://gitcode.com/huyanbo/parler-tts/overview,
创建python虚拟环境运行官方给出的模型依赖安装命令:
pip install git+https://github.com/huggingface/parler-tts.git
,然后再安装numpy(先安装numpy和pytorch的话,运行完官方给出的模型以来安装命令numpy和pytoch的版本会被改变,做成后续的模型依赖冲突,本人numpy版本1.23.5,建议先使用官方模型依赖安装命令,再安装numpy,再去安装pytorch)。
使用NPU推理模型需要安装pytorch、CANN和torch_npu,版本要相对应,还要额外安装psutil库和attrs库。
先安装CANN,参考:https://www.hiascend.com/zh/developer/download/community/result?module=cann。
安装pytorch的cpu版本:https://pytorch.org/ pip安装代码:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
torch_npu的安装参考:https://github.com/Ascend/pytorch/blob/master/README.zh.md。
依赖安装完成后,就可以运行推理代码文件实现模型的使用。
1 验收材料
验证DEMO地址: https://gitcode.com/huyanbo/parler-tts/overview
2 资源清单
产品名称 |
CPU架构 |
实例类型 |
公共镜像 |
镜像版本 |
备注 |
弹性云服务器 |
鲲鹏计算Kunpeng-920 |
鲲鹏通用计算增强型kc1 |
Huawei Cloud EulerOS |
Huawei Cloud EulerOS 2.0 Arm 64bit sdi5 for ECS BareMetal With Uniagent(150GiB) |
推荐 |
产品名称 |
NPU架构 |
CPU架构 |
操作系统 |
云堡垒机 |
Ascend 910B3 |
鲲鹏计算Kunpeng-920 |
Huawei Cloud EulerOS 2.0 (aarch64) |
3 测试结果
此模型是文本转语音模型,部署完成后运行代码可以输入想转换成语音的文字,模型会将其转换为对应的语音文件,可以下载播放。
Cpu推理
生成文件
下载后正常播放,语音内容和文字一样
Npu推理
运行程序前
运行程序后
我编辑npu时指定了npu编号为4,可以看到npu:4已经在运行了。
推理结果:
输入文字
产生的文件
下载后正常播放,语音内容和文字一样
- 点赞
- 收藏
- 关注作者
评论(0)