Files
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

7.5 KiB
Raw Permalink Blame History

titel, stand, status
titel stand status
Audio-Konzept Logistik — Level 1 2026-04-25 Entwurf, zur Review mit Thomas

Audio-Konzept Level 1

Ziel: Begleitende gesprochene Sprache fuer Level 1, um die Simulation immersiver und didaktisch zugaenglicher zu machen. Fuer Easy-Language eigene, kuerzere Zeilen.

1. Stil und Rolle

Eine Rolle: „Disponent*innen-Funk" Stell sie dir vor wie eine Funk-Verbindung zur Spedition — ruhig, freundlich, knapp. Weder Radiomoderatorin noch Nachrichtensprecherin. Keine Effekte-Flut, keine Dauerberieselung.

Stimme: eine weibliche Stimme, 25-40, warm aber sachlich, neutrales Standarddeutsch, Easy-Variante dazu vom selben Sprecher*in (weniger Tempo, einfachere Satzstruktur).

Lautstaerke: deutlich unter der Hintergrundmusik (-6 dB), sodass nicht ueberlagert wird. Bei Wichtigem (Event-Start, Fail) kurzer Duck der Musik.

2. Wann was gesprochen wird

Kategorien nach Prioritaet — je hoeher, desto wichtiger / ununterdrueckbar.

2.1 Level-Einstieg (einmal pro Durchgang)

Trigger Standard-Text Easy-Text
nach Splash dismiss „Willkommen bei Spedition Wien. Dein Lieferwagen steht bereit. Klick einen Auftrag an — los geht's." „Guten Tag. Dein LKW ist da. Klick einen Auftrag."

2.2 Auftrags-Lifecycle (pro Auftrag)

Trigger Standard-Text Easy-Text
Kontrakt angenommen (auto-loaded) „Auftrag nach {ZIEL} — Ladung ist drin." „Auftrag nach {ZIEL}."
Beladung laeuft (LOADING start) — optional, nur wenn Ladezeit > 10 min: „Beladung laeuft, {MIN} Minuten." — stumm
Lieferung angekommen, puenktlich „Lieferung in {ZIEL} abgeschlossen. {BETRAG} Euro verdient." „Fertig. Du hast {BETRAG} Euro."
Lieferung angekommen, verspaetet „Lieferung angekommen — leider zu spaet. Strafe {BETRAG} Euro." „Zu spaet. Kostet {BETRAG} Euro."

Kein Sound-Spam: wenn mehrere Ereignisse innerhalb 5 Sek zusammenkommen, nur das wichtigste sprechen.

2.3 Events (wenn ausgeloest)

Trigger Standard-Text Easy-Text
Verfahren-Event start „{NAME} hat sich verfahren. Klick die Stadt auf der Karte, wo der Auftrag hin soll." „{NAME} hat sich verirrt. Klick die Stadt."
Verfahren, richtiger Ort „Gut — {NAME} faehrt weiter." „Richtig!"
Verfahren, falscher Ort „Leider falsch — 1,5 Stunden verloren." „Falsch. Zeit weg."
Auto-Miete 2. LKW „Konto ueber 10.000 Euro — zweiter Lieferwagen gemietet. Tagesmiete ist jetzt 1.000 Euro." „Noch ein LKW. Miete jetzt hoeher."
Pflicht-Pause start „Lenkzeit-Pause — 45 Minuten." „{NAME} macht Pause."
Pflicht-Pause Ende — stumm (nicht wichtig genug) — stumm
Einpark-Minispiel perfekt „Sauber eingeparkt — Bonus fuer die naechste Ladung." „Super! Bonus!"
Einpark-Touchieren „Kratzer — 1.000 Euro Reparatur." „Au. Das kostet 1.000 Euro."
Einpark-Game-Over (Zeit abgelaufen) „Zu viel Zeit, Kollege uebernimmt." „Zu langsam."

2.4 Zeit-Meilensteine (optional, Hintergrundcharakter)

Trigger Standard-Text Easy-Text
Tag 1 Ende (24 h) „Tag 1 vorbei. Stand: {BETRAG}." „Ein Tag um. {BETRAG} Euro."
Tag 2 Ende (48 h) „Halbzeit. Stand: {BETRAG}." „Halbzeit. {BETRAG} Euro."
Tag 3 Ende (72 h) „Nur noch ein Tag." „Ein Tag bleibt."
1 h vor Ende „Letzte Stunde." „Gleich Schluss."

Pro Meilenstein nur einmal — keine Wiederholungen.

2.5 Level-Ende

Trigger Standard-Text Easy-Text
5 Sterne „Spitzenleistung — 5 Sterne! Endbilanz {BETRAG}." „Top! 5 Sterne!"
4 Sterne „Sehr gut — 4 Sterne. Endbilanz {BETRAG}." „Toll! 4 Sterne."
3 Sterne „Solide — 3 Sterne. Endbilanz {BETRAG}." „Gut. 3 Sterne."
2 Sterne „Knapp — 2 Sterne. Endbilanz {BETRAG}." „Okay. 2 Sterne."
1 Stern „Ueberlebt — 1 Stern. Endbilanz {BETRAG}." „Geschafft. 1 Stern."
Bankrott „Das Konto ist leer. Simulation beendet." „Kein Geld mehr. Aus."

