✦ SPIELWELTENSpace Hero ↗

Qwen-Bordcomputer: feste Referenz und Aussprachevergleich

Spätere Entscheidung: Der Nutzer bevorzugt A („Commander“), beschreibt die Stimme jetzt als sehr gut und fordert ausdrücklich die Implementierung. Die folgende Dokumentation hält den vorausgegangenen Hörvergleich fest. Die Lautschreibung B („Kommander“) wird nicht in die Spielvertonung übernommen; die feste Referenz und die gehörten Storytakes bilden die Produktionsgrundlage.

Anlass

Der Nutzer hat die erste 20,32-Sekunden-Probe tatsächlich gehört und die Stimmrichtung positiv bewertet. Im Warnsatz mit „Commander“ stört ein englisch-deutscher Akzent. Dieser Durchgang bearbeitet diese konkrete Rückmeldung und erprobt drei echte Storytexte mit derselben Referenz. Die Stimmrichtung muss nicht erneut grundsätzlich gewählt werden.

Stimme und Quelle

Die Referenz ist die eigene synthetische Statusaufnahme aus Artifacts/Speech/Qwen/runs/20260908-003532-voicedesign/01-status.wav: 5,84 Sekunden, Mono, 24 kHz. Referenztext: „Die Intrepid empfängt wieder Signale. Kurs stabil. Alle Systeme bereit.“ SHA-256: 0269e9b042321dfb820374e74c93ee37b203f7d1a22d7f21de802d2c90bd7f3b.

Der offizielle Qwen-Ablauf „Voice Design then Clone“ verwendet eine selbst erzeugte Aufnahme als wiederverwendbare Referenz für das Base-Modell. Hier wird create_voice_clone_prompt einmal mit Audio und exaktem Referenztext aufgerufen (x_vector_only_mode=False); alle fünf Takes erhalten dieses Prompt und language="German". Das frühere VoiceDesign hatte ebenfalls bereits ausdrücklich Deutsch gesetzt. Die neue Änderung ist die feste akustische Referenz und beim B-Vergleich zusätzlich die Lautschreibung. Der Zusammenhang zwischen einer englisch formulierten Stimmbeschreibung und dem wahrgenommenen Akzent ist nicht nachgewiesen.

Modell: Qwen3-TTS-12Hz-1.7B-Base, Revision fd4b254389122332181a7c3db7f27e918eec64e3, öffentlich und als Apache-2.0 ausgewiesen. Quellenmanifest, vollständige Metadaten, Lizenztext und Dateien liegen getrennt unter Artifacts/Speech/QwenNarration. Große Gewichtsdateien werden gegen veröffentlichte SHA-256-Werte geprüft, kleine Dateien gegen den veröffentlichten Git-Blob-Hash. Nur eine nach Publisher-Hash identische Sprach-Tokenizerdatei wird aus dem bestehenden VoiceDesign-Verzeichnis kopiert.

Die bestehende Qwen-Pythonumgebung bleibt erhalten. Die Erzeugung läuft offline auf der RTX 4060 mit BF16 und SDPA, einzeln pro Take und ohne gleichzeitig laufendes Unity. Seed 4317, Temperatur 0,8, Top-k 50, Top-p 1,0, Wiederholungsstrafe 1,05; maximal 512 neue Audiotoken statt der bisherigen 256, damit die längeren Storytexte ausreichend Platz haben. Keine neue Sprecherbeschreibung, keine Aufnahme einer Person oder von ElevenLabs, kein Sprachdienstkonto und keine Tonhöhen-/Tempoeffekte.

Begrenzte Aufnahmegruppe

Take Inhalt / Syntheseänderung
warning-reference · A Vollständige ursprüngliche Warnzeile, „Commander“ unverändert; neue feste Statusreferenz
warning-phonetic · B Gleiche Warnzeile und Referenz, ausschließlich „Commander“ → „Kommander“
story-1 Vorbereitung im Hangar; ausschließlich „Mike“ → „Maik“
briefing-1-3 Krabbe-Auftrag; exakter aktueller Sprechertext
briefing-3-2 Konvoi-Auftrag; exakter aktueller Sprechertext

Die Warnzeile ist ein Hörvergleich und kein zusätzlicher Spieltrigger. In den 13 Storytexten kommt „Commander“ nur im Finale vor. source_text bleibt immer der kanonische Text, synthesis_text enthält gegebenenfalls die Aussprachehilfe. Die drei Storytexte werden vor der Aufnahme gegen ihre IDs im aktuellen C#-Katalog geprüft. Die getrennten Text- und Audiohashes halten diese Zuordnung nachprüfbar fest. „Intrepid“ und „Relais“ werden ohne belegten Fehler nicht vorsorglich umgeschrieben.

Reproduktion und Prüfung

& 'Artifacts/Speech/Qwen/.venv/Scripts/python.exe' 'Tools/Prepare-Qwen-Narration.py' prepare
$env:CUDA_LAUNCH_BLOCKING = '1' # Einstellung des erfolgreichen Wiederholungslaufs
& 'Artifacts/Speech/Qwen/.venv/Scripts/python.exe' 'Tools/Generate-Qwen-Narration.py' generate --selection all
# Danach das konkret ausgegebene Laufverzeichnis einsetzen:
& 'Artifacts/Speech/Qwen/.venv/Scripts/python.exe' 'Tools/Verify-Qwen-Narration.py' 'Artifacts/Speech/QwenNarration/runs/<Lauf>'

