日常会話のための生成音声モデル。
English |简体中文|日本語| Русский |スペイン語|フランセ| 한국어
注記
このリポジトリには、アルゴリズム インフラストラクチャといくつかの簡単な例が含まれています。
ヒント
拡張エンドユーザー製品については、コミュニティが管理するインデックス リポジトリ Awesome-ChatTTS を参照してください。
ChatTTS は、LLM アシスタントなどの対話シナリオ向けに特別に設計されたテキスト読み上げモデルです。
英語
中国語
近日公開...
詳細な説明については、Bilibili のこのビデオを参照してください。
会話型 TTS : ChatTTS は対話ベースのタスク用に最適化されており、自然で表現力豊かな音声合成を可能にします。複数のスピーカーをサポートし、インタラクティブな会話を促進します。
きめ細かい制御: モデルは、笑い、間、間投詞などのきめ細かい韻律特徴を予測および制御できます。
韻律の向上: ChatTTS は、韻律の点でほとんどのオープンソース TTS モデルを上回っています。さらなる研究開発をサポートするために、事前トレーニングされたモデルを提供します。
重要
リリースされたモデルは学術目的のみです。
メイン モデルは、100,000 時間以上の中国語と英語の音声データでトレーニングされています。
HuggingFaceのオープンソース バージョンは、SFT を含まない 40,000 時間の事前トレーニング済みモデルです。
40,000 時間ベースのモデルと spk_stats ファイルをオープンソース化します。
ストリーミングオーディオの生成。
オープンソースの DVAE エンコーダとゼロ ショット推論コード。
マルチ感情コントロール。
ChatTTS.cpp ( 2noise
組織の新しいリポジトリは歓迎されます)
コードはAGPLv3+
ライセンスに基づいて公開されています。
このモデルはCC BY-NC 4.0
ライセンスに基づいて公開されています。教育および研究での使用を目的としており、商業目的または違法な目的で使用しないでください。著者は情報の正確性、完全性、信頼性を保証しません。このリポジトリで使用される情報とデータは、学術および研究目的のみに使用されます。データは公的に入手可能なソースから取得されており、作成者はデータに対する所有権や著作権を主張しません。
ChatTTS は強力なテキスト読み上げシステムです。ただし、このテクノロジーを責任を持って倫理的に使用することが非常に重要です。 ChatTTS の使用を制限するために、40,000 時間のモデルのトレーニング中に少量の高周波ノイズを追加し、MP3 形式を使用してオーディオ品質を可能な限り圧縮し、悪意のある攻撃者が犯罪に使用する可能性を防ぎました。目的。同時に、検出モデルを社内でトレーニングし、将来的にはオープンソース化する予定です。
GitHub の問題/PR はいつでも歓迎されます。
モデルとロードマップに関する正式なお問い合わせについては、 [email protected]までご連絡ください。
グループ1、808364215
グループ 2 、230696694
グループ 3 、933639842
グループ4、608667975
ここをクリックして参加してください。
git clone https://github.com/2noise/ChatTTScd ChatTTS
pip install --upgrade -rrequirements.txt
conda create -n chattts python=3.11 condaはチャットをアクティブ化します pip install -r 要件.txt
pip installsafetensors vllm==0.2.7 torchaudio
警告
インストールしないでください。 TransformerEngine の適応は現在開発中のため、現在は適切に実行できません。開発目的でのみインストールしてください。詳細については #672 #676 をご覧ください。
注記
インストールプロセスは非常に遅いです。
pip install git+https://github.com/NVIDIA/TransformerEngine.git@stable
警告
インストールしないでください。現在、FlashAttendant-2 では、この問題に応じて生成速度が遅くなります。開発目的でのみインストールしてください。
注記
Hugging Face Doc でサポートされているデバイスを参照してください。
pip install flash-attn --no-build-isolation
以下のコマンドを実行するときは、プロジェクトのルート ディレクトリの下にいることを確認してください。
Python の例/web/webui.py
オーディオを
./output_audio_n.mp3
に保存します。
python Examples/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 = ["1 番目のテキストをここに入れてください", "2 番目のテキストをここに入れてください"]wavs = chat.infer(texts )for i in range(len(wavs)):""" の一部のバージョンではtorchaudio では最初の行は機能しますが、他のバージョンでは 2 行目も機能します。 """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_numpy(wavs[i]), 24000)
#################################### Gaussian.rand_spk = chat.sample_random_speaker()print からスピーカーをサンプルする(rand_spk) # 後で使用するために保存します。 0.7、# トップ P デコードtop_K = 20、# トップ K デコード)#################################文レベルの手動制御の場合。# oral_(0-9)、Laugh_(0-2)、break_(0-7) を使用します。# 合成するテキストに特別なトークンを生成します。size.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, )#################################### ワードレベルの手動 control.text = '[uv_break とは何ですか?] ]あなたの好きなイギリス料理は何ですか?[笑い][lbreak]'wavs = chat.infer(text, Skip_refine_text=True, params_refine_text=params_refine_text, params_infer_code=params_infer_code)"""torchaudio の一部のバージョンでは、最初の行が機能しますただし、他のバージョンでは 2 行目も同様です。"""try:torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]).unsqueeze(0), 24000)除く:torchaudio.save(" word_level_output.wav"、torch.from_numpy(wavs[0])、24000)
inputs_en = """chat T T S は、対話アプリケーション用に設計されたテキスト読み上げモデルです。[uv_break]混合言語入力をサポートし、[uv_break][uv_break]笑い[uv_break][笑い] などの韻律要素を正確に制御するマルチ スピーカー機能を提供します。 ]、[uv_break]一時停止、[uv_break]、イントネーションを調整できます。[uv_break]自然で表情豊かな音声を提供します。[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)
男性スピーカー | 女性スピーカー |
intro_en_m.webm | intro_en_f.webm |
30 秒のオーディオ クリップの場合、少なくとも 4GB の GPU メモリが必要です。 4090 GPU の場合、1 秒あたり約 7 つのセマンティック トークンに相当するオーディオを生成できます。リアルタイム ファクター (RTF) は約 0.3 です。
これは、自己回帰モデル (樹皮と谷の場合) で通常発生する問題です。一般にそれを避けるのは困難です。適切な結果を見つけるために複数のサンプルを試すことができます。
現在リリースされているモデルでは、トークンレベルの制御ユニットは[laugh]
、 [uv_break]
、および[lbreak]
のみです。将来のバージョンでは、追加の感情制御機能を備えたモデルをオープンソース化する可能性があります。
bark、XTTSv2、および valle は、自己回帰スタイルのシステムによる顕著な TTS 結果を示しています。
Fish-speech は、LLM モデリングのオーディオ トークナイザーとしての GVQ の機能を明らかにします。
vocos は、事前トレーニングされたボコーダーとして使用されます。
初期のアルゴリズム実験のための wlu-audio lab。