Parler-tts适配昇腾开源验证任务心得

举报
huyanbo 发表于 2024/11/26 11:04:57 2024/11/26
【摘要】 Parler-TTS 是一个完全开源的文本到语音转换项目,本文是把该模型适配到昇腾npu并进行推理的心得以及操作过程

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(先安装numpypytorch的话,运行完官方给出的模型以来安装命令numpypytoch的版本会被改变,做成后续的模型依赖冲突,本人numpy版本1.23.5,建议先使用官方模型依赖安装命令,再安装numpy,再去安装pytorch)。

使用NPU推理模型需要安装pytorchCANNtorch_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,可以看到npu4已经在运行了。

推理结果:


输入文字


产生的文件


下载后正常播放,语音内容和文字一样

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。