ChatTTS: Sprechen Sie mit LLM mit diesem Text-to-Speech-Tool! (2024)

ChatTTS ist ein fortgeschrittenes Text-to-Speech (TTS)-Modell, das speziell für Dialogszenarien entwickelt wurde. Entwickelt vom Team bei 2Noise, zielt dieses Modell darauf ab, eine natürliche und ausdrucksstarke Sprachsynthese zu liefern, was es ideal für Anwendungen wie virtuelle Assistenten, interaktive Sprachantwortsysteme und mehr macht. Dieser Artikel geht darauf ein, was ChatTTS ist, wie es funktioniert und bietet eine umfassende Anleitung zur Installation und Verwendung.

💡

Interessiert an den neuesten Trends in der KI?

Dann darfst du Anakin AI nicht verpassen!

Anakin AI ist eine All-in-One-Plattform für die Automatisierung deines Arbeitsablaufs. Erstelle leistungsstarke KI-Apps mit dem nutzerfreundlichen No-Code-App-Builder, mit Llama 3, Claude, GPT-4, Uncensored LLMs, Stable Diffusion und mehr.

Erstelle deine Traum-KI-App innerhalb von Minuten, nicht Wochen mit Anakin AI!

Was ist ChatTTS?

ChatTTS ist ein generatives Sprachmodell, das für dialogbasierte Aufgaben optimiert ist. Im Gegensatz zu herkömmlichen TTS-Systemen, die oft roboterhaft klingen und die Fähigkeit fehlen, subtile Elemente menschlicher Sprache zu vermitteln, zeichnet sich ChatTTS durch die Produktion lebensechter Gesprächserfahrungen aus. Es unterstützt sowohl englische als auch chinesische Sprachen und wurde mit mehr als 100.000 Stunden Daten trainiert. Die Open-Source-Version, die auf HuggingFace verfügbar ist, wurde mit 40.000 Stunden Daten trainiert.

Hauptmerkmale von ChatTTS

  1. Konversationelles TTS: Optimiert für dialogbasierte Aufgaben, ermöglicht natürliche und ausdrucksstarke Sprachsynthese mit Unterstützung für mehrere Sprecher.
  2. Feinabstimmung: Die Fähigkeit, fein abgestimmte prosodische Merkmale wie Lachen, Pausen und Einwürfe vorherzusagen und zu kontrollieren.
  3. Verbesserte Prosodie: Übertrifft die meisten Open-Source-TTS-Modelle in Bezug auf Prosodie und liefert eine wirklich natürliche Erfahrung.

Wie funktioniert ChatTTS?

ChatTTS nutzt fortgeschrittene maschinelle Lernalgorithmen, um Sprache zu erzeugen, die menschliche Konversation imitiert. Das Modell ist darauf ausgelegt, die Feinheiten des Dialogs zu behandeln, einschließlich Intonation, Pausen und emotionaler Ausdrücke. Hier ist eine Aufschlüsselung seiner Kernkomponenten:

Modellarchitektur von ChatTTS

ChatTTS verwendet eine Kombination aus autoregressiven und nicht-autoregressiven Modellen zur Generierung von Sprache. Die autoregressive Komponente hilft dabei, den Gesprächsfluss aufrechtzuerhalten, während der nicht-autoregressive Teil sicherstellt, dass die Sprache schnell und effizient generiert wird.

Trainingsdaten von ChatTTS

Das Modell wird auf einem massiven Datensatz trainiert, der mehr als 100.000 Stunden englische und chinesische Sprache umfasst. Dieses umfangreiche Training ermöglicht es ChatTTS, die Feinheiten des menschlichen Dialogs zu verstehen und wiederzugeben.

Feinabstimmung

Eines der herausragenden Merkmale von ChatTTS ist seine Fähigkeit zur Steuerung feinabgestimmter prosodischer Merkmale. Dadurch kann es Lachen, Pausen und andere Einwürfe an geeigneten Stellen einfügen, was dazu führt, dass die generierte Sprache natürlicher und ansprechender klingt.

Wie man ChatTTS verwendet: Ein Schritt-für-Schritt-Anleitung

