Zum Hauptinhalt springen

Grundlegende Sprachsynthese

Die folgende talk.php ist ein Beispiel, das aus Text Audio synthetisiert und in eine WAV-Datei schreibt.
PHP-FFI ist in Webserver-Umgebungen (wie FPM) normalerweise deaktiviert. Führen Sie dieses Skript wie php talk.php über die CLI aus.
Ausführen:

Sprachsynthese in einem Schritt (tts-Methode)

Wenn Sie die zwei Schritte createAudioQuery + synthesis überspringen möchten, können Sie die tts()-Methode verwenden:

Sprachsynthese mit Katakana-Notation

Sie können auch aus Katakana in AquesTalk-ähnlicher Notation synthetisieren:

Benutzerwörterbuch verwenden

Um die Aussprache benutzerdefinierter Wörter zu registrieren, verwenden Sie UserDict:

Anpassung der AudioQuery

Wenn Sie das mit createAudioQuery gewonnene JSON vor der Synthese anpassen, können Sie Intonation und Tempo fein steuern:

Akzentphrasen abrufen

Sie können die Akzentphrasen-Informationen eines Textes abrufen und prüfen bzw. bearbeiten:

GPU-Modus verwenden

In Umgebungen mit GPU können Sie durch Angabe von AccelerationMode::Gpu die Geschwindigkeit erhöhen:

Mehrere Audiomodelle verwenden

Sie können mehrere .vvm-Dateien laden und durch Wechseln der Style-ID mehrere Charakterstimmen verwenden:
Das Verhalten, wenn bereits ein Modell mit derselben ID geladen ist, können Sie mit OnExistingVoiceModelId als zweitem Argument von loadVoiceModel() festlegen. Der Standardwert Error löst eine Exception aus, Reload lädt das Modell neu und Skip tut nichts:

PCM frameweise erzeugen

Wenn Sie ein mit createAudioFeature() erstelltes AudioFeature nach Frame-Bereichen mit slice() aufteilen und mit render() rendern, können Sie auch lange Texte schrittweise in Audiodaten umwandeln. Das folgende Beispiel schreibt PCM in Abschnitten von etwa 0,3 Sekunden:
Die Ausgabe von render() ist kein WAV, sondern rohe 16-Bit-PCM-Daten. Für diese Methode ist ein VVM-v2-Modell erforderlich. Die C-API bietet Funktionen zum Erstellen eines AudioFeature und zum Rendern von Bereichen, aber keine High-Level-API streaming_synthesis.
Zuletzt geändert am 27. Oktober 2026