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身份运行):
# 更新系统
apt update
apt upgrade# 重启系统
reboot# 安装驱动
chmod +x NVIDIA-Linux-x86_64-550.78.run# 安装过程中如果遇到需要重新打包内核,选择 "rebuild ini..."
./NVIDIA-Linux-x86_64-550.78.run# 安装成功后,重启系统
reboot# 查看是否安装成功,如果驱动安装成功,会显示如下图内容
nvidia-smi

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

# 删除旧版
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done# 用apt安装新版docker
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.ascecho \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 测试是否安装成功,如果成功,会输出hello-world镜像的内容
sudo docker run hello-world
  1. 安装 NVIDIA Container Toolkit:
# 用apt方式安装NVIDIA Container Toolkit
curl -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' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listsed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit# 配置NVIDIA Container Toolkit
# 如下命令会修改docker配置文件/etc/docker/daemon.json,没有则创建
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
  1. 安装docker版本paddlepaddle
# 下载完镜像后,可用命令 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:
cd
vim docker-compose.yml# 内容如下
services:paddlespeech:image: paddlepaddle/paddle:2.5.1-gpu-cuda11.2-cudnn8.2-trt8.0container_name: paddle251network_mode: hostentrypoint: ["/bin/bash", "/home/docker-entrypoint.sh"]volumes:- /root/docker-entrypoint.sh:/home/docker-entrypoint.sh- /root/tests:/paddledeploy:resources:reservations:devices:- driver: nvidiacount: allcapabilities: [gpu]restart: always
  1. 写一个入口脚本
vim docker-entrypoint.sh# 内容如下:
#!/bin/bash
while true
doecho "loop forever, sleep 60"sleep 60
done
  1. 启动paddlepaddle容器
docker compose up -d
  1. 进入容器
# 查看容器,STATUS下面如果是 "Up ..." 表示容器启动成功
docker ps# 进入容器
docker exec -it paddle251 /bin/bash
  1. 安装PaddleSpeech,推荐编译安装:
# 克隆
git clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
mkdir ~/.pip
echo -e '[global]\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple\ntrusted-host = pypi.tuna.tsinghua.edu.cn' > ~/.pip/pip.conf
pip install -U 'pip>21.0,<23.0'# 切换到指定commit
git checkout 52c7c1ef6a7373c332a52e006a80e59e630225cc
#git checkout ####f8b7d76758c1ec8da24dc883b86c8d73f70f9b9d# 安装依赖包
pip install pytest-runner# 安装完成时会有错误提示,不管它们:
# 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.
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple# 查看是否安装paddlepaddle-gpu和paddlespeech
pip list | grep -i paddle

测试安装的PaddleSpeech

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

Python API 一键预测

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

Python API 一键预测

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

Python API 一键预测

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

Python API 一键预测

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

Python API 一键预测

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

更多测试用例见 这里

使用服务见 这里

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32开发学习——使用 Cortex-M3M4M7 故障异常原因与定位

STM32开发学习——使用 Cortex-M3/M4/M7 故障异常原因与定位 文章目录 STM32开发学习——使用 Cortex-M3/M4/M7 故障异常原因与定位文档说明&#xff1a;官方参考文档线上链接&#xff08;可在线阅读与下载&#xff09;&#xff1a;故障异常处理程序HardFault优先级升级说明故障…

java项目之相亲网站的设计与实现源码(springboot+mysql+vue)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的相亲网站的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 相亲网站的设计与实…

连升三级!openGauss单机版从2.1.0经停3.0.0升级至5.0.0

前言 如前文所述&#xff0c;我们的小demo项目起初安装了openGauss的2.1.0版本&#xff0c;由于2.1.0不是长期维护&#xff08;LTS&#xff09;版本&#xff0c;所以要升级到5.0.0LTS。考虑到虽然是DEMO项目&#xff0c;但也有些体验用户&#xff0c;所以为了保障业务连续性&a…

2023版brupsuite专业破解安装

安装教程&#xff0c;分两部分&#xff1a; 1、安装java环境、参考链接JAVA安装配置----最详细的教程&#xff08;测试木头人&#xff09;_java安装教程详细-CSDN博客 2、安装2023.4版本brupsuite&#xff1a;参考链接 2023最新版—Brup_Suite安装配置----最详细的教程&…

Java---类和对象第一节

目录 1.面向对象初步认识 1.1什么是面向对象 1.2面向对象和面向过程的区别 2.类的定义和使用 2.1简单认识类 2.2类的定义格式 2.3类的实例化 2.4类和对象的说明 3.this关键字 3.1访问本类成员变量 3.2调用构造方法初始化成员变量 3.3this引用的特性 4.对象的构造以…

一文弄懂 Linux 系统调用函数之 exec 函数族

目录 简介函数原型参数说明返回值函数区别使用示例采用参数列表传递参数&#xff0c;以 execl 为例采用参数数组传递参数&#xff0c;以 execv 为例调用 PATH 下可执行文件&#xff0c;以 execlp 为例使用新的环境变量给新进程&#xff0c;以 execle 为例 更多内容 简介 exec …