ChatTTS ist eine leistungsstarke Text-to-Speech-Bibliothek, mit der du hochwertigen Ton aus Texteingabe generieren kannst. Es bietet eine einfache und intuitive API, um die Sprachsynthese in deine Python-Projekte zu integrieren. In diesem Abschnitt werden wir erkunden, wie man ChatTTS mit Codebeispielen und Schritt-für-Schritt-Anleitungen verwendet.

ChatTTS installieren

Um mit ChatTTS zu beginnen, musst du die erforderlichen Abhängigkeiten installieren. Führe den folgenden Befehl aus, um die erforderlichen Pakete zu installieren:

pip install omegaconf torch tqdm einops vector_quantize_pytorch transformers vocos IPython

Importiere dann die erforderlichen Module in dein Python-Skript:

import torchimport ChatTTSfrom IPython.display import Audio

Setze die folgenden Konfigurationsoptionen für PyTorch:

torch._dynamo.config.cache_size_limit = 64torch._dynamo.config.suppress_errors = Truetorch.set_float32_matmul_precision('high')

Modelle mit ChatTTS laden

Erstelle eine Instanz der Klasse ChatTTS.Chat und lade die vorab trainierten Modelle:

chat = ChatTTS.Chat()chat.load_models()

Wenn die Modellgewichte aktualisiert wurden, verwende den Parameter force_redownload=True:

chat.load_models(force_redownload=True)

Wenn du die Gewichte manuell heruntergeladen hast, gib den lokalen Pfad mit den Parametern source und local_path an:

chat.load_models(source='local', local_path='DEIN LOKALER PFAD')

Wie man ChatTTS-Inferenz verwendet

Batch-Inferenz mit ChatTTS

Du kannst eine Batch-Inferenz durchführen, indem du eine Liste von Texten an die Methode infer übergibst:

texts = ["So haben wir festgestellt, dass Wettbewerbsfähigkeit und Zusammenarbeit eine große Motivationsquelle für unsere Ziele sind. Eine Person anzurufen, wenn du scheiterst, eine Person, die dich wieder auf den richtigen Weg bringt, und dann eine Person, mit der du die Aktivität tatsächlich durchführst.",]*3 \ + ["Als Programmierer haben wir alle eine Vorliebe für Open Source, oder? Ich meine, es ist einfach ein so cooles Konzept. Aber hier ist die Sache - alle wirklich innovativen, bahnbrechenden Technologien? Sie werden von diesen großen Unternehmen gehortet, und sie werden sie sicherlich nicht so schnell mit dem Rest von uns teilen."]*3 wavs = chat.infer(texts)

Du kannst dann den generierten Ton mit der Funktion Audio von IPython abspielen:

Audio(wavs[0], rate=24_000, autoplay=True)Audio(wavs[3], rate=24_000, autoplay=True)

Verwendung von benutzerdefinierten Parametern mit ChatTTS

Du kannst die Inferenzparameter anpassen, indem du params_infer_code und params_refine_text angibst:

params_infer_code = {'prompt':'[speed_5]', 'temperature':.3}params_refine_text = {'prompt':'[oral_2][laugh_0][break_6]'}wav = chat.infer('Einige der besten Restaurants in Singapur sind das mit drei Michelin-Sternen ausgezeichnete Odette, bekannt für seine exquisite französische Küche, das Restaurant Labyrinth, das innovative moderne Singapurische Gerichte serviert, und Cloudstreet, ein modernes Restaurant mit zwei Michelin-Sternen von Küchenchef Rishi Naleendra.', \ params_refine_text=params_refine_text, params_infer_code=params_infer_code)

Verwendung eines zufälligen Sprechers mit ChatTTS

Du kannst Audio mit einem zufälligen Sprecher generieren, indem du eine zufällige Sprecher-Einbettung abrufst:

rand_spk = chat.sample_random_speaker()params_infer_code = {'spk_emb' : rand_spk, }wav = chat.infer('Einige der bekanntesten und beliebtesten Gerichte in Singapur sind Hühnchenreis, wobei Tian Tian eines der bekanntesten ist, Chili-Krabben, wobei Restaurants wie Jumbo Seafood sehr beliebt sind, und Peranakan-Küche, wobei das mit einem Michelin-Stern ausgezeichnete Candlenut-Restaurant ein Top-Spot ist, um authentische Peranakan-Aromen zu probieren.', \ params_refine_text=params_refine_text, params_infer_code=params_infer_code)

