PaddleSpeech适配昇腾开源验证任务心得

举报
p_xcn 发表于 2024/12/07 15:08:09 2024/12/07
【摘要】 PaddleSpeech是飞桨推出的一个开源语音处理工具包,提供了完整的端到端语音处理解决方案,包括语音识别(ASR)、语音合成(TTS)、语音增强和语音翻译等功能。本文将介绍在华为的Ascend NPU上配置PaddleSpeech 项目的过程中遇到的问题和解决方案,以及心得总结。

一、背景介绍

PaddleSpeech是飞桨推出的一个开源语音处理工具包,提供了完整的端到端语音处理解决方案,包括语音识别(ASR)、语音合成(TTS)、语音增强和语音翻译等功能本文将介绍在华为的Ascend NPU上配置PaddleSpeech 项目的过程中遇到的问题和解决方案,以及心得总结。

二、资源清单

Kunpeng CPU:

产品名称

CPU架构

实例类型

公共镜像

镜像版本

弹性云服务器

鲲鹏计算

鲲鹏通用计算增强型kc1.large.4

Huawei Cloud EulerOS

Huawei Cloud EulerOS 2.0 64bit for kAi2p with HDK 23.0.1 and CANN 7.0.0.1 RC

Ascend NPU:

产品名称

芯片类型

CANN版本

驱动版本

操作系统

堡垒机

昇腾910B3

CANN 7.0.1.5

23.0.6

Huawei Cloud EulerOS 2.0

三、遇到的问题和解决方案

具体步骤详见:https://blog.csdn.net/qq_54958500/article/details/143891770

验证DEMO地址:https://gitcode.com/can_glan/opensource-demo-PaddleSpeech-241207/overview

问题1:依赖包版本失效

在尝试按照README和setup.py文件中给出的指导进行环境配置时,遇到了多个依赖包版本失效或不再可用的问题。例如,PaddlePaddle版本2.5.1已无法使用,opencc==1.1.6也找不到匹配的发行版。

解决方案:

更换为支持的PaddlePaddle版本(如3.0.0b2以适配昇腾NPU)。

对于setup.py中的依赖,移除具体的版本号限制,改为不指定版本来避免版本冲突。

问题2:sox包无法通过conda渠道安装

在创建环境时,sox无法从当前conda渠道找到合适的版本。

解决方案:

使用pip安装sox:pip install sox

问题3:编译过程中出现的Python版本要求错误

某些依赖项要求Python版本>=3.10,但环境中使用的是Python 3.9。

解决方案:

修改setup.py文件内的依赖声明,移除或调整版本要求。

问题4:缺少ccache导致警告

编译过程中提示没有找到ccache工具。

解决方案:

安装ccache以提高编译速度:conda install -c conda-forge ccache

问题5:setuptools替换distutils的警告

当编译项目时,出现了关于setuptools正在替换distutils的警告信息。

解决方案:

更新setuptools到最新版本:python -m pip install --upgrade setuptools

问题6:paddlespeech_ctcdecoders找不到匹配的版本

尝试安装特定版本的paddlespeech_ctcdecoders时,pip无法找到合适的版本。

解决方案:

根据反馈,该包并非必须,可以通过手动编译third_party/ctc_decoders目录下的代码来解决问题。

问题7:部署至昇腾NPU时遇到的pad模式不支持问题

运行OCR代码时,因昇腾NPU仅支持constant模式的pad操作而报错。

解决方案

修改源码,在检测到设备是NPU时,将pad操作的mode参数设置为constant。

四、验证结果

- DEMO内容:使用下载或自己创建的音频文件作为输入音频,对输入音频进行语音识别,并通过gradio构建一个简单的Web应用界面展示DEMO效果。

Kunpeng CPU:

前端链接: http://113.44.138.39:7863/

Ascend NPU:

五、心得总结

在整个PaddleSpeech的环境配置过程中,最大的挑战在于依赖管理以及版本兼容性。由于官方文档存在滞后性,实际操作中需要根据Issues反馈和自身遇到的具体问题灵活调整。面对依赖项版本冲突或缺失的情况,移除版本限制、查找替代方案或直接修改源代码都是有效的解决策略。此外,对于昇腾NPU的支持,可能还需要对框架本身做出一定修改以确保兼容性和性能优化。通过这些实践,不仅加深了对PaddleSpeech项目的理解,也积累了处理类似开源项目安装配置难题的经验。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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