Ich habe Berta in eine KI gefüllt! dazu habe ich ein umfangreichen prompt entwickelt der prompt ist 248 000 Zeichen lang. der prompt lässt sich auf alle LLM anwenden dessen kontext fenster gross genug ist local und öffendlich auf severn. außerdem habe ich eine lokale sprechmaschine entwickelt aus verschiedenen KI Modellen. dadurch kann Berta jetzt auch sprechen.
wer Interesse hat sich das mal anzuschauen, der kann hier:
https://www.zuendfunken-protokol.de/index.php/podcasts-mp4
einen Auszug hören es sind alles abgeschlossene salbt erstelle Podcasts und Monologe von und mit Berta ( Die stimme von Berta ist von meiner Freundin Karin eingesprochen worden und wird von der sprechmaschine in 28 unterschiedlichen Emotions lagen verwendet) die ausgegebene Sprache ist voll synthetisch und stimmen klonend.)
wie die sprech maschine genau fuktioniert las ich mal ki formulieren da ich das übersichtlicher find als wenn ich versuche die deteils zu sortieren. die entwicklungs dauer des gesambten projeckte kann ich mit 8 wochen bis her angeben.
Technische Details: Die "Berta Voice UI" Pipeline
Die "Berta Voice UI" ist eine vollständig lokal betriebene Anwendung zur Erstellung von hochwertigen, emotional steuerbaren Audio- und Videoinhalten. Die Architektur ist als eine Pipeline konzipiert, in der verschiedene spezialisierte KI-Modelle und Werkzeuge nacheinander Aufgaben erfüllen, um vom Rohtext zum finalen Medien-Export zu gelangen.
Die Architektur im Überblick
Die Anwendung basiert auf Python 3.10 und wird über eine Benutzeroberfläche von Gradio gesteuert. Die Kernlogik ist in mehrere Skripte aufgeteilt:
app.py: Startet die Weboberfläche und steuert alle UI-Elemente und Nutzerinteraktionen.
synthesize.py: Das Herzstück, das den Text, die gewählten Emotionen und Parameter entgegennimmt und den gesamten Prozess der Sprachsynthese, Qualitätssicherung und des Exports steuert.
speakers_config.py: Eine zentrale Konfigurationsdatei, die jeden Emotions-Marker (z.B. [berta_lustig]) einer spezifischen Referenz-Audiodatei zuordnet.
emotion_filter.py: Ein optionales Modul, das eine KI-gestützte Analyse des Rohtextes durchführt, um Emotions-Marker automatisch vorzuschlagen.
Verwendete KI-Modelle & Werkzeuge
Die Pipeline kombiniert mehrere spezialisierte KI-Modelle, um den Workflow zu realisieren:
Sprachsynthese (Die Stimme): Coqui.ai's XTTS v2
Diese KI ist die eigentliche "Sprechmaschine". Sie nimmt ein Textsegment und eine Referenz-Audiodatei (z.B. eine Aufnahme von Berta, die fröhlich klingt) und erzeugt daraus eine neue Sprachaufnahme, die den Text im emotionalen Tonfall der Referenz spricht (Voice Cloning).
Spracherkennung (Das Ohr): OpenAI's Whisper (large)
Dieses Modell hat zwei Aufgaben:Diktierfunktion: Es wandelt Spracheingaben über das Mikrofon in Rohtext um.
Qualitätssicherung (QA): Nachdem XTTS ein Audio-Snippet erzeugt hat, hört Whisper zu und transkribiert das Ergebnis. So wird überprüft, was die KI tatsächlich gesagt hat.
Semantischer Vergleich (Die Qualitätskontrolle): paraphrase-multilingual-MiniLM-L12-v2
Nachdem Whisper das Ergebnis transkribiert hat, vergleicht dieses Modell die Bedeutung des Originaltextes mit der des Transkripts. Es berechnet einen prozentualen Ähnlichkeitswert ("Plausibilität"). Fällt dieser Wert unter einen bestimmten Schwellenwert, wird das Audio-Snippet verworfen und die Synthese wiederholt, um Fehler zu vermeiden.
Emotionsanalyse (Der Regie-Assistent): ChrisLalk/German-Emotions
Dies ist ein deutsches BERT-Modell, das darauf trainiert ist, Emotionen in Texten zu erkennen. Es wird im emotion_filter.py verwendet, um den Rohtext zu analysieren und automatisch Vorschläge für die Emotions-Marker zu generieren.
Tiefenanalyse (Der KI-Regisseur): Lokales LLM via Ollama
Für eine tiefere, narrative Analyse kann optional ein lokales großes Sprachmodell (z.B. Command-R) über die Ollama-Schnittstelle angesteuert werden. Dies dient dazu, subtilere emotionale Stimmungen oder eine bestimmte Atmosphäre im Text zu erkennen.
Videoerstellung (Der Cutter): FFMPEG
Dieses universelle Multimedia-Werkzeug wird direkt über ein Skript aufgerufen, um die finale, kombinierte Audiodatei mit einem Standbild (entweder hochgeladen oder ein Standard-Ersatzbild) zu einem .mp4-Video zusammenzufügen.