Home
Login
2noise/ChatTTS

專為對話場景設計的生成式語音模型,支持中英文混合輸入和多說話人能力

AGPL-3.0Python 36.8k2noise Last Updated: 2025-05-23
https://github.com/2noise/ChatTTS

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將在語音合成領域發揮越來越重要的作用。