CosyVoice介紹

CosyVoice介紹

CosyVoice是阿里開源的一個多語言語音生成大模型,可應用于TTS(Text To Speech) 工具的開發。它支持內置預制語音生成、語音克隆、自然語言控制語音生成等功能。CosyVoice的另一個亮點在于它對生成語音情感和韻律的精細控制,這是通過富文本或自然語言輸入實現的。這種控制機制顯著提高了合成語音的情感表達能力,使得生成的語音更加栩栩如生,充滿情感色彩。這個系統支持中文、英文、日文、粵語和韓語五種語言的語音生成,并且在語音合成的效果上遠超傳統模型。

Github倉庫地址:https://github.com/FunAudioLLM/CosyVoice

官方在線體驗地址:魔搭社區

系統要求

無硬性要求,普通個人電腦也可以運行,不過推理耗時較長,只能用作嘗鮮體驗。如果機器有NVIDIA GPU,可以用NVIDIA CUDA加速。本文部署的機器使用GPUMart的RTX A4000 VPS,其GPU為NVIDIA RTX A4000,其顯存為16GB。

如何部署CosyVoice

步驟1. 克隆項目,安裝依賴

首先克隆官方項目,創建一套獨立的Python虛擬環境。

#因為項目內部引用了Matcha-TTS項目,所以記得使用--recursive參數
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git#創建Python 3.8+環境并激活
conda create -n cosyvoice python=3.8
conda activate cosyvoice

此時已經激活了虛擬環境,現在下載項目依賴的第三方包。

#在具有美國IP的GPUMart服務器上
pip install -r requirements.txt#如果服務器在國內
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

步驟2. 接著安裝Pynini

Pynini是一個基于字符串的傳播和轉換的庫,可以用于各種自然語言處理任務,如詞性標注、名詞短語提取和依賴句法分析。

conda install -y -c conda-forge pynini==2.1.5

步驟3. 下載模型

根據文檔要提前下載模型,這里不使用阿里的魔搭包下載,而是使用Git下載,前提是安裝git lfs 插件:

# git模型下載,請確保已安裝git lfs
mkdir -p pretrained_models
git clone https://www.modelscope.cn/iic/CosyVoice-300M.git pretrained_models/CosyVoice-300M
git clone https://www.modelscope.cn/iic/CosyVoice-300M-SFT.git pretrained_models/CosyVoice-300M-SFT
git clone https://www.modelscope.cn/iic/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct

可選的,您可以下載、解壓 ttsfrd 資源并安裝 ttsfrd 包以獲得更好的文本規范化性能。請注意,此步驟不是必需的。如果您不安裝 ttsfrd 包,我們將默認使用 WeTextProcessing。

git clone https://www.modelscope.cn/iic/CosyVoice-ttsfrd.git pretrained_models/CosyVoice-ttsfrd
cd pretrained_models/CosyVoice-ttsfrd/
unzip resource.zip -d .
pip install ttsfrd-0.3.6-cp38-cp38-linux_x86_64.whl

步驟4. 啟動服務

模型文件非常大,又需要等待較長時間才能下載完成。完成后,使用以下命令啟動服務:

python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice-300M

有個要注意的地方,如果需要從外網訪問,需要把webui.py文件中

demo.launch(server_port=args.port)

改成

demo.launch(server_port=args.port, server_name="0.0.0.0")

如果是本機訪問可以忽略。這在最新的版本里不存在,默認是支持外網訪問的。這時訪問局域網IP加端口號50000就能訪問到這個由gradio庫搭建的WebUI 網頁應用了。

CosyVoice web ui

如何使用CosyVoice

方法1. 在Web UI中使用

以語音克隆為例,第一步上傳原素材的音頻文件(可能需要處理以使效果更好),第二步輸入原素材的音頻文件對應的字幕,第三步輸入想要的生成的語音的文案,最后一步點擊生成,耐心等待。

在使用語音克隆功能時,除了提供文本,還需要提供一段示范性的語音樣本,用于大模型模仿音色、語調、朗讀習慣等。語音樣本的質量對最終生成效果影響非常大。對于輸入的樣本語音,同樣可以做一些前置處理。例如長度截取(官方建議語音樣本在3-10s,過長需要耗費更多的推理性能)、降噪處理等。

方法2. Python編程調用

如果需要基于模型做應用開發,或者調整更多細節參數,就需要對模型提供的API進行封裝和二次開發。對于零樣本/跨語言推理,請使用CosyVoice-300M模型。對于 sft 推理,請使用CosyVoice-300M-SFT模型。對于指令推理,請使用CosyVoice-300M-Instruct模型。首先,添加third_party/Matcha-TTS到您的PYTHONPATH。

