🚀 Dia - 文本轉語音模型
Dia是由Nari Labs創建的一個擁有16億參數的文本轉語音模型。它能夠直接從文本轉錄中生成高度逼真的對話,還可根據音頻條件控制輸出的情感和語調,甚至能生成笑聲、咳嗽聲等非語言交流內容。
🚀 快速開始
此操作將打開一個Gradio用戶界面供你使用。
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
若你尚未預先安裝uv
,可按以下步驟操作:
git clone https://github.com/nari-labs/dia.git
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
請注意,該模型未針對特定語音進行微調,因此每次運行模型時可能會得到不同的語音。你可以通過添加音頻提示(相關指南即將推出,目前可在Gradio上嘗試第二個示例)或固定隨機種子來保持說話者的一致性。
✨ 主要特性
- 對話生成:通過
[S1]
和[S2]
標籤生成對話。
- 非語言交流生成:能夠生成如
(laughs)
、(coughs)
等非語言交流內容。以下非語言標籤會被識別,但可能會產生意外輸出:(laughs), (clears throat), (sighs), (gasps), (coughs), (singing), (sings), (mumbles), (beep), (groans), (sniffs), (claps), (screams), (inhales), (exhales), (applause), (burps), (humming), (sneezes), (chuckle), (whistles)
。
- 語音克隆:詳情請參考
example/voice_clone.py
。在Hugging Face空間中,你可以上傳想要克隆的音頻,並在腳本前放置其轉錄文本。請確保轉錄文本符合要求的格式,模型將僅輸出腳本內容。
💻 使用示例
基礎用法
import soundfile as sf
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
text = "[S1] Dia is an open weights text to dialogue model. [S2] You get full control over scripts and voices. [S1] Wow. Amazing. (laughs) [S2] Try it now on Git hub or Hugging Face."
output = model.generate(text)
sf.write("simple.mp3", output, 44100)
一個pypi包和一個可用的命令行工具即將推出。
🔧 技術細節
硬件與推理速度
Dia僅在GPU(pytorch 2.0+,CUDA 12.6)上進行了測試,CPU支持即將添加。首次運行時會花費較長時間,因為還需要下載Descript Audio Codec。
在企業級GPU上,Dia可以即時生成音頻;在較舊的GPU上,推理時間會較慢。例如,在A4000 GPU上,Dia大約每秒可生成40個令牌(86個令牌相當於1秒的音頻)。torch.compile
將提高支持的GPU的推理速度。
完整版本的Dia運行大約需要10GB的顯存,未來將添加量化版本。
如果你沒有可用的硬件,或者想體驗更大版本的模型,請加入等待列表。
📄 許可證
本項目採用Apache License 2.0許可協議,詳情請參閱LICENSE文件。
⚠️ 重要提示
本項目提供了一個高保真的語音生成模型,僅供研究和教育使用。嚴禁以下使用方式:
- 身份濫用:未經許可,不得生成與真實個人相似的音頻。
- 虛假內容生成:不得使用此模型生成誤導性內容(如假新聞)。
- 非法或惡意使用:不得將此模型用於非法或有害的活動。
使用此模型即表示你同意遵守相關法律標準和道德責任。我們不對任何濫用行為負責,並堅決反對任何不道德的使用方式。
📚 詳細文檔
待辦事項 / 未來工作
- 支持Docker。
- 優化推理速度。
- 添加量化以提高內存效率。
貢獻
我們是一個由1名全職和1名兼職研究工程師組成的小團隊,非常歡迎任何形式的貢獻!請加入我們的Discord服務器參與討論。
致謝