prepare verwendet nur HTTP, Hashprüfung und Dateikopien. generate verweigert unvollständige Manifeste und prüft Modell-, Referenz- und Quelltextintegrität erneut, bevor es die GPU lädt. Rohaufnahmen bleiben als Float-WAV erhalten; die Ausgabe ist Mono-PCM16. Pegel werden nur bei Bedarf auf eine Spitze von höchstens 0,95 abgesenkt. Beide Vorschauen bestehen aus exakt den gespeicherten PCM-Samples mit 0,8 Sekunden Pause zwischen den Takes.

Die unabhängige Prüfung liest die tatsächlichen Dateien, kontrolliert Header, Frames, Hashes, Pegel und Textzuordnung und vergleicht Vorschauen bytegenau mit ihren Einzelclips. Eine zusätzliche lokale Whisper-Transkription auf der CPU dient zum Erkennen möglicher Wortauslassungen; sie erhält keinen vorgegebenen Textprompt. Weder Wellenform noch Transkript beweisen akzentfreie Aussprache oder dieselbe wahrgenommene Sprecheridentität.

Tatsächlich erzeugte Dateien

Vollständiger Lauf: Artifacts/Speech/QwenNarration/runs/20260908-125353-reference, beendet mit Exit 0. Aussprachevergleich A/B: 13,68 Sekunden, A ab 0, B ab 7,28 Sekunden. Drei Storytakes: 28,40 Sekunden, Hangar ab 0, Krabbe ab 10,16 und Konvoi ab 18,96 Sekunden.

Take Dauer PCM-Spitze RMS
A · Commander 6,48 s 0,8594 0,0753
B · Kommander 6,40 s 0,8320 0,0757
Hangar 9,36 s 0,7422 0,0721
Krabbe 8,00 s 0,7813 0,0858
Konvoi 9,44 s 0,8477 0,0790

Keine Pegelabsenkung erforderlich. Der unabhängige Prüfer bestätigt alle fünf Roh-/PCM-Paare und beide Vorschauen: 120 einzelne Bedingungen erfüllt, keine verletzt; dazu gehören vollständige Header/Frames, keine PCM-Vollpegelsättigung und exakte Vorschau-Samples/Pausen. Das sind Bedingungen innerhalb einer Dateiprüfung, keine 120 unabhängigen Hörtests. Maximal von PyTorch belegt: 4.575.290.368 Bytes; reserviert: 4.940.890.112 Bytes. Tatsächlich geladen: BF16, CUDA 0 und SDPA in Hauptmodell, Talker und Code-Predictor. Die fünf Synthesen benötigten mit synchroner Fehlererfassung insgesamt 187,499 Sekunden.

Die automatischen Transkripte enthalten alle vorgesehenen Sätze. Sie weichen an einzelnen Wörtern ab: unter anderem „Magnet war led“ statt „Magnetwal lädt“, „ein Schiff“ statt „dein Schiff“, „Enttrapid“ und „trifft“ statt „triff“. Das sind konkrete Hörprüfstellen; ein ASR-Fehler oder eine tatsächliche Ausspracheabweichung lässt sich daraus allein nicht unterscheiden. Die Schreibweise „Kommander“ wird in Variante B erkannt, belegt aber keinen akzentfreien ganzen Satz. Die Storygruppe wird deshalb als neuer Take und nicht als fertige Sprachabnahme ausgeliefert.

Nachweise im selben Verzeichnis: narration-manifest.json, verification.json, asr-sanity.json sowie eingefrorene Quellenmanifeste. Aussprachevorschau SHA-256: f6c64ea5e82d9b2e9ee658663026cae3be20e05435e73687321bf519b00a7a12; Storyvorschau: 6feb482c07006b4f2de9846adb825793a5e9b01188f1e899dc08071bb3189be2. Die unveränderte bestehende Whisper-Base-Installation wurde offline auf der CPU verwendet; das lokale Prüfsystem liegt mit Skript-/Modellhash unter Artifacts/Speech/QwenNarration/transcribe-audition.py beziehungsweise im Transkriptbericht.

Aufbewahrter Fehllauf

20260908-125216-reference erzeugte vier Takes und brach beim fünften mit torch.AcceleratorError: CUDA error: an illegal instruction was encountered ab. Sein Fehlermanifest und die vier Dateien bleiben erhalten. Es wurde kein Speichermangel gemeldet. Nach Prozessende zeigte die GPU-Abfrage 62 °C, 1.933 von 8.188 MiB belegt und Treiber 577.00; das ist keine Messung zum Fehlerzeitpunkt und keine Ursachenfeststellung.

Der vollständige zweite Prozess verwendete CUDA_LAUNCH_BLOCKING=1 zur synchronen Fehlererfassung und endete erfolgreich. Die lokale API-Prüfung fand keinen konkreten Mutations-/Lebensdauerfehler in der wiederverwendeten Referenz. Treiber und Pakete wurden nicht geändert. Die Ursache des Erstfehlers bleibt offen; der erfolgreiche Wiederholungslauf beweist keine dauerhafte Behebung. Hinweise auf fehlendes SoX und FlashAttention erschienen wie schon bei der ursprünglichen Probe; sämtliche gelieferten Takes wurden trotzdem mit den protokollierten Einstellungen erzeugt.

Abnahmegrenze

Die neuen Takes sind eine gezielte Hörgruppe außerhalb der Spielassets. Die Storybank ist weiterhin leer; Menüknöpfe erhalten keine Sprache. Die gesamte Storyproduktion und der Mix im tatsächlichen Spiel folgen auf den passenden Klang dieser ersten Gruppe. Ein positiver technischer Bericht ist keine vorweggenommene Hörabnahme.