開源的語音合成大模型-Cosyvoice使用介紹

1 模型概覽

CosyVoice 是由阿里巴巴達摩院通義實驗室開發的新一代生成式語音合成大模型系列,其核心目標是通過大模型技術深度融合文本理解與語音生成,實現高度擬人化的語音合成體驗。該系列包含初代?CosyVoice?及其升級版?CosyVoice 2.0,兩者在技術架構、性能和應用場景上均有顯著差異。關鍵突破包括:

  • MOS評分達5.53,接近真人發音水平;

  • 首包延遲低至150ms,較傳統方案降低60%;

  • 支持多種語言及方言(中/英/日/韓/粵語/四川話等),支持中英混合語句自然合成;

  • 集成情感控制環境音效插入(如[laughter])等細粒度生成能力。

2 不同應用場景的模型功能

模型名稱核心功能使用場景技術特點

CosyVoice-300M

零樣本音色克隆、跨語言生成

個性化語音克隆、跨語種配音(如中文→英文)

僅需 3s 參考音頻;支持 5 種語言;無預置音色,需用戶提供樣本

CosyVoice-300M-Instruct

細粒度情感/韻律控制(富文本指令)

情感配音(如廣告、有聲書)、語氣細節調整

支持自然語言指令(如“歡快語氣”)及富文本標簽(如 <laugh>)159

CosyVoice-300M-SFT

預置音色合成(無需樣本)

快速生成固定音色(如教育課件、導航語音)

內置 7 種預訓練音色(中/英/日/韓/粵男女聲);無需克隆樣本

CosyVoice2-0.5B

多語言流式語音合成、低延遲實時響應

直播、實時對話客服、雙向語音交互

0.5B 參數量;支持雙向流式合成(首包延遲 ≤150ms);多種語言支持

? ? ? ? 用戶可以根據自己不同的業務需求選擇不同的模型

3 不同場景的demo

3.1?CosyVoice-300M

import sys
sys.path.append('third_party/Matcha-TTS')
from cosyvoice.cli.cosyvoice import CosyVoice, CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio#cosyvoice = CosyVoice('/models/iic/CosyVoice-300M', load_jit=False, load_trt=False, fp16=False)def inference_zero_shot_300M(cosyvoice,tts_text):prompt_speech_16k = load_wav('asset/zero_shot_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_zero_shot(tts_text, '希望你以后能夠做的比我還好呦。', prompt_speech_16k, stream=False)):torchaudio.save('asset/test_data/zero_shot3_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)# cross_lingual usage
def inference_cross_lingual_300M(cosyvoice,tts_text):prompt_speech_16k = load_wav('asset/cross_lingual_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_cross_lingual(tts_text, prompt_speech_16k, stream=False)):torchaudio.save('asset/test_data/cross_lingual_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)# vc usage
def inference_vc_300M(cosyvoice,tts_text):prompt_speech_16k = load_wav('asset/zero_shot_prompt.wav', 16000)source_speech_16k = load_wav('asset/cross_lingual_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_vc(source_speech_16k, prompt_speech_16k, stream=False)):torchaudio.save('asset/test_data/vc_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)if __name__ == '__main__':cosyvoice = CosyVoice('hub/models/iic/CosyVoice-300M(模型地址)') # or change to pretrained_models/CosyVoice-300M-25Hz for 25Hz inferenceinference_zero_shot_300M(cosyvoice,'今天是個好日子,我們一起去旅游吧')inference_cross_lingual_300M(cosyvoice,'今天是個好日子,我們一起去旅游吧')

3.2?CosyVoice-300M-Instruct

