2noise/ChatTTSView GitHub Homepage for Latest Official Releases
專為對話場景設計的生成式語音模型,支持中英文混合輸入和多說話人能力
AGPL-3.0PythonChatTTS2noise 37.5k Last Updated: July 06, 2025
ChatTTS - 專業對話場景文本轉語音模型
項目概述
ChatTTS是由2noise團隊開發的一款專門針對對話場景設計的生成式文本轉語音(TTS)模型。該項目在GitHub上已獲得超過35,000+星標,是目前最受歡迎的開源TTS項目之一。
項目地址: https://github.com/2noise/ChatTTS
開發團隊: 2noise
開源協議: AGPLv3+ (代碼) / CC BY-NC 4.0 (模型)
主要語言支持: 中文、英文
ChatTTS的設計初衷是為LLM助手等對話應用提供自然、流暢的語音交互體驗,相比傳統TTS模型,它在對話場景下表現更加出色。
核心功能與特性
🎯 對話優化設計
- 專為對話場景優化: 針對聊天機器人、LLM助手等對話應用進行了專門優化
- 自然對話體驗: 生成的語音更加自然、流暢,適合人機對話場景
- 交互式對話: 支持多輪對話中的語音連貫性
🎭 多說話人支持
- 多說話人能力: 支持不同說話人之間的切換,實現多角色對話
- 說話人採樣: 可以從高斯分佈中隨機採樣說話人特徵
- 音色控制: 支持自定義和固定特定音色,保持角色一致性
🎵 精細化韻律控制
- 笑聲控制: 支持添加不同程度的笑聲效果
[laugh]
、[laugh_0-2]
- 停頓控制: 精確控制語音中的停頓和間隔
[uv_break]
、[lbreak]
、[break_0-7]
- 語調控制: 支持口語化程度調節
[oral_0-9]
- 情感表達: 能夠預測和控制細粒度的韻律特徵,包括語調變化
🌐 多語言支持
- 中英文混合: 原生支持中英文混合輸入,無需語言標記
- 語言自適應: 自動識別和處理不同語言的文本內容
- 未來擴展: 計劃支持更多語言
⚡ 技術優勢
- 先進架構: 基於自迴歸模型架構,借鑒了Bark、Valle等先進技術
- 韻律優勢: 在韻律表現方面超越了大多數開源TTS模型
- 高質量預訓練: 主模型使用10萬+小時的中英文音頻數據訓練
- 開源友好: 提供40,000小時預訓練基礎模型供研究使用
模型規格與性能
訓練數據
- 主模型: 10萬+小時中英文音頻數據訓練
- 開源版本: 4萬小時預訓練模型(未經SFT)
- 數據來源: 公開可用的音頻數據源
性能指標
- GPU要求: 生成30秒音頻至少需要4GB GPU內存
- 生成速度: 4090 GPU約每秒生成7個語義token
- 實時因子(RTF): 約0.3
- 音頻質量: 24kHz採樣率輸出
硬件要求
- 最低配置: 4GB+ GPU內存
- 推薦配置: RTX 3090/4090等高端顯卡
- CPU: 支持多核處理器加速
- 內存: 建議16GB+系統內存
安裝與使用
快速安裝
# 克隆項目
git clone https://github.com/2noise/ChatTTS
cd ChatTTS
# 安裝依賴
pip install --upgrade -r requirements.txt
# 或使用conda環境
conda create -n chattts python=3.11
conda activate chattts
pip install -r requirements.txt
基礎使用示例
import ChatTTS
import torch
import torchaudio
# 初始化模型
chat = ChatTTS.Chat()
chat.load(compile=False) # 設為True可獲得更好性能
# 文本轉語音
texts = ["你好,我是ChatTTS", "Hello, I am ChatTTS"]
wavs = chat.infer(texts)
# 保存音頻文件
for i, wav in enumerate(wavs):
torchaudio.save(f"output_{i}.wav", torch.from_numpy(wav).unsqueeze(0), 24000)
高級控制功能
# 隨機採樣說話人
rand_spk = chat.sample_random_speaker()
# 設置推理參數
params_infer_code = ChatTTS.Chat.InferCodeParams(
spk_emb=rand_spk, # 說話人嵌入
temperature=0.3, # 溫度參數
top_P=0.7, # top-P採樣
top_K=20, # top-K採樣
)
# 設置文本精煉參數
params_refine_text = ChatTTS.Chat.RefineTextParams(
prompt='[oral_2][laugh_0][break_6]', # 添加韻律控制
)
# 生成語音
wavs = chat.infer(
texts,
params_refine_text=params_refine_text,
params_infer_code=params_infer_code,
)
應用場景
🤖 AI助手與聊天機器人
- LLM對話系統的語音輸出
- 智能客服系統
- 虛擬助手應用
📚 教育與培訓
- 在線教育平台
- 語言學習應用
- 有聲讀物製作
🎬 內容創作
- 播客製作
- 視頻配音
- 音頻內容生成
🏢 企業應用
- 會議摘要播報
- 通知公告語音化
- 無障礙輔助功能
技術架構
核心組件
- 文本編碼器: 處理輸入文本的語義理解
- 韻律預測器: 預測和控制語音的韻律特徵
- 聲碼器: 將特徵轉換為高質量音頻波形
- 說話人編碼器: 處理多說話人特徵嵌入
模型特點
- 自迴歸架構: 基於Transformer的自迴歸生成模型
- 端到端訓練: 統一的端到端訓練框架
- 多模態融合: 文本、韻律、說話人信息的有效融合
注意事項與限制
使用限制
- 學術用途: 發布的模型僅限學術研究使用
- 商業限制: 不得用於商業或非法用途
- 倫理考量: 添加了高頻噪聲以防止惡意使用
技術限制
- 音頻長度: 較長音頻可能出現質量下降
- 計算需求: 需要較高的GPU計算資源
- 語言支持: 目前主要支持中英文
常見問題
- 生成速度: 可通過優化硬件配置和參數調整改善
- 音頻質量: MP3壓縮格式可能影響最終質量
- 穩定性: 自迴歸模型可能出現不穩定輸出
總結
ChatTTS作為專門針對對話場景設計的TTS模型,在以下方面表現突出:
🎯 專業性: 專門為對話場景優化,在聊天機器人、AI助手等應用中表現優異
🚀 技術先進性: 採用最新的深度學習技術,在韻律控制和多說話人支持方面領先
🌟 開源價值: 提供完整的開源解決方案,降低了高質量TTS技術的使用門檻
🤝 社區活躍: 擁有活躍的開發者社區和豐富的生態資源
⚡ 實用性: 提供了從基礎使用到高級控制的完整功能,滿足不同層次的需求
ChatTTS的出現填補了對話場景專用TTS模型的空白,為構建更自然的人機語音交互體驗提供了強有力的技術支撐。隨著技術的不斷發展和社區的持續貢獻,相信ChatTTS將在語音合成領域發揮越來越重要的作用。