ChatTTS是由2noise團隊開發的一款專門針對對話場景設計的生成式文本轉語音(TTS)模型。該項目在GitHub上已獲得超過35,000+星標,是目前最受歡迎的開源TTS項目之一。
項目地址: https://github.com/2noise/ChatTTS
開發團隊: 2noise
開源協議: AGPLv3+ (代碼) / CC BY-NC 4.0 (模型)
主要語言支持: 中文、英文
ChatTTS的設計初衷是為LLM助手等對話應用提供自然、流暢的語音交互體驗,相比傳統TTS模型,它在對話場景下表現更加出色。
[laugh]
、[laugh_0-2]
[uv_break]
、[lbreak]
、[break_0-7]
[oral_0-9]
# 克隆項目
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,
)
ChatTTS作為專門針對對話場景設計的TTS模型,在以下方面表現突出:
🎯 專業性: 專門為對話場景優化,在聊天機器人、AI助手等應用中表現優異
🚀 技術先進性: 採用最新的深度學習技術,在韻律控制和多說話人支持方面領先
🌟 開源價值: 提供完整的開源解決方案,降低了高質量TTS技術的使用門檻
🤝 社區活躍: 擁有活躍的開發者社區和豐富的生態資源
⚡ 實用性: 提供了從基礎使用到高級控制的完整功能,滿足不同層次的需求
ChatTTS的出現填補了對話場景專用TTS模型的空白,為構建更自然的人機語音交互體驗提供了強有力的技術支撐。隨著技術的不斷發展和社區的持續貢獻,相信ChatTTS將在語音合成領域發揮越來越重要的作用。