import sys
sys.path.append('third_party/Matcha-TTS')
from cosyvoice.cli.cosyvoice import CosyVoice, CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudiodef inference_instruct(cosyvoice,tts_text):cosyvoice = CosyVoice('/hub/models/iic/CosyVoice-300M-Instruct')# instruct usage, support <laughter></laughter><strong></strong>[laughter][breath]for i, j in enumerate(cosyvoice.inference_instruct(tts_text, '中文男', 'Theo \'Crimson\', is a fiery, passionate rebel leader. Fights with fervor for justice, but struggles with impulsiveness.', stream=False)):torchaudio.save('asset/cosyvoice-instruct/instruct_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)if __name__ == '__main__':cosyvoice = CosyVoice('/hub/models/iic/CosyVoice-300M') # or change to pretrained_models/CosyVoice-300M-25Hz for 25Hz inference#nference_zero_shot_300M(cosyvoice,'今天是個好日子,我們一起去旅游吧')inference_instruct(cosyvoice,'在面對挑戰時,他展現了非凡的<strong>勇氣</strong>與<strong>智慧</strong>。')

3.3?CosyVoice-300M-SFT

import sys
sys.path.append('third_party/Matcha-TTS')
from cosyvoice.cli.cosyvoice import CosyVoice, CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio# sft usage
def inference_sft(cosyvoice,tts_text):print(cosyvoice.list_available_spks())# change stream=True for chunk stream inferencefor i, j in enumerate(cosyvoice.inference_sft(tts_text, '中文女', stream=False)):torchaudio.save('asset/cosyvoice-sft/sft_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)if __name__ == '__main__':cosyvoice = CosyVoice('/hub/models/iic/CosyVoice-300M-SFT', load_jit=False, load_trt=False, fp16=False)inference_sft(cosyvoice,'今天是個好日子,我們一起去旅游吧')

3.4?CosyVoice2-0.5B

