0


AI语音模型PaddleSpeech踩坑(安装)指南

PaddleSpeech简介

PaddleSpeech 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。

PaddleSpeech安装步骤

提示:要找到一个合适的PaddleSpeech版本与paddlepaddle适配非常困难!官方文档也没有明确告诉我们PaddleSpeech要与哪个版本的python、paddlepaddle、cuda版本适配,只能自己尝试。经过N多次尝试,终于找到了能用的版本。因此,请严格按照下文的步骤执行。

相关依赖:
  1. gcc >= 4.8.5
  2. paddlepaddle <= 2.5.1
  3. python >= 3.8
安装docker版paddlepaddle

下面将用docker安装PaddleSpeech,这样会遇到更少的问题,更容易成功!
准备工作:

  1. 带GPU(以RTX4090为例)的Ubuntu 22.04系统,在 这里 下载550.78驱动的 .run 文件到Ubuntu系统内,运行命令(都以root身份运行):
  1. # 更新系统apt update
  2. apt upgrade
  3. # 重启系统reboot# 安装驱动chmod +x NVIDIA-Linux-x86_64-550.78.run
  4. # 安装过程中如果遇到需要重新打包内核,选择 "rebuild ini..."
  5. ./NVIDIA-Linux-x86_64-550.78.run
  6. # 安装成功后,重启系统reboot# 查看是否安装成功,如果驱动安装成功,会显示如下图内容
  7. nvidia-smi

驱动安装成功
2. 在系统中用apt安装docker:

  1. # 删除旧版forpkgin docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc;dosudoapt-get remove $pkg;done# 用apt安装新版dockersudoapt-get update
  2. sudoapt-getinstall ca-certificates curlsudoinstall-m 0755 -d /etc/apt/keyrings
  3. sudocurl-fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  4. sudochmod a+r /etc/apt/keyrings/docker.asc
  5. echo\"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  6. $(. /etc/os-release &&echo"$VERSION_CODENAME") stable"|\sudotee /etc/apt/sources.list.d/docker.list > /dev/null
  7. sudoapt-get update
  8. sudoapt-getinstall docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  9. # 测试是否安装成功,如果成功,会输出hello-world镜像的内容sudodocker run hello-world
  1. 安装 NVIDIA Container Toolkit:
  1. # 用apt方式安装NVIDIA Container Toolkitcurl-fsSL https://nvidia.github.io/libnvidia-container/gpgkey |sudo gpg --dearmor-o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&&curl-s-L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list |\sed's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'|\sudotee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  2. sed-i-e'/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
  3. sudoapt-get update
  4. sudoapt-getinstall-y nvidia-container-toolkit
  5. # 配置NVIDIA Container Toolkit# 如下命令会修改docker配置文件/etc/docker/daemon.json,没有则创建sudo nvidia-ctk runtime configure --runtime=docker
  6. sudo systemctl restart docker
  1. 安装docker版本paddlepaddle
  1. # 下载完镜像后,可用命令 docker inspect <image_name_or_id> 查看镜像创建时间docker pull paddlepaddle/paddle:2.5.1-gpu-cuda11.2-cudnn8.2-trt8.0
