Ein generatives Sprachmodell für den täglichen Dialog.
Englisch |简体中文|日本語| Russisch | Spanisch | Französisch | 한국어
Notiz
Dieses Repo enthält die Algorithmus-Infrastruktur und einige einfache Beispiele.
Tipp
Informationen zu den erweiterten Endbenutzerprodukten finden Sie im Index-Repo Awesome-ChatTTS, das von der Community verwaltet wird.
ChatTTS ist ein Text-to-Speech-Modell, das speziell für Dialogszenarien wie den LLM-Assistenten entwickelt wurde.
Englisch
chinesisch
Demnächst erhältlich...
Eine ausführliche Beschreibung finden Sie in diesem Video auf Bilibili .
Konversations-TTS : ChatTTS ist für dialogbasierte Aufgaben optimiert und ermöglicht eine natürliche und ausdrucksstarke Sprachsynthese. Es unterstützt mehrere Sprecher und erleichtert so interaktive Gespräche.
Feinkörnige Steuerung : Das Modell könnte feinkörnige prosodische Merkmale, einschließlich Lachen, Pausen und Interjektionen, vorhersagen und steuern.
Bessere Prosodie : ChatTTS übertrifft die meisten Open-Source-TTS-Modelle in Bezug auf Prosodie. Wir stellen vorab trainierte Modelle zur Verfügung, um weitere Forschung und Entwicklung zu unterstützen.
Wichtig
Das veröffentlichte Modell dient ausschließlich akademischen Zwecken.
Das Hauptmodell wurde mit chinesischen und englischen Audiodaten von über 100.000 Stunden trainiert.
Die Open-Source-Version auf HuggingFace ist ein 40.000 Stunden vorab trainiertes Modell ohne SFT.
Open Source des 40.000-Stunden-Basismodells und der spk_stats-Datei.
Streaming-Audiogenerierung.
Open-Source-DVAE-Encoder und Zero-Shot-Inferenzcode.
Multi-Emotions-Controlling.
ChatTTS.cpp (neues Repo in 2noise
org ist willkommen)
Der Code wird unter AGPLv3+
-Lizenz veröffentlicht.
Das Modell wird unter CC BY-NC 4.0
Lizenz veröffentlicht. Es ist für Bildungs- und Forschungszwecke bestimmt und sollte nicht für kommerzielle oder illegale Zwecke verwendet werden. Die Autoren übernehmen keine Gewähr für die Richtigkeit, Vollständigkeit oder Zuverlässigkeit der Informationen. Die in diesem Repo verwendeten Informationen und Daten dienen ausschließlich akademischen und Forschungszwecken. Die Daten stammen aus öffentlich zugänglichen Quellen und die Autoren erheben keinen Anspruch auf Eigentums- oder Urheberrechte an den Daten.
ChatTTS ist ein leistungsstarkes Text-to-Speech-System. Es ist jedoch sehr wichtig, diese Technologie verantwortungsvoll und ethisch zu nutzen. Um die Verwendung von ChatTTS einzuschränken, haben wir während des Trainings des 40.000-Stunden-Modells eine kleine Menge hochfrequenten Rauschens hinzugefügt und die Audioqualität mithilfe des MP3-Formats so weit wie möglich komprimiert, um zu verhindern, dass böswillige Akteure sie möglicherweise für Kriminelle nutzen Zwecke. Gleichzeitig haben wir intern ein Erkennungsmodell trainiert und planen, es in Zukunft als Open Source bereitzustellen.
GitHub-Probleme/PRs sind immer willkommen.
Für formelle Anfragen zum Modell und zur Roadmap kontaktieren Sie uns bitte unter [email protected] .
Gruppe 1 , 808364215
Gruppe 2 , 230696694
Gruppe 3 , 933639842
Gruppe 4 , 608667975
Melden Sie sich an, indem Sie hier klicken.
Git-Klon https://github.com/2noise/ChatTTScd ChatTTS
pip install --upgrade -r Anforderungen.txt
conda create -n chattts python=3.11 Conda aktiviert Chattts pip install -r Anforderungen.txt
pip install safetensors vllm==0.2.7 Torchaudio
Warnung
NICHT INSTALLIEREN! Die Anpassung von TransformerEngine befindet sich derzeit in der Entwicklung und kann derzeit NICHT ordnungsgemäß ausgeführt werden. Installieren Sie es nur zu Entwicklungszwecken. Weitere Einzelheiten finden Sie unter #672 #676
Notiz
Der Installationsprozess ist sehr langsam.
pip install git+https://github.com/NVIDIA/TransformerEngine.git@stable
Warnung
NICHT INSTALLIEREN! Derzeit verlangsamt FlashAttention-2 aufgrund dieses Problems die Generierungsgeschwindigkeit. Installieren Sie es nur zu Entwicklungszwecken.
Notiz
Weitere Informationen zu unterstützten Geräten finden Sie im Hugging Face Doc.
pip install flash-attn --no-build-isolation
Stellen Sie sicher, dass Sie sich im Stammverzeichnis des Projekts befinden, wenn Sie die folgenden Befehle ausführen.
Python-Beispiele/web/webui.py
Es wird Audio in
./output_audio_n.mp3
speichern
python examples/cmd/run.py „Ihr Text 1.“ „Ihr Text 2.“
Installieren Sie die stabile Version von PyPI
pip ChatTTS installieren
Installieren Sie die neueste Version von GitHub
pip install git+https://github.com/2noise/ChatTTS
Vom lokalen Verzeichnis im Entwicklungsmodus installieren
pip install -e .
import ChatTTSimport Torchimport Torchaudiochat = ChatTTS.Chat()chat.load(compile=False) # Für bessere Leistung auf True setzentexts = ["PUT YOUR 1st TEXT HERE", "PUT YOUR 2nd TEXT HERE"]wavs = chat.infer(texts )for i in range(len(wavs)):""" In einigen Versionen von Torchaudio funktioniert die erste Zeile, in anderen Versionen jedoch auch die zweite Zeile. ""try:torchaudio.save(f"basic_output{i}.wav", Torch.from_numpy(wavs[i]).unsqueeze(0), 24000)exclusive:torchaudio.save(f"basic_output{i} .wav", Torch.from_numpy(wavs[i]), 24000)
################################### Beispiel eines Sprechers aus Gaussian.rand_spk = chat.sample_random_speaker()print (rand_spk) # zur späteren Klangfarbenwiederherstellung speichernparams_infer_code = ChatTTS.Chat.InferCodeParams(spk_emb = rand_spk, # gesampelten Lautsprecher hinzufügen Temperatur = .3, # mit benutzerdefinierter Temperaturtop_P = 0.7, # Top-P-Dekodierungtop_K = 20, # Top-K-Dekodierung)######################### ########## Für die manuelle Steuerung auf Satzebene. # Verwenden Sie oral_(0-9), Laugh_(0-2), break_(0-7) #, um ein spezielles Token im Text zu generieren synthesize.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, )################################### Für Wortebene manuelle Steuerung.text = 'Was ist [uv_break ]dein englisches Lieblingsessen?[lachen][lbreak]'wavs = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text, params_infer_code=params_infer_code)"""In einigen Versionen von Torchaudio funktioniert die erste Zeile, in anderen Versionen jedoch auch die zweite Zeile."""try:torchaudio.save("word_level_output.wav", Torch.from_numpy(wavs[0 ]).unsqueeze(0), 24000)exclusive:torchaudio.save("word_level_output.wav", Torch.from_numpy(wavs[0]), 24000)
inputs_en = """chat T T S ist ein Text-to-Speech-Modell, das für Dialoganwendungen entwickelt wurde. [uv_break]Es unterstützt gemischte Spracheingaben [uv_break]und bietet Multi-Speaker-Funktionen mit präziser Kontrolle über prosodische Elemente wie [uv_break]laughter[uv_break][laugh ], [uv_break]Pausen, [uv_break]und Intonation[uv_break]es sorgt für eine natürliche und ausdrucksstarke Sprache,[uv_break]nutzen Sie also bitte das Projekt verantwortungsbewusst auf eigenes Risiko.[uv_break]""".replace('n', '') # Englisch ist noch experimentell.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)
männlicher Sprecher | weibliche Sprecherin |
intro_en_m.webm | intro_en_f.webm |
Für einen 30-sekündigen Audioclip sind mindestens 4 GB GPU-Speicher erforderlich. Für die 4090-GPU kann sie Audio erzeugen, das etwa 7 semantischen Token pro Sekunde entspricht. Der Echtzeitfaktor (RTF) liegt bei etwa 0,3.
Dies ist ein Problem, das typischerweise bei autoregressiven Modellen (für Bark und Valle) auftritt. Es ist im Allgemeinen schwer zu vermeiden. Man kann mehrere Proben ausprobieren, um ein passendes Ergebnis zu finden.
Im aktuell veröffentlichten Modell sind die einzigen Steuereinheiten auf Token-Ebene [laugh]
, [uv_break]
, und [lbreak]
. In zukünftigen Versionen werden wir möglicherweise Open-Source-Modelle mit zusätzlichen emotionalen Kontrollfunktionen veröffentlichen.
bark, XTTSv2 und valle zeigen ein bemerkenswertes TTS-Ergebnis durch ein autoregressives System.
Fish-Speech enthüllt die Fähigkeit von GVQ als Audio-Tokenizer für die LLM-Modellierung.
Vocos, der als vortrainierter Vocoder verwendet wird.
wlu-audio lab für frühe Algorithmenexperimente.