Jedes Mal, wenn der Ton ausfiel, stellte das Model die anderen Werkzeuge nebeneinander auf und zeigte darauf. Der eigentliche Fehler lag meist in dem ausgefransten Kabel, das von seinem eigenen Schreibtisch herabhing.
Mittlerweile war mein D&D-Dungeon-Master in der Lage, eine Spielrunde zu leiten, die Sitzung als Geschichte aufzuschreiben und sie zu illustrieren. Das Letzte, was ich wollte, war, mir das anzuhören. Die Geschichte jeder Sitzung wurde auf der Website vorgelesen – mit den Stimmen der Spielcharaktere –, sodass die Spieler am Tisch sie sich einfach noch einmal anhören konnten.
Die Text-zu-Sprache-Funktion funktionierte besser, als ich erwartet hatte. Dann trat ein Fehler auf, den ich nicht nachvollziehen konnte, und der Versuch, diesen zu beheben, hat mir die wertvollste Lektion dieser gesamten Serie erteilt.
In diesem Beitrag berichte ich darüber, was es mich gekostet hat, dem Modell eine Stimme zu geben, und was ich entwickelt habe, um die verlorene Zeit wieder hereinzuholen. Ich habe gelernt, dass ein Modell:
- seine eigenen Fehler mit absoluter Zuversicht zu diagnostizieren und dabei jedes Mal falsch zu liegen,
- Lesen Sie Fantasienamen genau so, wie sie geschrieben stehen, ganz gleich, wie oft Sie sie korrigieren,
- und sich dagegen wehren, wenn ein Werkzeug versucht, zwei Probleme gleichzeitig zu lösen.
Die Klammern begannen, sich zu lösen
Es hat eine Weile gedauert, bis ich so weit war. Ich habe eine Reihe von Text-to-Speech-Systemen ausprobiert, bevor ich etwas gefunden habe, das mir gefiel: die im Browser integrierten Stimmen, einige Open-Source-Modelle und schließlich ein Modell namens „Qwen“, das für jede Figur eine eigene, unverwechselbare Stimme erzeugen konnte. Eine Zeit lang waren die Ergebnisse wirklich gut. Dann begannen einzelne Clips, fehlerhaft zu werden.
Es kam nicht zu einem vollständigen Ausfall. Vielmehr traten Störungen auf. Eine Zeile begann zunächst einwandfrei, geriet dann jedoch in eine Schleife, in der dieselben beiden Wörter immer wieder wiederholt wurden. Manchmal stockte die Wiedergabe mitten in einer Silbe. Manchmal löste sie sich in eine Folge verzerrter Geräusche auf, die – ehrlich gesagt – so klangen, als würde der Sprecher fluchen. Ein Clip war einwandfrei, während der nächste schon fast wie von Geistern besessen klang.
Ich hatte keine Ahnung, warum. Also tat ich das Naheliegende: Ich fragte Claude.
Es teilte mir mit absoluter Überzeugung mit, dass dies eine Einschränkung des Modells sei. Das Klonen von Stimmen sei bei dieser Länge einfach nicht zuverlässig, erklärte es. Eine bekannte Schwäche von Text-to-Speech-Systemen (TTS). Vernünftig, flüssig und ohne den geringsten Anflug von Zweifel vorgetragen.
Ich habe es nicht ganz geglaubt. Irgendetwas daran kam mir zu glatt vor. Doch ich hatte weder Gegenbeweise noch eine schnelle Lösung, und ich hatte ohnehin andere Gründe, mich anderweitig umzusehen.
Warum ich tatsächlich gewechselt habe (es lag nicht nur an dem Fehler)
Ich möchte hier ehrlich sein, denn „die KI hat gelogen und ich habe ihr geglaubt“ klingt zu einfach. Ich hatte echte, eigenständige Gründe, ein anderes Modell auszuprobieren.
Qwen hielt bei Gedankenstrichen nicht ordnungsgemäß inne, was für die Erzählung von Bedeutung war. Und ein Modell namens MOSS-TTS versprach genau das, was ich suchte: längere Sprachsequenzen sowie eine fein abgestimmte Steuerung von Phonemen und Timing. Auf dem Papier passte es besser. Auch meine ersten Tests waren vielversprechend. Die Stimmproben klangen gut.
Also habe ich gewechselt. Und genau hier hat mich die falsche Diagnose tatsächlich teuer zu stehen gekommen: Anstatt die Aussage „Das ist eine Einschränkung des Modells“ als eine unbewiesene Theorie zu betrachten, habe ich sie als Grund genommen, mich gar nicht mehr mit Qwen zu beschäftigen und mich ganz auf MOSS zu konzentrieren. Die Fehldiagnose hat den Wechsel nicht erzwungen. Sie hat die Untersuchung beendet.
MOSS hatte seine eigenen Vorstellungen
Bei kurzen Testläufen klang MOSS einwandfrei. Als ich es dann bei einer kompletten Geschichte einsetzte, fügte es plötzlich lange, unerklärliche Pausen zwischen den Zeilen ein. Zwei, drei Sekunden Stille mitten in einer Szene, ohne dass ich einen Grund dafür finden konnte.
Also fragte ich Claude erneut und erhielt eine ganze Reihe selbstbewusster Antworten, von denen jede auf ihre eigene Weise falsch war.
Zunächst gab es ein Problem mit der Zeichensetzung: Das Modell interpretiert Kommas und Punkte als Pausensignale, also lassen Sie uns diese entfernen. Ich habe Gedankenstriche durch Kommas ersetzt. Da auch die Kommas Pausen verursachten, schlug das Modell vor, diese durch Leerzeichen zu ersetzen. Die Pausen blieben bestehen.
Dann änderte sich die Theorie: Es handelt sich um einen bekannten Effekt, bei dem MOSS während der Wiedergabe Folgen von stillen Frames ausgibt. Als Lösung wurde ein Postprozessor vorgeschlagen, der das Audiomaterial scannt und alle Stilleabschnitte, die länger als eine Viertsekunde dauern, herausschneidet.
Diese Korrektur hat die Situation noch verschlimmert. Der Stille-Trimmer verwendete einen Schwellenwert, der, wie sich herausstellte, nicht die Stille, sondern die leisen Passagen der Sprache erfasste. Er löschte etwa ein Drittel des eigentlichen Audiomaterials aus, wodurch verzerrte, zerhackte Clips zurückblieben. Wir hatten ein Pausenproblem behoben, indem wir ein Problem mit Datenverfälschungen verursacht hatten.
Hinzu kam noch die Kleinigkeit, dass ein halbes Dutzend Patches erforderlich waren, um MOSS auf einer aktuellen Version der zugrunde liegenden Bibliothek zum Laufen zu bringen, sowie ein immer wiederkehrendes Problem, bei dem derselbe Name im selben Satz bei jedem Durchlauf unterschiedlich ausgesprochen wurde. Zu diesem Zeitpunkt hatte mich MOSS bereits mehr gekostet, als es eingespart hatte, und seine Stimmen waren zwar in Ordnung, erreichten jedoch nie den Realismus von Qwens Stimmen. Qwens Stimmen atmeten. Das konnte man hören. Also kehrte ich zurück.
Der Fehler – als ich mir das schließlich genauer ansah
Als ich mich nicht mehr auf die Diagnose verließ und mich eingehend mit der ursprünglichen Qwen-Datenverfälschung befasste, stellte sich heraus, dass die Ursache nichts mit einer Einschränkung des Modells zu tun hatte.
Qwen klont eine Stimme anhand einer Referenzprobe sowie einer Transkription dieser Probe. Meine Pipeline übermittelte nicht die vollständige Referenzprobe. Diese wurde abgeschnitten, sodass Audio und Transkription nicht mehr übereinstimmten, und genau diese Diskrepanz führte zu den Schleifen und Verzerrungen. Ein Fehler in der Datenverarbeitung. Mein technischer Fehler. Es war nirgendwo eine „Einschränkung“ zu erkennen.
Betrachten Sie den gesamten Ablauf. Das Modell hat nicht nur eine Tatsache falsch dargestellt, wie es in Teil 1 der Fall war. Es hat seine eigenen Fehler wiederholt falsch interpretiert, und jede falsche Antwort wies die Schuld auf etwas anderes als die tatsächliche Ursache hin. Der ursprüngliche Fehler war „eine Einschränkung des Modells“ (es handelte sich um meine unvollständige Eingabe). Die MOSS-Stillepassagen wurden zunächst als „Zeichensetzung“ bezeichnet, dann als „bekanntes Modellartefakt“ (die eigentliche Ursache habe ich nie gefunden, doch die selbstbewusst vorgenommene Korrektur hat die Audiodatei beschädigt). Zu keinem Zeitpunkt sagte das Modell: „Ich weiß es nicht, lassen Sie uns die Eingaben überprüfen.“
Und sobald mir dieses Muster aufgefallen war, konnte ich es nicht mehr übersehen. „Das ist eine Einschränkung des Modells“ erwies sich als Claudes Standardantwort auf alles, was mit Audio zu tun hatte. Eine Stimme, die nicht rau genug war? Eine Einschränkung des Modells. Ein Klon, der von seiner Vorlage abwich? Eine bekannte Einschränkung beim Stimmklonen. Die sich wiederholenden Clips? Dasselbe. Bei drei verschiedenen TTS-Systemen lautete die Erklärung, wann immer das Audio enttäuschte, stets in etwa: „So verhalten sich diese Modelle nun einmal“, jedes Mal mit derselben ruhigen Bestimmtheit vorgetragen. Manchmal traf das sogar zu. Das Problem ist, dass es die Antwort war, unabhängig davon, ob sie zutraf, was sie als Diagnose wertlos macht. Es ist das gesprochene Äquivalent eines Achselzuckens.
Das ist es, was ich mir nun ständig wiederhole. Das Modell ist der am wenigsten zuverlässige Erzähler, wenn es um sich selbst geht. Es analysiert sein eigenes Verhalten ebenso flüssig wie alles andere, und „das ist eine Einschränkung des Modells“ ist genau die Art von Antwort, die nach Fachwissen klingt, während sie die Untersuchung stillschweigend beendet. Die Gewohnheit, die mich gerettet hat, bestand darin, seine Erklärung dafür, warum es versagt hatte, nicht zu akzeptieren.
Es hat mich Wochen gekostet, einen Umweg über ein schlechteres Modell und einen selbstverschuldeten Datenbeschädigungsfehler – alles nur, weil ich selbstbewusste Diagnosen für bare Münze genommen habe. Bei einem Hobbyprojekt ist das keine Katastrophe. Der gleiche Reflex in der Produktion – nämlich die Erklärung des Modells dafür, warum etwas nicht funktioniert hat, ungeprüft zu akzeptieren – führt dazu, dass man einen Sprint damit verbringt, die Architektur um einen Fehler herum neu zu gestalten, der aus nur drei Zeilen Glue-Code bestand.
Das andere Kaninchenloch: Es kann den Namen meiner Partei nicht aussprechen
Der Fehler war die wichtigste Lektion. Die Phonetik hat am meisten Zeit in Anspruch genommen.
Fantasienamen folgen nicht der englischen Schreibweise. Das Modell las sie so vor, wie es die Buchstaben nahelegten, was durchweg falsch war. „Lylnyler“ kam völlig verstümmelt heraus. „Xanathar“ wurde nie zweimal gleich ausgesprochen. Die Stimme war gut; die Namen waren eine Katastrophe.
Die Lösung besteht in einer Nachschlagetabelle, die jeden Namen so umschreibt, wie er klingen sollte, und die auf den Text angewendet wird, kurz bevor dieser an das Sprachmodell weitergeleitet wird. Sie umfasst mittlerweile mehr als vierzig Einträge. Hier einige meiner Favoriten, wörtlich zitiert:
"Lylnyler": "Lilnigh-ler"
"Xanathar": "Zannathar"
"Caelith": "Caylith"
"Hlam": "Huh-lawm"
"Iokaste": "Ee-oh-kaw-stay"
Einige Einträge in der Tabelle ordnen einen Namen sich selbst zu, wie beispielsweise „ "Floon": "Floon" “. Das ist nicht zufällig eine leere Operation. Es handelt sich um eine Notiz an mich selbst, dass ich diesen Eintrag bereits überprüft habe und das Modell ihn bereits korrekt wiedergibt – lassen Sie ihn also unverändert.
Es gibt angeblich eine korrektere Vorgehensweise. Das von mir verwendete Modell wirbt mit einer Ausspruchssteuerung mittels des Internationalen Phonetischen Alphabets (IPA), der von Linguisten verwendeten Notation „ /ˈkeɪlɪθ/ “. Ich habe es ausprobiert. Bei mir hat es nicht funktioniert. Ich muss ehrlich zugeben, dass ich nicht weiß, ob diese Funktion tatsächlich nicht vorhanden ist, ob sie nur teilweise implementiert ist oder ob ich sie einfach falsch bedient habe. Ich habe eine Weile damit verbracht, dem auf den Grund zu gehen, konnte mir aber keine Gewissheit verschaffen.
Ich kann nur sagen, dass die grobe Vorgehensweise – Namen so zu schreiben, wie man sie einem Freund aussprechen würde – zuverlässig funktionierte, wenn die offizielle Methode versagte. Das allein ist schon eine kleine Lektion wert: Eine dokumentierte Funktion ist eine Zusage, keine Garantie, und „so schreiben, wie es klingt“ hat die korrekte Schreibweise jedes Mal übertrumpft, wenn ich es versucht habe.
Derselbe Name, auf drei verschiedene Arten ausgedrückt
Hier ist der Teil, der mich überrascht hat. Ein Name wird nicht immer auf dieselbe Weise ausgesprochen. Die Aussprache variiert je nachdem, an welcher Stelle im Satz er steht. Das Modell spricht „Lylnyler“ am Anfang einer Zeile mit einer bestimmten Betonung aus, in der Mitte mit einer anderen und am Ende mit einer weiteren. Eine Umschreibung, die den Namen an einer Stelle festlegt, kann ihn an einer anderen Stelle unpassend machen.
Das kleine Tool, das ich zum Testen der Aussprache entwickelt habe, prüft den Namen also nicht nur einmal. Es fügt den Namen in drei Sätze ein – am Anfang, in der Mitte und am Ende – und liest alle drei vor:
Lylnyler stepped forward and placed his hand on the door.
The blast came from nowhere. Lylnyler had moved before
any of them saw him go.
The cup slid forward, slow and deliberate, and stopped in
front of Lylnyler.
Sie hören sich alle drei Varianten an und behalten nur die Schreibweise bei, die in jeder Position Bestand hat. Es ist eine Kleinigkeit, aber genau die Art von Sonderfall, den man erst erkennt, wenn man den Namen seines Zauberers im selben Absatz auf zwei verschiedene Arten ausgesprochen hört.
Warum ich letztendlich zwei separate Tools verwendet habe
Darin verbirgt sich eine Erkenntnis zum Arbeitsablauf, die ich erst nach einer Weile erkannt habe.
Die Wahl der Stimme einer Figur und die Festlegung der Aussprache eines Namens scheinen auf den ersten Blick dieselbe Aufgabe zu sein. Das sind sie jedoch nicht. Es handelt sich um zwei voneinander unabhängige Probleme, und ich habe viele Regenerationen verschwendet, weil ich sie als ein einziges Problem behandelt habe.
Deshalb habe ich sie in zwei Tools aufgeteilt:
- Man wählt die Stimme aus. Ich verfasse eine kurze Einleitung in der Ich-Form mit den eigenen Worten der Figur – nur ein paar Sätze –, und das Tool generiert dann Sprachbeispiele in dieser Stimme, aus denen ich auswählen kann. Die Einleitung ist entscheidend: Eine Stimme, die auf der Grundlage des Satzes „Hallo, ich bin ein ruhiger, gequälter Hexenmeister, der nicht so leicht Vertrauen fasst“ generiert wurde, bringt den Charakter weitaus besser zur Geltung als eine, die aus einem neutralen Absatz abgeleitet wurde.
- Die andere Funktion korrigiert die Aussprache – jeweils einen Namen nach dem anderen – an diesen drei Stellen im Satz, unabhängig davon, welche Stimme gerade spricht.
Sobald sie voneinander getrennt waren, lief alles schneller. Ein Problem mit der Sprachausgabe und eines mit der Aussprache zwangen mich nicht mehr dazu, die Arbeit des anderen immer wieder neu zu erledigen. Allgemein lässt sich dies so zusammenfassen: Wenn ein Regler scheinbar zwei Dinge steuert, werden Sie wahrscheinlich so lange damit zu kämpfen haben, bis Sie jedem einzelnen Aspekt einen eigenen Regler zuweisen.
Was ich daraus über meinen Hauptberuf gelernt habe
Ich bin Cloud-Berater. Der Großteil meiner Arbeit mit Modellen hat nichts mit Goldfischen oder Zauberern zu tun. Doch dieser Teil des Projekts hat eine Gewohnheit verändert, die ich jede Woche praktiziere.
Wenn etwas, das auf einem Modell basiert, nicht wie erwartet funktioniert, frage ich das Modell nicht mehr nach dem Grund und notiere mir die Antwort. Strukturell gesehen ist es der am wenigsten geeignete Zeuge für sein eigenes Versagen. Es wird Ihnen jedes Mal eine selbstbewusste, plausible Geschichte liefern, die die Schuld auf andere abwälzt. „Es ist eine Einschränkung des Modells“ ist eine Hypothese, keine Erkenntnis. Ich überprüfe nun zuerst die Grundlagen: die Eingaben, den Kontext, die Zusammenhänge. Dort lag der Fehler aufgrund der unvollständigen Stichprobe, und dort liegen die meisten von ihnen.
Die Phonetik-Tabelle und der Drei-Positionen-Test sind im Grunde dieselbe Lektion in kleinerem Maßstab: Die Fehler des Modells häufen sich in den unscheinbaren Randfällen, und man entdeckt sie nur, wenn man tatsächlich hinschaut und hinhört – nicht, indem man das Modell auffordert, sich selbst zu bewerten.
Das – mehr noch als der Goldfisch – ist es, was mir die drei Monate, in denen ich aus Claude einen Dungeon Master gemacht habe, gebracht haben. Es ist ein brillanter Improvisator, ein nachlässiger Protokollführer, ein eigensinniger Illustrator und ein unzuverlässiger Zeuge seines eigenen Verhaltens – alles zugleich. Bei dieser Arbeit geht es nicht darum, ihm zu vertrauen oder ihm zu misstrauen. Es geht darum, zu wissen, was was ist, und die Kontrollmechanismen zu entwickeln, die diesen Unterschied erkennen.
Und falls Sie sich dies anhören, anstatt es zu lesen: Ja, dies wurde von genau jener Pipeline erzählt, über die ich mich gerade in drei Beiträgen beschwert habe – mit Namen und allem –, und es waren lediglich vierzig Zeilen mit Korrekturen nötig, um die Angaben richtigzustellen. Es ist nicht perfekt, aber angesichts dessen, was ich ihr als Grundlage gegeben habe, ist es viel besser, als ich erwartet hatte, und die Zeit hat sich gelohnt.
Was ich dem Programm zur Verfügung gestellt habe, war ein Klon meiner eigenen Stimme. Elf Sekunden, in denen ich in ein Headset-Mikrofon gesprochen habe – diese Aufnahme wurde von Qwen3-TTS in eine wiederverwendbare Sprachansage umgewandelt. Jeder Satz, den Sie gehört haben, wurde aus dieser Ansage synthetisiert, niemals aus der Originalaufnahme. Hier ist diese Aufnahme:
Randbemerkung: Meine Regeln für die Text-to-Speech-Funktion, die ich mir alle auf die harte Tour erarbeitet habe – Vertrauen Sie nicht der Diagnose des Modells hinsichtlich seines eigenen Versagens. Man gibt dem Tool die Schuld; der Fehler liegt jedoch meist bei Ihrer Infrastruktur. - Überprüfen Sie die Eingaben und die Verknüpfungen, bevor Sie davon ausgehen, dass „es sich um eine Einschränkung des Modells handelt“. Dort liegt die eigentliche Ursache. - Betrachten Sie auch eine scheinbar sichere Lösung als Hypothese. Eine Abhilfe für ein „bekanntes Artefakt“ hat einst mehr Schaden angerichtet, als sie behoben hat. - Eine dokumentierte Funktion stellt eine Zusicherung dar, keine Garantie. Die beworbene IPA-Aussprachekontrolle hat bei mir nie funktioniert; die Umschreibung hingegen schon. - Tragen Sie Fantasienamen in einer Nachschlagetabelle phonetisch ein. Das Modell erkennt die Schreibweise, nicht die Absicht. - Prüfen Sie jeden Namen am Anfang, in der Mitte und am Ende eines Satzes. Die Position beeinflusst die Aussprache. - Ordnen Sie einen Namen sich selbst zu, um zu vermerken: „Überprüft, unverändert lassen.“ Man sollte also nichts ändern, was bereits gut funktioniert. - Unterscheiden Sie die Wahl der Stimme von der Aussprache. Zwei Probleme, zwei Werkzeuge, deutlich weniger Regenerationen. - Übernehmen Sie die Sprachstile aus einer charaktergerechten Einleitung und nicht aus einem neutralen Absatz. Die Persönlichkeit des Samples bleibt erhalten.
Quellenangaben. Für die Stimmen wurden Text-to-Speech-Modelle von Drittanbietern verwendet: Qwen3-TTS (Alibaba) für das Klonen der Charaktere, wobei MOSS-TTS als Alternative getestet wurde. Die dazugehörige Pipeline, die Tools für das Casting und die Phonetik sowie das Format der Erzählung stammen von mir.
Alle Bilder in diesem Beitrag, einschließlich des Header-Bildes, stammen von mir und wurden mit der in Teil 2 dieser Serie beschriebenen KI-Bild-Pipeline erstellt.
Verfasst von

Lotte-Sara Laan
Unsere Ideen
Weitere Blogs
Contact



