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:

  • Aktivieren Sie TTS im Godot-Editor für Ihr Projekt

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

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

Die Godot-Projekteinstellung für Text-to-Speech ist standardmäßig deaktiviert, um unnötigen Overhead zu vermeiden. Um sie zu aktivieren:

  • Gehen Sie zu Projekt > Projekteinstellungen

  • Stellen Sie sicher, dass der Schalter Erweiterte Einstellungen aktiviert ist

  • Klicken Sie auf Audio > Allgemein

  • Stellen Sie sicher, dass die Option Text-to-Speech aktiviert ist

  • Starten Sie Godot neu, wenn Sie dazu aufgefordert werden.

Text-to-Speech verwendet eine bestimmte Stimme. Je nach System des Benutzers können mehrere Stimmen installiert sein. Sobald Sie die Stimm-ID haben, können Sie damit einen Text sprechen:

# 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

Wenn Sie die Fehlermeldung Ungültiger get index '0' (auf Basis: 'PackedStringArray'). für die Zeile var voice_id = voices[0] erhalten, überprüfen Sie, ob es irgendwelche Elemente in voices gibt. Wenn nicht:

  • Alle Benutzer: Stellen Sie sicher, dass Sie Text-to-Speech in den Projekteinstellungen aktiviert haben

  • Linux-Benutzer: Stellen Sie sicher, dass Sie die systemspezifischen Bibliotheken für Text-to-Speech installiert haben

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).