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 验收材料
1.1 交付件清单
(1)开源软件fork地址:不涉及
(2)开源软件修改记录(可以有多个修改记录):不涉及
(3)推送上游社区PR(包括代码、文档、可以有多个):不涉及
(4)验证DEMO地址: https://gitcode.com/huyanbo/parler-tts/overview
(5)验证DEMO修改记录(可以有多个修改记录,只包含和本任务验证强相关的提交记录,比如添加依赖、增加配置文件、演示开源软件功能使用的代码等):https://gitcode.com/huyanbo/parler-tts/commits/detail/00417df899002f774604db093b2542c7706b80f7?ref=ascend_demo
(6)博客地址: https://bbs.huaweicloud.com/blogs/440482
验收细则 |
评分说明 |
是否为验收必选项 |
结果(通过/不通过) |
验证举证 |
功能开发:完成与华为三大根技术生态(鲲鹏云、昇腾云、鸿蒙)适配的功能开发和验证。 |
基于鲲鹏、昇腾和Euler系统完成验证。 |
是 |
|
(4) |
代码质量:适配华为三大根技术生态的代码质量经过工具检测达标 |
推送给开源社区的代码符合开源社区关于代码风格、功能、自动化测试等要求。 |
否 |
|
|
提供相关文档,比如部署文档、使用文档、配置文档等 |
根据社区要求,完善相关的开发指南和部署指导 |
否 |
|
|
合入到开源项目主仓:代码推送上游社区 |
代码合并到当前主干分支。举证提供代码仓库链接。 |
否 |
|
|
Deomo设计&开发:完成功能演示Demo的开发 |
举证提供DEMO前端地址。 |
是 |
|
(4)(5) |
Demo部署&验证:完成功能演示DEMO基于华为昇腾、鲲鹏和Euler系统环境的部署和功能验证 |
提供DEMO部署验证结果的关键截图进行举证。提供DEMO运行环境和资源的规格清单。 |
是 |
|
参考资源清单和测试结果。 |
发布博客:发布博客介绍适配心得。 |
提供博客的地址。 |
是 |
|
(6) |
制作单机版无高危开源镜像。 |
上架云商店。 |
否 |
|
|
单机版镜像上架时支持模板部署。 |
|
否 |
|
|
制作集群版无高危开源镜像 |
上架云商店。 |
否 |
|
|
集群版镜像上架时支持模板部署 |
|
否 |
|
|
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)