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.asc

echo \
  "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/null

sudo 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.list
    
sed -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.0
    container_name: paddle251
    network_mode: host
    entrypoint: ["/bin/bash", "/home/docker-entrypoint.sh"]
    volumes:
      - /root/docker-entrypoint.sh:/home/docker-entrypoint.sh
      - /root/tests:/paddle
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: always
  1. 写一个入口脚本
vim docker-entrypoint.sh

# 内容如下:
#!/bin/bash
while true
do
    echo "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.04848729
   4.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")
['我 在 这栋 建筑 的 古老 门上 敲门 。']

更多测试用例见 这里

使用服务见 这里

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件全套资料梳理(需求、开发、实施、运维、安全、测试、交付、认证、评审、投标等)

软件全套精华资料包清单部分文件列表&#xff1a; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审批表&#xff0c;产品需求规格说明书&#xff0c;需求调研计划&#xff0c;用户需求调查单&#xff0c;用户需求说明书&#xff0c;概要设计说明书&#xff0c…

C++ | Leetcode C++题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; class Solution { public:int largestRectangleArea(vector<int>& heights) {int n heights.size();vector<int> left(n), right(n, n);stack<int> mono_stack;for (int i 0; i < n; i) {while (!mono_stack.em…

批量生成大量附件(如:excel,txt,pdf)压缩包等文件时前端超时,采用mq+redis异步处理和多线程优化提升性能

一.首先分析一下场景&#xff1a;项目中我需要从财务模块去取单证模块的数据来生成一个个excel文件 在单证那个一个提单号就是一个excel文件&#xff0c;我们这边一个财务发票可能会查出几千个提单&#xff0c;也就是会生成几百个excel&#xff0c;然后压缩为一个压缩包&#x…

企业微信创建应用(一)

登录到企业微信后台管理(https://work.weixin.qq.com/)进入自建应用(应用管理-应用-创建应用) 3.查看参数AgentId和 Secret 4.企业微信查看效果

Python | Leetcode Python题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; class Solution:def largestRectangleArea(self, heights: List[int]) -> int:n len(heights)left, right [0] * n, [n] * nmono_stack list()for i in range(n):while mono_stack and heights[mono_stack[-1]] > heights[i]:righ…

音频运放LPF使用

1、用于差分ADC输入的单端到差分缓冲器和抗混叠LPF 2、用于单端ADC输入的缓冲和抗混叠LPF 3、用于DAC输出的后置LPF和差分到单端缓冲器&#xff08;AC耦合&#xff09; 4、后LPF和差分到DAC输出的单端缓冲器&#xff08;直流耦合&#xff09; 5、用于差分ADC输入的具有抗混叠LP…

【无标获取S4与ECC的具体差异的方法题】

首先我们需要对ECC vs S4的差异这个课题要有一个深刻的理解&#xff0c;这不是一个简单并能准确说清楚的课题。 我们需要结合实际项目的具体情况去回答这个问题&#xff0c;因为这个问题本身是没有标准答案的。 首先要了解SAP本身ERP产品线的发展概况&#xff0c;其次我们要…

微信小程序踩坑,skyline模式下,scroll-view下面的一级元素设置margin中的auto无效,具体数据有效

开发工具版本 基础库 开启skyline渲染调试 问题描述 skyline模式下,scroll-view下面的一级元素的margin写auto的值是没有效果的(二级元素margin写auto是有效果的),关闭这个模式就正常显示 演示效果图 父元素的宽度和高度效果(宽度是750rpx,宽度占满的) 一级元素宽度和css效果…

在Linux上安装并启动Redis

目录 安装gcc环境 上传redis文件方法一&#xff1a;sftp 上传redis文件方法二&#xff1a;wget 启动redis-server ctrlc关闭redis-server 参考文章&#xff1a;Linux 安装 Redis 及踩坑 - 敲代码的阿磊 - 博客园 (cnblogs.com) 准备&#xff1a;打开VMware Workstation&am…

20240511,谓词,内建函数对象

拜托铠甲勇士真的帅好不好&#xff01;&#xff01;&#xff01; STL案例2-员工分组 10个员工&#xff0c;指派部门&#xff0c;员工信息&#xff08;姓名&#xff0c;工资组成&#xff0c;部门&#xff1a;策划&#xff0c;美术&#xff0c;研发&#xff09;&#xff0c;随机…

【Web】2023香山杯决赛 security system 题解

目录 step -1 step 0 step 1 step 2 step 3 step -1 ①题目hint&#xff1a;想办法修改属性值后进入java的原生反序列化&#xff0c;然后利用jackson链写入内存马 ②jackson反序列化基础&#xff1a; ObjectMapper objectMapper new ObjectMapper(); String jsonStrin…

MyBatis-plus(一):快速入门

目录 一、MyBatis-plus 快速入门 1、原理 2、实体类命名规则 3、常见注解 4、主键 id 策略 5、使用 TableField 的常见场景 6、常用配置 二、核心功能 1、条件构造器 2、自定义 SQL 3、IService 接口 一、MyBatis-plus 快速入门 1、原理 MyBatisPlus 通过扫描实体…

✨✨使用vue3打造一个el-form表单及高德地图的关联组件实例✨

✨1. 实现功能 &#x1f31f;表单内显示省市县以及详细地址 点击省市县输入框时&#xff0c;打开对应地图弹窗&#xff0c;进行位置选择选择位置回显入对应输入框表单内的省市县以及地址输入框同外嵌表单走相同的校验方式触发校验后点击reset实现清除校验与清空数据 &#x1f…

WebSocket 详解加入门实操理解加深

WebSocket 介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c; 并进行双向数据传输。 HTTP协议和WebSocket协议对比&#xff1a; HTTP是短连接…

图的顺序存储和链式存储实现

目录 一、顺序存储 有向图&#xff1a; 无向图 代码实现 二、链式存储 有向图 无向图 代码实现 一、顺序存储 主要用到的是一个二维数组&#xff0c;也就是矩阵&#xff0c;直接上栗子&#xff1a; 有向图&#xff1a; 若要储存如下这个有向图&#xff1a; 需要建立一…

前端小程序调用 getLocation 实现地图位置功能,通过 纬度:latitude 经度: longitude 获取当前位置

1、首先登录一下 腾讯的位置服务 有账号就登录没账号就注册&#xff0c; 点击右上角的控制台点击左侧的应用管理 ---> 我的应用 ---->> 创建应用 1、创建应用 2、列表就会显示我们刚刚创建好的 key 3、点击添加 key 4、按照要求填写信息 我们用的是小程序 所以选择…

Spring编程使用DDD的小把戏

场景 现在流行充血领域层&#xff0c;在原本只存储对象的java类中&#xff0c;增加一些方法去替代原本写在service层的crud&#xff0c; 但是例如service这种一般都是托管给spring的&#xff0c;我们使用的ORM也都托管给spring&#xff0c;这样方便在service层调用mybatis的m…

电影院购票管理系统

文章目录 电影院购票管理系统一、项目演示二、项目介绍三、部分功能截图四、部分代码展示五、底部获取项目源码&#xff08;9.9&#xffe5;带走&#xff09; 电影院购票管理系统 一、项目演示 电影院售票管理系统 二、项目介绍 基于springbootvue的前后端分离电影院购票管理…

Hive行列转换应用与实现

Hive行列转换应用与实现 1.多行转多列 问题引入 解决方法 2.多行转单列 问题引入 解决方法 3.多列转多行 问题引入 解决方法 4.单列转多行

部署yolov5

1 创建一个yolov5的环境 conda create -n yolov5 python3.8 2 激活环境 conda activate yolov5 3 设置清华源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 4 PyTorch 网站下载pytorch 备注:也可以使用pip install 5 下载 yolov5…