Zweistufige Steuerung mit ChatTTS implementieren

ChatTTS ermöglicht es dir, die Textverfeinerung und die Audiogenerierung separat mit den Parametern refine_text_only und skip_refine_text zu steuern:

text = "So haben wir festgestellt, dass Wettbewerbsfähigkeit und Zusammenarbeit eine große Motivationsquelle für unsere Ziele sind. Eine Person anzurufen, wenn du scheiterst, eine Person, die dich wieder auf den richtigen Weg bringt, und dann eine Person, mit der du die Aktivität tatsächlich durchführst."chat.infer(text, refine_text_only=True)text = 'Also haben wir festgestellt, dass Wettbewerbsfähigkeit und Zusammenarbeit eine große Motivationsquelle [uv_break] für unsere Ziele sind. Also [uv_break] eine Person, die dich anruft, [uv_break] wenn du scheiterst, eine Person, [uv_break] die dich wieder auf den richtigen Weg bringt, [uv_break] und dann eine Person, [uv_break] mit der du die Aktivität [uv_break] tatsächlich durchführst.'wav = chat.infer(text, skip_refine_text=True)

Integration von LLMs mit ChatTTS

ChatTTS kann mit Sprachmodellen (LLMs) integriert werden, um Text auf der Grundlage von Benutzerfragen zu generieren. Hier ist ein Beispiel mit der DeepSeek-API:

from ChatTTS.experimental.llm import llm_apiAPI_KEY = ''client = llm_api(api_key=API_KEY, base_url="https://api.deepseek.com", model="deepseek-chat")user_question = 'Was sind die besten Restaurants in Singapur?'text = client.call(user_question, prompt_version = 'deepseek')print(text)text = client.call(text, prompt_version = 'deepseek_TN')print(text)

Du kannst dann Audio mit dem generierten Text generieren:

params_infer_code = {'spk_emb' : rand_spk, 'temperature':.3}wav = chat.infer(text, params_infer_code=params_infer_code)

Verwendung der ChatTTS-Webbenutzeroberfläche

ChatTTS bietet auch eine webbasierte Benutzeroberfläche zum Generieren von Audio. Du kannst die Webbenutzeroberfläche mithilfe des Skripts webui.py starten:

python webui.py --server_name 0.0.0.0 --server_port 8080 --local_path /path/to/local/models

Mit der Webbenutzeroberfläche kannst du interaktiv Text eingeben, Parameter anpassen und Audio generieren.

Das ist es! Du hast jetzt eine umfassende Anleitung, wie du ChatTTS in Python verwendest. Mit diesen Beispielen und Schritten kannst du ChatTTS in deine Projekte integrieren und hochwertige Sprache aus Texteingabe generieren. Fühle dich frei, weitere fortgeschrittene Funktionen zu erkunden und mit verschiedenen Parametern zu experimentieren, um das generierte Audio an deine Bedürfnisse anzupassen.

Fazit

ChatTTS ist ein bahnbrechendes Text-to-Speech-Modell, das der Konversations-KI eine neue Realitätsstufe verleiht. Mit seiner Fähigkeit, mehrere Sprachen zu unterstützen, feinabgestimmte Steuerung über prosodische Merkmale und Unterstützung für mehrere Sprecher ist es ein leistungsstarkes Werkzeug für Entwickler und Forscher gleichermaßen. Indem du den Installations- und Verwendungsrichtlinien folgst, kannst du ChatTTS für deine eigenen Projekte nutzen und zur laufenden Entwicklung dieser aufregenden Technologie beitragen.

ChatTTS: Sprechen Sie mit LLM mit diesem Text-to-Speech-Tool! (2024)

References

Top Articles
Latest Posts
Article information

Author: Stevie Stamm

Last Updated:

Views: 5418

Rating: 5 / 5 (80 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Stevie Stamm

Birthday: 1996-06-22

Address: Apt. 419 4200 Sipes Estate, East Delmerview, WY 05617

Phone: +342332224300

Job: Future Advertising Analyst

Hobby: Leather crafting, Puzzles, Leather crafting, scrapbook, Urban exploration, Cabaret, Skateboarding

Introduction: My name is Stevie Stamm, I am a colorful, sparkling, splendid, vast, open, hilarious, tender person who loves writing and wants to share my knowledge and understanding with you.