【Java】/*方法的使用-快速总结*/

目录 一、什么是方法 二、方法的定义 三、实参和形参的关系 四、方法重载 五、方法签名 一、什么是方法 Java中的方法可以理解为C语言中的函数&#xff0c;只是换了个名称而已。 二、方法的定义 1. 语法格式&#xff1a; public static 返回类型 方法名 (形参列表) { //方…

windows server 2019 安装 docker环境

一、根据官方说明进行安装 , 看起来过程相当简单, 但问题还是有的 准备 Windows 操作系统容器 | Microsoft Learn // 一个 powershell 脚本&#xff0c;该脚本配置环境以启用与容器相关的 OS 功能并安装 Docker 运行时。 Invoke-WebRequest -UseBasicParsing "https://r…

【Docker】Ubuntu下Docker的基本使用方法与常用命令总结

【Docker】docker的基本使用方法 镜像image与容器container的关系基本命令- 查看 Docker 版本- 拉取镜像- 查看系统中的镜像- 删除某个镜像- 列出当前 Docker 主机上的所有容器&#xff0c;包括正在运行的、暂停的、已停止的&#xff0c;以及未运行的容器- 列出当前 Docker 主机…

【信息系统项目管理师知识点速记】沟通管理:管理沟通

管理沟通是确保项目信息流通顺畅的关键流程,涉及到信息的收集、生成、传播、存档、检索、监管及最终处理,以促进项目团队与利益相关者的有效互动。这一过程不仅关乎信息的发布,更侧重于信息的恰当格式与精准送达,同时鼓励利益相关者的积极参与,包括信息补充、澄清和讨论。…

《二十一》QT QML编程基础

QML概述 QML&#xff08;Qt Meta-Object Language&#xff09;是一种声明性语言&#xff0c;它被用于描述Qt框架中用户界面的结构和行为。QML提供了一种简洁、灵活的方式来创建动态和交互式的界面。 QML基于JavaScript语法&#xff0c;通过使用QML类型和属性来定义界面的元素…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 大家继续看 https://lilianweng.github.io/posts/2023-06-23-agent/的文档内容 第二部分&#xff1a;内存 记忆的类型 记忆可以定义为用于获取、存储、保留以及随后检索信息的过程。人脑中有多…

Mac 使用:Micosoft Remote Desktop 远程优化

Micosoft Remote Desktop远程优化 服务器 远程会话环境设置 WinR打开运行&#xff0c;输入gpedit.msc 找到计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境。下面这几个打开&#xff0c;有效提高rdp性能。 rdp协议同时使用…

自动驾驶---Behavior Planning之EUDM

1 背景 在前面的博客中,为读者朋友们阐述了自动驾驶Planning模块基于MCTS行为规划的文章《自动驾驶---Behavior Planning之MCTS》,博客中引用的论文的主要思想是以蒙特卡洛树来实现行为规划。今天,我们继续探寻另一种行为规划的策略,主角依然是香港科技大学。 熟悉的读者大…

vim 文件内容替换 cat 合并文件

vim 文件内容替换 第一步&#xff1a;首先要进入末行模式&#xff08;在命令模式下输入冒号:&#xff09; 第二步&#xff1a;根据需求替换内容 ① 只替换光标所在这一行的第一个满足条件的结果&#xff08;只能替换1次&#xff09; :s/要替换的关键词/替换后的关键词 回…

计数排序,基数排序,桶排序

目录 计数排序: 基数排序&#xff1a; 桶排序: 计数排序: 计数排序是一种非比较型整数排序算法&#xff0c;特别适用于一定范围内的整数排序。它的核心思想是使用一个额外的数组&#xff08;称为计数数组&#xff09;来计算每个值的出现次数&#xff0c;然后根据这些计数信…

C语言中错误处理的基本实现

引入头文件依赖&#xff1a; 标准输入输出流&#xff1a;#include <stdio.h>获取错误信息&#xff1a;#include <string.h>&#xff0c;strerror通过这个头文件获取文件流&#xff1a;#include <stdlib.h>&#xff0c;fprintf通过这个头文件获取错误编号&…

hadoop生态圈集群搭建(持续更新240512)

Hadoop生态圈 Linux1.修改ip地址2.重启network服务3.安装插件4.关闭防火墙5.创建用户6.创建目录7.修改目录的所属主和所属组为lxy8.修改主机名:hadoop102 (注意名字后面不要加空格)9.修改hosts文件10.等插件都装完后再重启Linux11.把xshell的登录用户换成lxy &#xff08;注意&…

【TC3xx芯片】TC3xx芯片时钟监控

目录 前言 正文 1.时钟监控概念 1.1 时钟监控原理 1.2时钟监控配置寄存器

Node.js 的补充适用场景

Node.js 的适用场景相当广泛&#xff0c;以下再补充一些具体的使用场景&#xff1a; 服务器端应用开发&#xff1a; Node.js特别适合于构建高性能、高并发、低延迟的服务器端程序。它可以用来开发Web服务器、API服务器、实时通讯服务器等。Node.js的高性能和事件驱动的非阻塞I…