Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Text-to-Speech

Grundlegende Verwendung

Die grundlegende Verwendung von Text-to-Speech umfasst die folgenden einmaligen Schritte:

  • Enable TTS in the Godot editor for your project

  • Fragen Sie das System nach einer Liste der verwendbaren Stimmen ab

  • Speichern Sie die ID der Stimme, die Sie verwenden möchten

By default, the Godot project-level setting for text-to-speech is disabled, to avoid unnecessary overhead. To enable it:

  • Go to Project > Project Settings

  • Make sure the Advanced Settings toggle is enabled

  • Click on Audio > General

  • Ensure the Text to Speech option is checked

  • Restart Godot if prompted to do so.

Text-to-speech uses a specific voice. Depending on the user's system, they might have multiple voices installed. Once you have the voice ID, you can use it to speak some text:

# One-time steps.
# Pick a voice. Here, we arbitrarily pick the first English voice.
var voices = DisplayServer.tts_get_voices_for_language("en")
var voice_id = voices[0]

# Say "Hello, world!".
DisplayServer.tts_speak("Hello, world!", voice_id)

# Say a longer sentence, and then interrupt it.
# Note that this method is asynchronous: execution proceeds to the next line immediately,
# before the voice finishes speaking.
var long_message = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur"
DisplayServer.tts_speak(long_message, voice_id)

# Immediately stop the current text mid-sentence and say goodbye instead.
DisplayServer.tts_stop()
DisplayServer.tts_speak("Goodbye!", voice_id)

Anforderungen an die Funktionalität

Godot enthält eine Text-to-Speech-Funktionalität. Sie finden diese unter der DisplayServer-Klasse.

Godot ist für die Text-to-Speech-Funktionalität auf Systembibliotheken angewiesen. Diese Bibliotheken sind unter Windows und macOS standardmäßig installiert, aber nicht bei allen Linux-Distributionen. Wenn sie nicht vorhanden sind, wird die Text-to-Speech-Funktionalität nicht funktionieren. Insbesondere wird die Methode tts_get_voices() eine leere Liste zurückgeben, was bedeutet, dass es keine brauchbaren Stimmen gibt.

Sowohl Godot-Benutzer unter Linux als auch Endbenutzer unter Linux, die Godot-Spiele ausführen, müssen sicherstellen, dass ihr System die Systembibliotheken enthält, damit Text-to-Speech funktioniert. Bitte sehen Sie in der folgenden Tabelle oder in der Dokumentation Ihrer eigenen Distribution nach, welche Bibliotheken Sie installieren müssen.

Distro-spezifische Einzeiler

Arch Linux

pacman -S speech-dispatcher festival espeakup

Fehlersuche

If you get the error Invalid get index '0' (on base: 'PackedStringArray'). for the line var voice_id = voices[0], check if there are any items in voices. If not:

  • All users: make sure you enabled Text to Speech in project settings

  • Linux users: ensure you installed the system-specific libraries for text to speech

Bewährte Praktiken

Die bewährte Praxis für Text-to-Speech besteht darin, die Ausgabe an das Bildschirmlesegerät des Spielers zu senden, um blinden Spielern ein optimales Spielerlebnis zu bieten. Auf diese Weise bleiben die vom Benutzer eingestellte Sprache, Geschwindigkeit, Tonhöhe usw. erhalten, und es werden erweiterte Funktionen wie das Vor- und Zurückblättern im Text ermöglicht. Derzeit bietet Godot diese Integrationsebene noch nicht.

Beim derzeitigen Stand der Godot-APIs für Text-zu-Sprache gehören zur bewährten Praxis:

  • Entwickeln Sie das Spiel mit aktivierter Text-to-Speech-Funktion und stellen Sie sicher, dass alles richtig klingt

  • Ermöglicht es den Spielern zu bestimmen, welche Stimme verwendet werden soll, und diese Auswahl über mehrere Spielsitzungen hinweg zu speichern/beizubehalten

  • Ermöglicht es den Spielern, die Sprechgeschwindigkeit zu steuern und diese Auswahl über mehrere Spielsitzungen hinweg zu speichern/beizubehalten

Dies bietet Ihren blinden Spielern ein Höchstmaß an Flexibilität und Komfort, wenn sie keinen Bildschirmleser verwenden, und minimiert die Gefahr, sie zu frustrieren und zu entfremden.

Vorbehalte und sonstige Informationen

  • Rechnen Sie mit Verzögerungen, wenn Sie tts_speak und tts_stop aufrufen. Die tatsächliche Verzögerungszeit hängt sowohl vom Betriebssystem als auch von den Spezifikationen Ihres Rechners ab. Dies ist besonders kritisch bei Android und Web, wo einige der Stimmen von Webdiensten abhängen und die tatsächliche Zeit bis zur Wiedergabe von der Serverlast, der Netzwerklatenz und anderen Faktoren abhängt.

  • Nicht-englischer Text funktioniert, wenn die richtigen Stimmen installiert und verwendet werden. Unter Windows können Sie die Anweisungen in diesem Artikel konsultieren, um zusätzliche Sprachstimmen unter Windows zu aktivieren.

  • Nicht-ASCII-Zeichen, wie z. B. Umlaute, werden korrekt ausgesprochen, wenn Sie die richtige Stimme auswählen.

  • Blinde Spieler verwenden eine Reihe von Bildschirmleseprogrammen, darunter JAWS, NVDA, VoiceOver, Narrator und andere.

  • Windows Text-to-Speech-APIs haben in der Regel eine bessere Performance als ihre Äquivalente auf anderen Systemen (z. B. spricht tts_stop gefolgt von tts_speak sofort die neue Nachricht).