在容器中安装PaddleSpeech
  1. 创建docker-compose.yml:
  1. cdvim docker-compose.yml
  2. # 内容如下
  3. services:
  4. paddlespeech:
  5. image: paddlepaddle/paddle:2.5.1-gpu-cuda11.2-cudnn8.2-trt8.0
  6. container_name: paddle251
  7. network_mode: host
  8. entrypoint: ["/bin/bash", "/home/docker-entrypoint.sh"]
  9. volumes:
  10. - /root/docker-entrypoint.sh:/home/docker-entrypoint.sh
  11. - /root/tests:/paddle
  12. deploy:
  13. resources:
  14. reservations:
  15. devices:
  16. - driver: nvidia
  17. count: all
  18. capabilities: [gpu]
  19. restart: always
  1. 写一个入口脚本
  1. vim docker-entrypoint.sh
  2. # 内容如下:#!/bin/bashwhiletruedoecho"loop forever, sleep 3600"sleep3600done
  1. 启动paddlepaddle容器
  1. docker compose up -d
  1. 进入容器
  1. # 查看容器,STATUS下面如果是 "Up ..." 表示容器启动成功dockerps# 进入容器dockerexec-it paddle251 /bin/bash
  1. 安装PaddleSpeech,推荐编译安装:
  1. # 克隆git clone https://github.com/PaddlePaddle/PaddleSpeech.git
  2. cd PaddleSpeech
  3. mkdir ~/.pip
  4. echo-e'[global]\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple\ntrusted-host = pypi.tuna.tsinghua.edu.cn'> ~/.pip/pip.conf
  5. pip install-U'pip>21.0,<23.0'# 切换到指定commitgit checkout 8aa9790c7518e7857fd2b8a894284cc24a9de51a
  6. #git checkout 52c7c1ef6a7373c332a52e006a80e59e630225cc#git checkout ####f8b7d76758c1ec8da24dc883b86c8d73f70f9b9d# 安装依赖包
  7. pip install pytest-runner
  8. # 安装完成时会有错误提示,不管它们:# ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.# pylint 2.14.5 requires astroid<=2.12.0-dev0,>=2.11.6, but you have astroid 2.12.2 which is incompatible.
  9. pip install.-i https://pypi.tuna.tsinghua.edu.cn/simple
  10. # 查看是否安装paddlepaddle-gpu和paddlespeech
  11. pip list |grep-i paddle

测试安装的PaddleSpeech

  1. 下载示例音频
  1. wget-c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
  2. wget-c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wav
  1. 语音识别测试
  1. cd /paddle
  2. paddlespeech asr --lang zh --input zh.wav
  1. Python API 一键预测
  1. >>>from paddlespeech.cli.asr.infer import ASRExecutor
  2. >>> asr = ASRExecutor()>>> result = asr(audio_file="zh.wav")>>>print(result)
  3. 我认为跑步最重要的就是给我带来了身体健康
  1. 语音合成 命令行一键体验
  1. paddlespeech tts --input"你好,欢迎使用百度飞桨深度学习框架!"--output output.wav

Python API 一键预测

  1. >>>from paddlespeech.cli.tts.infer import TTSExecutor
  2. >>> tts = TTSExecutor()>>> tts(text="今天天气十分不错。", output="output.wav")
  1. 声音分类 命令行一键体验
  1. paddlespeech cls --input zh.wav

Python API 一键预测

  1. >>>from paddlespeech.cli.cls.infer import CLSExecutor
  2. >>> cls = CLSExecutor()>>> result = cls(audio_file="zh.wav")>>>print(result)
  3. Speech 0.9027186632156372
  1. 声纹提取 命令行一键体验
  1. paddlespeech vector --task spk --input zh.wav

Python API 一键预测

  1. >>>from paddlespeech.cli.vector import VectorExecutor
  2. >>> vec = VectorExecutor()>>> result = vec(audio_file="zh.wav")>>>print(result)# 187维向量[-0.190833069.474295-14.122263-2.09165450.048487294.92958261.47800620.373384410.6958623.2697146-4.48199-0.6617882-9.170393-11.1568775-1.2358263...]
  1. 标点恢复 命令行一键体验
  1. paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭

Python API 一键预测

  1. >>>from paddlespeech.cli.text.infer import TextExecutor
  2. >>> text_punc = TextExecutor()>>> result = text_punc(text="今天的天气真不错啊你下午有空吗我想约你一起去吃饭")
  3. 今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
  1. 语音翻译 命令行一键体验 使用预编译的 kaldi 相关工具,只支持在 Ubuntu 系统中体验
  1. paddlespeech st --input en.wav

Python API 一键预测

  1. >>>from paddlespeech.cli.st.infer import STExecutor
  2. >>> st = STExecutor()>>> result = st(audio_file="en.wav")['我 在 这栋 建筑 的 古老 门上 敲门 。']
  1. 测试中可能遇到 UserWarning 警告,可以不管,或者用 warnings.filterwarnings(“ignore”, category=WarningCategory) 屏蔽

更多测试用例见 这里,使用服务见 这里

参考:
https://www.cnblogs.com/iyiluo/p/17688647.html


本文转载自: https://blog.csdn.net/damiaomiao666/article/details/138388434
版权归原作者 小杰666 所有, 如有侵权,请联系我们删除。

“AI语音模型PaddleSpeech踩坑(安装)指南”的评论:

还没有评论