3. Nicht vertont

Um Reiz-Overload zu vermeiden ausdruecklich nicht vertont:

  • Jede Routenplanung-Aktion
  • Offers die kommen/gehen (nur visuelle Cards)
  • LKW-Kilometerstand oder Zwischenzustaende
  • Bonus-Pills-Konsum (nur visuelle Flug-Animation)
  • Auto-Boost-Wechsel
  • Open/Close des Map-Popups

4. Platzhalter und Template-Syntax

Pro Zeile in der Audio-Datei gehoeren die Platzhalter fest eingesprochen oder als Composite. Vorschlag fuer Erstellung:

  • Fixe Zeilen einmal pro Standard + Easy einsprechen
  • Platzhalter ({ZIEL}, {BETRAG}, {NAME}) separat aufnehmen fuer jede L1-Staedte-ID (wien, salzburg, muenchen, innsbruck, graz, mailand, berlin) und die zwei Fahrernamen (Anna, Tom)
  • Betraege werden als Zahlen-Samples (1-50 in 1.000-Schritten) gesampled oder via Web-Speech zur Laufzeit ausgegeben

Alternative ohne Platzhalter-Sampling: alles ueber ElevenLabs-TTS bei Triggerung generieren (kurzer Fetch, Cache). Dann sind Platzhalter trivial.

5. Technische Integration

Option A — Pre-generierte Dateien (statisch, DSGVO-sauber)

  • App/sims/logistik/assets/audio/voice/de/
  • Filenames: <event-id>[_easy].mp3
  • Platzhalter: city_salzburg.mp3, betrag_1500.mp3, etc.
  • Ausspielung: Web Audio API, stacked je Trigger
  • Vorteil: offline-faehig, schnell, kein externer Call
  • Nachteil: Sampling-Komplexitaet bei Zahlen/Staedten

Option B — ElevenLabs-TTS on-demand

  • Engine ruft POST /api/tts?text=...&voice=de-anna&cache_key=...
  • Server cached, liefert mp3
  • Vorteil: beliebige Platzhalter, keine Sampling-Logik
  • Nachteil: API-Kosten (~0.0001 €/Char), Netzwerk-Abhaengigkeit, Latenz beim Erstaufruf

Option C — Web-Speech-API (Browser-nativ)

  • speechSynthesis.speak(new SpeechSynthesisUtterance(text))
  • Vorteil: kostenlos, offline, variabel
  • Nachteil: Qualitaet maessig, variiert je OS/Browser, iPad-Safari oft mittelmaessig

Empfehlung: Option A fuer alle fixen Lines + L1-Staedte + Fahrernamen (pre-generiert zur Release-Zeit). Betraege entweder diskret („zweistellig", „dreistellig") oder via Web-Speech (Option C) dynamisch drauflegen. Das mischt die Staerken.

6. User-Kontrolle

Ein Toggle im Header:

  • 🔊 an (default? — nein, aus als Default fuer Klassenumgebung)
  • 🔇 aus

Getrennter Toggle fuer:

  • Stimme (Sprachausgabe)
  • Sound-Effekte (Motor, Crash, Bonus-Pings) — existiert bereits

7. Produktions-Pipeline

  1. Phase 1 — Konzept (dieses Dokument) reviewen: Thomas bestaetigt oder veraendert die Texte / Stil.
  2. Phase 2 — Sprecher*in auswaehlen: Atlas hat ElevenLabs-Pipeline (siehe inbox/logistik/2026-04-22-1230-elevenlabs-sound-pipeline.md). Kann die gleiche Stimme genutzt werden wie fuer Heli?
  3. Phase 3 — Texte generieren: ca. 40 fixe Lines × 2 Sprachen = 80 samples. + 7 Staedte × 2 + 2 Namen × 2 = 18 Platzhalter-samples. Gesamt ~100 Dateien, ~15 MB.
  4. Phase 4 — Integration: Audio-Manager im game.html, getriggert von den bereits vorhandenen Notification-Types.
  5. Phase 5 — A/B-Test mit echter Klasse: messen, ob Stimme die Behalten-Rate der didaktischen Info erhoeht.

8. Fragen an Thomas

  • Stimmen-Geschlecht: weiblich fix, oder auch maennliche Variante waehlbar?
  • Easy-Language: separat einspielen oder im Code aus Standard ableiten (kuerzen)?
  • Defaults: Stimme von Anfang an an, oder Opt-in?
  • Musik-Duck: bei Sprachausgabe Musik auf -6 dB senken — OK?
  • Budget ElevenLabs: 100 Samples à 20 Zeichen = 2.000 Zeichen, bei ElevenLabs Creator Plan ~5 € Einmalaufwand. OK?

— Logistik