用於日常對話的生成語音模型。
English |簡體中文|日本文| Русский | 俄羅斯西班牙語|法語| 한국어
筆記
該存儲庫包含演算法基礎結構和一些簡單的範例。
提示
對於擴展的最終用戶產品,請參閱社區維護的索引庫 Awesome-ChatTTS。
ChatTTS是專門針對LLM助理等對話場景設計的文字轉語音模型。
英語
中國人
即將推出...
詳細介紹可以參考B站的影片。
對話式 TTS :ChatTTS 針對基於對話的任務進行了最佳化,可實現自然且富有表現力的語音合成。它支援多個揚聲器,促進互動式對話。
細粒度控制:此模型可以預測和控制細粒度的韻律特徵,包括笑聲、停頓和感嘆詞。
更好的韻律:ChatTTS 在韻律方面超越了大多數開源 TTS 模型。我們提供預訓練模型來支援進一步的研究和開發。
重要的
發布的模型僅用於學術目的。
主模型使用10萬+小時的中英文音訊資料進行訓練。
HuggingFace上的開源版本是一個 40,000 小時的預訓練模型,沒有 SFT。
開源 40k 小時基礎模型和 spk_stats 檔案。
串流音訊生成。
開源 DVAE 編碼器和零樣本推斷程式碼。
多重情緒控制。
ChatTTS.cpp(歡迎2noise
組織中的新儲存庫)
該程式碼在AGPLv3+
許可證下發布。
該模型在CC BY-NC 4.0
許可下發布。它僅供教育和研究用途,不得用於任何商業或非法目的。作者不保證資訊的準確性、完整性或可靠性。本存儲庫中使用的資訊和數據僅用於學術和研究目的。數據來自公開來源,作者不主張數據的任何所有權或版權。
ChatTTS 是一個功能強大的文字轉語音系統。然而,負責任且合乎道德地利用這項技術非常重要。為了限制ChatTTS的使用,我們在40,000小時的模型訓練過程中添加了少量高頻噪聲,並儘可能使用MP3格式壓縮音訊質量,以防止惡意行為者可能利用它進行犯罪目的。同時,我們內部訓練了一個偵測模型,並規劃未來開源。
GitHub 問題/PR 始終受到歡迎。
有關模型和路線圖的正式諮詢,請透過[email protected]與我們聯繫。
第一組808364215
二組230696694
第三組933639842
四組608667975
點擊此處加入。
git 克隆 https://github.com/2noise/ChatTTScd ChatTTS
pip install --upgrade -r requests.txt
conda 創建-n chattts python=3.11 conda 啟動聊天 pip install -r 要求.txt
pip install safetensors vllm==0.2.7 torchaudio
警告
不要安裝! TransformerEngine 的適配目前正在開發中,目前無法正常運作。僅出於開發目的安裝它。請參閱 #672 #676 的更多詳細信息
筆記
安裝過程非常緩慢。
pip install git+https://github.com/NVIDIA/TransformerEngine.git@stable
警告
不要安裝!目前FlashAttention-2會根據這個問題降低生成速度。僅出於開發目的安裝它。
筆記
請參閱 Hugging Face 文件中支援的裝置。
pip install flash-attn --no-build-isolation
執行以下命令時,請確保您位於專案根目錄下。
python 範例/web/webui.py
它將音訊保存到
./output_audio_n.mp3
python example/cmd/run.py “您的文字 1.” “你的文字2。”
從 PyPI 安裝穩定版本
pip 安裝 ChatTTS
從 GitHub 安裝最新版本
pip install git+https://github.com/2noise/ChatTTS
在開發模式下從本機目錄安裝
pip install -e 。
import ChatTTSimport torchimport torchaudiochat = ChatTTS.Chat()chat.load(compile=False) # 設定為True 以獲得更好的效能texts = ["PUT YOUR 1st TEXT HERE", "PUT YOUR 2nd TEXT HERE"]wavs = chat .infer(texts )for i in range(len(wavs)):""" 在torchaudio 的某些版本中,第一行有效,但在其他版本中,第二行也有效。"""try:torchaudio .save(f"basic_output{i }.wav", torch.from_numpy(wavs[i]).unsqueeze(0), 24000)除了:torchaudio.save(f"basic_output{i}.wav", torch.from_py( wavs[i]), 24000)
##################################### 從Gaussian 取樣說話者.rand_spk = chat.sample_random_speaker() print (rand_spk) # 儲存以供以後音色恢復params_infer_code = ChatTTS.Chat.InferCodeParams(spk_emb = rand_spk, # 添加採樣的揚聲器溫度= .3, # 使用自訂溫度top_P = 0.7, # 頂部P 解碼top_K = 20, # 頂部K 解碼)# ##################################### 對於句子級手動控制。 oral_(0-9), smile_(0-2), break_(0-7) # 在文字中產生特殊標記進行合成.params_refine_text = ChatTTS.Chat.RefineTextParams(prompt='[oral_2][laugh_0][break_6] ', )wavs = chat.infer(文本,params_refine_text=params_refine_text,params_infer_code=params_infer_code, )####################################### 對於字級手動控制。 [uv_break ]你最喜歡的英文食物?行有效,但在其他版本中,第二行也是如此。 .save("word_level_output.wav" , torch.from_numpy(wavs[0]), 24000)
input_en = """chat T T S 是專為對話應用程式設計的文字轉語音模型。[uv_break]它支援混合語言輸入[uv_break]並提供多揚聲器功能,可精確控制[uv_break]laughter[uv_break][laugh ] 、[uv_break]停頓、[uv_break]和語調。 replace(' n', '') # 英語還是實驗性的.params_refine_text = ChatTTS.Chat.RefineTextParams(prompt='[oral_2][laugh_0][break_4]', )audio_array_en = chat.infer(inputs_en, params_refine_text=params_refine_text)torchaudio.save("self_introduction_output.wav", torch.from_numpy(audio_array_en[0]), 24000)
男性演講者 | 女演講者 |
介紹_en_m.webm | 介紹_en_f.webm |
對於 30 秒的音訊剪輯,至少需要 4GB GPU 記憶體。對於 4090 GPU,它每秒可以產生對應於大約 7 個語義標記的音訊。實時係數 (RTF) 約為 0.3。
這是自回歸模型(對於樹皮和山谷)通常會出現的問題。一般情況下很難避免。人們可以嘗試多個樣品來找到合適的結果。
在目前發布的模型中,唯一的令牌級控制單元是[laugh]
、 [uv_break]
和[lbreak]
。在未來的版本中,我們可能會開源具有額外情緒控制功能的模型。
bark、XTTSv2 和 valle 透過自回歸式系統展示了出色的 TTS 結果。
Fish-Speech 揭示了 GVQ 作為 LLM 建模音訊分詞器的能力。
vocos 用作預先訓練的聲碼器。
wlu-audio 實驗室用於早期演算法實驗。