Zum Inhalt

XLinSpeak

XLinSpeak ist ein Linux-only Plugin, das Text-to-Speech (TTS) für X-Plane-Plugins nachrüstet. Unter Windows und macOS nutzt X-Plane die plattformeigenen Sprach-Engines — unter Linux fehlt diese Anbindung. XLinSpeak schließt diese Lücke über speech-dispatcher.

Hintergrund

X-Plane 12 verwendet für das eingebaute ATC vorgenerierte Audiodateien, die auch unter Linux funktionieren. XLinSpeak wird primär für Plugin-generierte Sprache benötigt — etwa Xchecklist-Ansagen, 124thATC oder andere Plugins, die XPLMSpeakString() aufrufen.

Funktionsumfang

  • Binary Hooking: Fängt X-Planes interne Sprach-Funktionen auf Maschinencode-Ebene ab und leitet den Text an speech-dispatcher weiter
  • Transparente Integration: Funktioniert automatisch mit allen Plugins, die X-Planes Sprachausgabe nutzen
  • Keine Konfiguration: Vollständig automatisch nach der Installation — kein UI nötig

Mehrwert in der Flugsimulation

Ohne XLinSpeak bleibt Linux-Nutzern bei Plugin-Sprachausgabe nur das Text-Overlay auf dem Bildschirm — keine Audioausgabe. Das Plugin stellt die Gleichwertigkeit mit Windows und macOS her, sodass Checklisten-Ansagen, ATC-Plugins und andere sprachgesteuerte Erweiterungen auch unter Linux hörbar sind.

Installation

Download: sparker256/XLinSpeak

Die vorkompilierte Binary befindet sich im Repository unter XLinSpeak/lin_x64/XLinSpeak.xpl. Den Ordner XLinSpeak nach Resources/plugins/ kopieren.

Voraussetzung: speech-dispatcher

sudo apt install speech-dispatcher

Das Standard-Backend espeak-ng funktioniert zuverlässig. Kein dediziertes Piper-Modul für speech-dispatcher vorhanden — Piper lässt sich nur manuell via GenericExecuteSynth integrieren, anders als der unten beschriebene Piper TTS Manager.

Build aus Quellcode

sudo apt install libspeechd-dev nasm gcc
cd XLinSpeak/src
make

Alternative: Piper TTS Manager

Piper TTS Manager (PTTSM) ist ein FlyWithLua-Skript, das hochwertige neuronale Sprachsynthese für X-Plane bereitstellt. Während XLinSpeak XPLMSpeakString()-Aufrufe abfängt und über espeak-ng ausgibt (funktional, aber robotisch), nutzt PTTSM neuronale Piper-Sprachmodelle — mit einer Sprachqualität vergleichbar mit Cloud-basierten TTS-Diensten.

PTTSM überwacht eine Text-Eingabedatei und generiert WAV-Audio über Piper, sobald neuer Text erscheint. Es wurde für das SimpleATC-Modul von X-ATC-Chatter entwickelt und unterstützt mehrere Sprachmodelle, die verschiedenen Akteuren zugeordnet werden können.

Abhängigkeiten

  • FlyWithLua NG+ für X-Plane 12
  • Piper-TTS-Binary — TheLouisHong/piper Fork nutzen (piper_linux_x86_64.tar.gz); das OHF-Voice/piper1-gpl-Upstream liefert nur Python-Wheels. Der Inhalt des entpackten piper-Ordners gehört nach Resources/plugins/FlyWithLua/Modules/PiperTTSManager/Resources/Piper_LIN
  • Sprachmodelle (.onnx + .onnx.json) von Hugging Face piper-voices

XLinSpeak und PTTSM lösen unterschiedliche Probleme

XLinSpeak fängt X-Planes interne Sprachfunktionen ab — benötigt für Plugins, die XPLMSpeakString() aufrufen. PTTSM stellt eine eigene TTS-Pipeline bereit für Plugins, die Text in eine Datei schreiben (wie X-ATC-Chatter). Beide können ohne Konflikte parallel laufen.

TTS-Optionen unter Linux

Lösung Mechanismus Qualität Einsatzbereich
XLinSpeak + espeak-ng Hookt XPLMSpeakString() → speech-dispatcher Funktional (robotisch) Plugin-Sprache (Xchecklist, 124thATC)
Piper TTS Manager FlyWithLua + neuronale Piper-Modelle Hoch (natürlich) X-ATC-Chatter, eigene TTS
X-Plane 12 eingebautes ATC Vorgenerierte Audiodateien Gut Standard-ATC (alle Plattformen)

Quellen