export PYTHONPATH=third_party/Matcha-TTS
from cosyvoice.cli.cosyvoice import CosyVoice
from cosyvoice.utils.file_utils import load_wav
import torchaudiocosyvoice = CosyVoice('pretrained_models/CosyVoice-300M-SFT')
# sft usage
print(cosyvoice.list_avaliable_spks())
# change stream=True for chunk stream inference
for i, j in enumerate(cosyvoice.inference_sft('你好,我是通義生成式語音大模型,請問有什么可以幫您的嗎?', '中文女', stream=False)):torchaudio.save('sft_{}.wav'.format(i), j['tts_speech'], 22050)cosyvoice = CosyVoice('pretrained_models/CosyVoice-300M')
# zero_shot usage, <|zh|><|en|><|jp|><|yue|><|ko|> for Chinese/English/Japanese/Cantonese/Korean
prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)
for i, j in enumerate(cosyvoice.inference_zero_shot('收到好友從遠方寄來的生日禮物,那份意外的驚喜與深深的祝福讓我心中充滿了甜蜜的快樂,笑容如花兒般綻放。', '希望你以后能夠做的比我還好呦。', prompt_speech_16k, stream=False)):torchaudio.save('zero_shot_{}.wav'.format(i), j['tts_speech'], 22050)
# cross_lingual usage
prompt_speech_16k = load_wav('cross_lingual_prompt.wav', 16000)
for i, j in enumerate(cosyvoice.inference_cross_lingual('<|en|>And then later on, fully acquiring that company. So keeping management in line, interest in line with the asset that\'s coming into the family is a reason why sometimes we don\'t buy the whole thing.', prompt_speech_16k, stream=False)):torchaudio.save('cross_lingual_{}.wav'.format(i), j['tts_speech'], 22050)cosyvoice = CosyVoice('pretrained_models/CosyVoice-300M-Instruct')
# instruct usage, support [laughter][breath]
for i, j in enumerate(cosyvoice.inference_instruct('在面對挑戰時,他展現了非凡的勇氣智慧。', '中文男', 'Theo \'Crimson\', is a fiery, passionate rebel leader. Fights with fervor for justice, but struggles with impulsiveness.', stream=False)):torchaudio.save('instruct_{}.wav'.format(i), j['tts_speech'], 22050)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80678.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80678.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80678.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分布式任務調度XXL-Job

? XXL-Job 是一款輕量級、分布式的任務調度平臺&#xff0c;其核心設計解決了傳統任務調度&#xff08;如Quartz&#xff09;在分布式場景下的?任務分片?、?高可用?、?可視化管控?等痛點。以下從原理、核心架構、應用場景、代碼示例及關聯中間件展開詳解 一、主流任務…

GOOSE 協議中MAC配置

在 GOOSE&#xff08;Generic Object Oriented Substation Event&#xff09;協議中&#xff0c;主站&#xff08;Publisher&#xff09;發送的 MAC 地址不需要與從站&#xff08;Listener&#xff09;的 MAC 地址一致&#xff0c;其通信機制與 MAC 地址的匹配邏輯取決于 GOOSE…

交流充電樁IEC 61851-1和IEC 61851-21-2標準測試項目

交流充電樁IEC 61851-1和IEC 61851-21-2標準測試項目 立訊檢測的光儲充實驗室專注于光伏、儲能、充電設施等新能源領域的檢測與認證服務&#xff0c;以下是詳細介紹&#xff1a; ?1. 實驗室概況? ?覆蓋領域?&#xff1a;光伏逆變器、儲能電池系統、充電樁、便攜式儲能電…

備戰菊廠筆試2-BFS記憶化MLE?用Set去重-Set會TLE?用SortedSet剪枝

目錄 200.島嶼數量 不用getnei&#xff0c;直接在dfs判斷&#xff0c;去掉解包 如果害怕棧溢出那么可以用bfs 2617.網格圖中最少訪問的格子數 注意特判&#xff01; MLE主要是因為vis占用的內存過大 用SortedSet有序剪枝 什么是SortedSet&#xff1f; 基本性質 導入 …

STM32H743輸出50%的占空比波形

使用cubeMX進行配置如下&#xff1a; 時鐘配置如下&#xff1a; 具體代碼如下&#xff1a; /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program b…

MYSQL 查詢去除小數位后多余的0

MYSQL 查詢去除小數位后多余的0 在MySQL中&#xff0c;有時候我們需要去除存儲在數據庫中的數字字段小數點后面多余的0。這種情況通常發生在處理金額或其他需要精確小數位的數據時。例如&#xff0c;數據庫中存儲的是decimal (18,6)類型的數據&#xff0c;但在頁面展示時不希望…

物理:從人體組成角度能否說明基本粒子的差異性以及組織結構的可預設性?

人類的個體差異源于粒子組合的復雜性、環境與隨機性的相互作用,而非基本粒子本身的差異性。以下分層次解析: 一、基本粒子的同質性與組合多樣性 1. 基本粒子的同一性 標準模型確認:同種類基本粒子(如電子、上夸克)具有完全相同的質量、電荷等屬性,不存在個體差異。泡利不…

應用探析|千眼狼PIV測量系統在職業病防治中的應用

1、職業病防治背景 隨著《職業病防治法》及各省市“十四五”職業病防治規劃的深入推進&#xff0c;工作場所粉塵危害監測與防控已成為疾控部門的核心任務。以礦山、建材、冶金、化工等行業為例&#xff0c;粉塵濃度、分布及傳播特性的精準測量是評估職業病風險的關鍵。 傳統的…

串口模塊詳細講解

