ChatTTS 适配昇腾开源验证任务心得
ChatTTS 适配昇腾开源验证任务心得
根据任务计划书(https://bbs.huaweicloud.com/blogs/437824)了解任务内容,主要目的是将 ChatTTS项目适配至华为的 Ascend(昇腾),确保其在昇腾上能够正常运行,并完成文字转语音的功能验证。
开发过程
明确目的后开始熟悉模型,ChatTTS的github网址:https://github.com/2noise/ChatTTS 把ChatTTS项目从github上用git拉取下来。
鲲鹏、OpenEuler 验证推理
(1)安装依赖包
根据https://github.com/2noise/ChatTTS提示安装,使用pip install -e .,将会下载安装torch、torchaudio等库。
(2)运行推理脚本
实例:Python3 run.py “xxx” ”xxx”,运行时可能提示缺少某些库,按照提示安装即可。
NPU验证推理
(1)安装依赖包
NPU上需要CANN、torch_npu、pytorch
先安装CANN,参考:
https://www.hiascend.com/zh/developer/download/community/result?module=cann。
torch_npu的安装参考:https://github.com/Ascend/pytorch/blob/master/README.zh.md。
注:torch_npu、torch、torchaudio均下载2.1版本,其余依赖在运行脚本时,可能会报错一些依赖找不到,按照提示下载即可。
(2)修改推理代码
涉及修改的代码包括run.py、core.py、gpt.py。
将拉取下来的推理代码run.py复制一份并重命名为run_npu.py,修改如下(右边是修改过的):
修点1:导入torch_npu相关库
修改2:为了在命令行可以指定device而添加
修改3:主函数中对应写入
core.py脚本,修改如下:
修改1:导入torch_npu相关库
修改2:优先选择为NPU设备并在终端显示
修改3:由于vocos不支持在NPU上计算,将其固定在CPU上计算
gpt.py脚本,修改如下:
修改1:将它改为NPU支持的形式
1 验收材料
1.1 交付件清单
(1)开源软件fork地址:不涉及
(2)开源软件修改记录(可以有多个修改记录):不涉及
(3)推送上游社区PR(包括代码、文档、可以有多个):不涉及
(4)验证DEMO地址:https://gitcode.com/hlc0101/ChatTTS/blob/main/README.md
(5)验证DEMO修改记录(可以有多个修改记录,只包含和本任务验证强相关的提交记录,比如添加依赖、增加配置文件、演示开源软件功能使用的代码等):无
(6)博客地址:https://bbs.huaweicloud.com/blogs/440105
验收细则 |
评分说明 |
是否为验收必选项 |
结果(通过/不通过) |
验证举证 |
功能开发:完成与华为三大根技术生态(鲲鹏云、昇腾云、鸿蒙)适配的功能开发和验证。 |
基于鲲鹏、昇腾和Euler系统完成验证。 |
是 |
|
(4)(6) |
代码质量:适配华为三大根技术生态的代码质量经过工具检测达标 |
推送给开源社区的代码符合开源社区关于代码风格、功能、自动化测试等要求。 |
否 |
|
|
提供相关文档,比如部署文档、使用文档、配置文档等 |
根据社区要求,完善相关的开发指南和部署指导 |
否 |
|
|
合入到开源项目主仓:代码推送上游社区 |
代码合并到当前主干分支。举证提供代码仓库链接。 |
否 |
|
|
Deomo设计&开发:完成功能演示Demo的开发 |
举证提供DEMO前端地址。 |
是 |
|
(4) |
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 验证截图
3.1验证思路
从github上拉取ChatTTS仓库,分别在CPU、NPU搭建必需的环境和安装相关依赖,之后在项目的example中找到合适的验证脚本进行验证,命令行输入需要转语音的文本,运行后生成对应的语音文件,可下载播放。
3.2 CPU推理结果
运行代码:
显示运行在CPU上:
生成语音结果:
3.3 NPU推理结果
运行代码:
显示运行在NPU上:
生成语音结果,并播放:
程序运行前:
程序运行后:
- 点赞
- 收藏
- 关注作者
评论(0)