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.pswp.cn/web/10716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10716.shtml
英文地址,請注明出處:http://en.pswp.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…