import sys
sys.path.append('third_party/Matcha-TTS')
from cosyvoice.cli.cosyvoice import CosyVoice, CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio# zero_shot usage
def inference_zero_shot_05B(cosyvoice,tts_text):prompt_speech_16k = load_wav('asset/zero_shot_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_zero_shot(tts_text, '希望你以后能夠做的比我還好呦。', prompt_speech_16k, stream=False)):torchaudio.save('asset/CosyVoice2-05B/zero_shot_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)# fine grained control, for supported control, check cosyvoice/tokenizer/tokenizer.py#L248
def inference_cross_lingual_05B(cosyvoice,tts_text):prompt_speech_16k = load_wav('asset/zero_shot_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_cross_lingual(tts_text, prompt_speech_16k, stream=False)):torchaudio.save('asset/CosyVoice2-05B/fine_grained_control_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)# instruct usage
def inference_instruct2_05B(cosyvoice,tts_text):prompt_speech_16k = load_wav('asset/zero_shot_prompt.wav', 16000)for i, j in enumerate(cosyvoice.inference_instruct2(tts_text, '用四川話說這句話', prompt_speech_16k, stream=False)):torchaudio.save('asset/CosyVoice2-05B/instruct1_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)if __name__ == '__main__':cosyvoice = CosyVoice2('/hub/models/iic/CosyVoice2-0.5B', load_jit=False, load_trt=False, fp16=False)tts_text = '收到好友從遠方寄來的生日禮物,那份意外的驚喜與深深的祝福讓我心中充滿了甜蜜的快樂,笑容如花兒般綻放。'#inference_zero_shot_05B(cosyvoice,tts_text)#inference_cross_lingual_05B(cosyvoice,tts_text)inference_instruct2_05B(cosyvoice,tts_text)

以上為簡單的demo,實測效果很好了,可以使用CosyVoice框架提供的http接口,也可以自己使用fastapi定制化開發。
CosyVoice代碼倉庫地址:https://github.com/FunAudioLLM/CosyVoice.git
CosyVoice2-0.5B模型魔塔地址:CosyVoice語音生成大模型2.0-0.5B
?

推薦一個好用的JSON工具:JSON在線

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

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

相關文章

深度學習·CLIP

CLIP 數據大小 4億個文本-圖像對&#xff0c;而且是高質量的 預訓練方法 Text encoder“The text sequence is bracketed with [SOS] and [EOS] tokens and the activations of the highest layer of the transformer at the [EOS] token are used as the feature representati…

美光MTFC8GAKAJCN-4M_IT型eMMC應用介紹

1.1 芯片訂購信息美光MTFC8GAKAJCN-4M_IT型eMMC&#xff0c;容量8GB&#xff0c;153-ball VFBGA封裝。1.2 eMMC料號含義2.1 特性?多媒體卡&#xff08;MMC&#xff09;控制器和NAND閃存?153球FBGA封裝&#xff08;符合RoHS標準&#xff0c;環保封裝&#xff09;?VCC&#xf…

面向對象分析與設計40講(6)設計原則之開閉原則

文章目錄 一、概念 二、示例(C++ 實現) 1. 違反開閉原則的示例 2. 遵循開閉原則的示例 一、概念 開閉原則(Open-Closed Principle,OCP)是面向對象設計中的重要原則,由 Bertrand Meyer 提出,核心思想可以概括為:對擴展開放,對修改關閉。 具體來說,一個軟件實體(如類…

[Linux入門] Linux 網絡設置入門:從查看、測試到配置全攻略

目錄 一、查看網絡信息&#xff1a;了解你的網絡狀態 1??核心工具&#xff1a;ip命令&#xff08;替代ifconfig&#xff09; <1> 基本語法&#xff1a; <2> 實用操作示例&#xff1a; 2??查看路由表&#xff1a;route命令 3??查看網絡連接狀態&#xf…

TyFlow:三維領域的粒子特效革命者

在動態模擬與視覺特效領域&#xff0c;??TyFlow?? 作為 3ds Max 中誕生的一款革命性粒子系統插件&#xff08;后來也支持獨立開發&#xff09;&#xff0c;正在徹底改變藝術家們創作復雜動力學效果的方式。它以其無與倫比的靈活性、強大的計算能力和開創性的技術理念&#…

本地一鍵部署 Spark-TTS,支持Mac和Windows

Spark-TTS是一個文本轉語音(TTS)的項目&#xff0c;零樣本語音克隆逼真&#xff0c;多語言支持&#xff0c;語音參數可控。使用魔當(LM Downloader)&#xff0c;可以實現Spark-TTS的本地一鍵部署。 注意 如果使用Windows&#xff0c;推薦用NVIDIA顯卡&#xff0c;生成速度較快…

傳統時間:Date日期類,SimpleDateFormat,Calendar

目錄DateSimpleDateFormatCalendarDate 代表的是日期和時間 常見構造器和方法&#xff1a; 構造器說明public Date()創建一個Date對象&#xff0c;代表的是系統當前此刻日期時間public Date(long time)把時間毫秒值轉換成Date日期對象 常見方法說明public long getTime()返…

linus 環境 tomcat啟動日志分隔

1.定義可執行文件&#xff1a;tomcatlog9090.sh fsize$(ls -l /data/tomcat-cms_9090/logs/catalina.out | cut -d -f 5)if [ $fsize -gt 40960000 ]; thenextdatedate %Y_%m_%d_%k_%Mdatapath/data/tomcat-cms_9090/logscd /data/tomcat-cms_9090/logscp catalina.out catali…

解密 Base64 編碼:從原理到應用的全面解析

在網絡傳輸、數據存儲的世界里&#xff0c;Base64 編碼如同一座隱形的橋梁&#xff0c;默默承擔著重要的角色。當你發送郵件附件、在網頁中嵌入圖片&#xff0c;或是處理一些特殊格式的數據時&#xff0c;都可能在不知不覺中與它打交道。那么&#xff0c;Base64 編碼究竟是什么…

C++實現Adam與RMSProp優化算法

C++中實現Adam和RMSProp優化算法 以下是一些關于C++中實現Adam和RMSProp優化算法的實用示例和資源,涵蓋不同場景和應用。由于篇幅限制,完整代碼,但提供關鍵實現片段、庫使用方法和學習資源。 基礎Adam優化器實現 Adam優化器實現 #include <vector> #include <c…

【物聯網】基于樹莓派的物聯網開發【16】——樹莓派GPIO控制LED燈實驗

場景介紹 掌握GPIO引腳連接雙色LED模塊&#xff0c;編寫Python程序代碼&#xff0c;實現GPIO控制點亮雙色LED燈&#xff01; 窗口查看引腳編號 1、在終端輸入指令&#xff1a;pinout2、使用樹莓派輸入gpio readall命令查看pin狀態 輸入以下命令安裝Git sudo apt install git-co…

低延遲網絡中 gRPC 客戶端的隱藏瓶頸及解決方案

低延遲網絡中 gRPC 客戶端的隱藏瓶頸及解決方案 在分布式系統性能優化領域,有一句名言:"優化非瓶頸環節都是徒勞"(Eliyahu M. Goldratt)。gRPC 作為廣泛使用的高性能服務間通信框架,在特定場景下也會出現容易被忽略的客戶端瓶頸。本文將解析這一問題的本質、復現…

打印機因為網絡問題不能用,接到交換機后解決

之前的問題可參考&#xff1a; 打印機不能用&#xff1a;網絡能ping通&#xff0c;并不表示網絡正常好用_能ping通打印機卻打印錯誤-CSDN博客 今天同事要打印個東西&#xff0c;問我打印機能不能用。我就奇怪了&#xff1a;之前不是好好的嗎&#xff1f;一問&#xff0c;現在…

ubuntu22.04 錄視屏軟件推薦

4. VokoscreenNG功能&#xff1a;VokoscreenNG 是一個多功能的桌面錄屏工具&#xff0c;支持錄制整個屏幕、特定區域、窗口&#xff0c;并可以錄制系統聲音和麥克風。安裝&#xff1a;sudo apt update sudo apt install vokoscreen-ng優點&#xff1a;界面友好&#xff0c;操作…

1、黑馬點評復盤(短信登錄-Session或Redis實現)

短信登錄分別使用session和redis實現 1、基于Session實現登錄 主要功能&#xff1a; 發送驗證碼短信驗證碼登錄、注冊校驗登錄狀態 1.1 實現發送短信驗證碼功能 1.1.1 業務邏輯 用戶在提交手機號后&#xff0c;會校驗手機號是否合法&#xff0c;如果不合法&#xff0c;則要求…

文件管理困境如何破?ZFile+cpolar打造隨身云盤新體驗

文章目錄前言【視頻教程】1.關于ZFile2.本地部署ZFile3.使用ZFile4.ZFile的配置5.cpolar內網穿透工具安裝6.創建遠程連接公網地址7.固定ZFile公網地址前言 每天的數字生活如同在數據海洋中航行&#xff0c;工作文檔、旅行照片、學習資料…這些重要資產是否總讓你感到難以掌控&…

開源數據庫E-R圖繪制工具分享

1. 特點&#xff1a; 可直接使用&#xff0c;無需注冊賬號 無狀態的純前端工具&#xff0c;數據會存放在瀏覽器中。設計完成后可將數據保存到本地 2. 使用場景&#xff1a; 描述E-R圖&#xff0c;對數據庫表關系進行直觀分析 3. 效果&#xff1a; 4. 測試數據 用來測試的建…

安卓 Audio Thread 分析

一、PlaybackThread::threadLoop_write 1.變量 mFramesWritten 類型: int64_t 作用: 記錄從線程啟動以來已寫入音頻設備的幀數&#xff08;不包括掛起狀態下的寫入&#xff09; mSuspendedFrames 類型: int64_t 作用: 記錄線程在掛起&#xff08;suspended&#xff09;狀態下模…

JavaWeb_原始項目初識(一)

Students2025項目&#xff08;一&#xff09; 原始ServletJSP架構項目初步搭建 jsp項目已被淘汰&#xff0c;在此學習目的是了解未來學習的新技術的底層原理項目結構&#xff1a;項目結構介紹&#xff1a; 目前階段只完成了初始化的后端搭建&#xff0c;實現從本地數據庫獲取數…

前端_CSS復習

文章目錄CSS復習1. css三種引入方式1.1 行內樣式常用樣式&#xff1a;1.2頁內樣式常見選擇器&#xff1a;1. 標記選擇器2. id選擇器3. 類選擇器&#xff08;最常用&#xff09;4. 星號選擇器&#xff0c;頻率很低5. 復合選擇器6. 偽類選擇器&#xff1a;7. 子元素偽類1.3引入外…