目錄 1.串口介紹 2。STC-ISP串口功能介紹 3.接口及引腳定義 4.串口知識點 4.1 硬件電路 4.2 電平標準 4.3 相關術語 4.4 常見通信接口比較 4.5 51單片機的UART 4.6 串口參數及時序圖 4.7 串口模式圖 4.8 串口和中斷系統 4.9 串口相關寄存器 5.串口向電腦發送信息…

基于大模型的腰椎管狹窄術前、術中、術后全流程預測與治療方案研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與創新點 二、腰椎管狹窄概述 2.1 定義與分類 2.2 發病原因與機制 2.3 臨床表現與診斷方法 三、大模型技術原理與應用現狀 3.1 大模型的基本原理 3.2 在醫療領域的應用案例 3.3 選擇大模型預測腰椎管狹窄的依據 四、…

【2025年前端高頻場景題系列】使用同一個鏈接,如何實現PC打開是web應用、手機打是-個H5 應用?

面試情境與問題引入 哈嘍大家伙,我是布魯伊。在前端開發面試中,面試官經常會拋出一些看似簡單卻能考察多方面能力的問題。"如何實現同一個鏈接在PC端和移動端展示不同應用?"就是這樣一個典型問題。為什么面試官喜歡問這個問題?因為它能同時考察候選人的設備適配…

醫療實時操作系統方案:手術機器人的微秒級運動控制

一、引言 手術機器人作為現代醫療技術的重要突破&#xff0c;正不斷推動著外科手術向精準化、微創化和智能化的方向發展。直覺外科&#xff08;Intuitive Surgical&#xff09;作為手術機器人領域的領軍企業&#xff0c;其達芬奇手術機器人系統已被廣泛應用于全球眾多醫療機構…

數據結構基礎--藍橋杯備考

1.優缺點總述 STL中各容器對比圖 各類線性數據結構優缺點 1.數組 1.優點 1.簡單&#xff0c;容易理解 2.訪問快捷&#xff0c;只需要用下標就可以 3.有某些應用場景直接對應&#xff0c;例如二維數組對應平面 2.缺點 刪除和插入數據非常耗時 2.鏈表 1.優點 插入和刪…

運用數組和矩陣對數據進行存取和運算——NumPy模塊 之六

目錄 NumPy模塊介紹 3.6.1 數組之間的運算 3.6.2 算術運算 3.6.3 比較運算 3.6.4 邏輯運算 3.6.5 矩陣運算 3.6.6 廣播運算 3.6.7 聚合運算 3.6.8 三角函數與指數對數運算 3.6.9 位運算 3.6.10 條件運算 3.6.11 數組的統計運算 3.6.12 關鍵問題:數組之間的運算對數組的維度有要…

JGL066生活垃圾滾筒篩分選機實驗裝置

JGL066生活垃圾滾筒篩分選機實驗裝置 一.實驗目的 本實驗對生活垃圾滾筒分選機進行垃圾分選的實驗。通過實驗達到以下目的&#xff1a; 1.了解分選的原理、方法和影響分選效果的主要因素。 2.確定分選的適宜條件。 二.技術指標 1.生活垃圾分選機處理量分為0.5~2t/h。 2.運動參數…

Excelize 開源基礎庫發布 2.9.1 版本更新

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎庫&#xff0c;基于 ECMA-376&#xff0c;ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Excel、WPS、OpenOffice 等辦公軟件創建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式&#xf…

xss-labs靶場基礎8-10關(記錄學習)

前言&#xff1a; 內容&#xff1a; 第八關 關卡資源網站&#xff0c;html編碼網站&#xff08;兩個網站&#xff0c;一個是實體編號轉義&#xff08;只對特殊字符有效&#xff0c;字母無效&#xff09;、實體符號轉義&#xff09; 在線Html實體編碼解碼-HTML Entity Encodi…

Kafka topic 中的 partition 數據傾斜問題

在 Kafka 中&#xff0c;如果一個 Topic 有多個 Partition&#xff0c;但這些 Partition 中的消息數量或流量分布不均衡&#xff0c;就會出現 數據傾斜&#xff08;Data Skew&#xff09; 的問題。 ? 什么是數據傾斜&#xff1f; 數據傾斜指的是&#xff1a; 某些 Partitio…

Retrofit vs Feign: 介紹、對比及示例

1. 介紹 Retrofit Retrofit 是 Square 公司開發的一個類型安全的 HTTP 客戶端庫&#xff0c;主要用于 Android 和 Java 應用。它將 HTTP API 轉換為 Java 接口&#xff0c;通過注解來描述 HTTP 請求。 主要特點: 基于注解的 API 定義支持同步和異步調用支持多種數據格式轉換…

SpringBoot整合MyBatis-Plus:零XML實現高效CRUD

前言 作為一名開發者&#xff0c;數據庫操作是我們日常工作中不可或缺的部分。傳統的MyBatis雖然強大&#xff0c;但需要編寫大量XML映射文件&#xff0c;這在快速開發的今天顯得效率不足。MyBatis-Plus&#xff08;簡稱MP&#xff09;作為MyBatis的增強工具&#xff0c;在保留…