Zum Hauptinhalt springen

Übersicht

revolution/laravel-voicevox ist ein Paket zur Nutzung von VOICEVOX aus Laravel. Sowohl der Client-Modus, der über HTTP eine Verbindung zur offiziellen Engine herstellt, als auch der Native-Modus, der VOICEVOX Core für PHP verwendet und direkt über PHP-FFI synthetisiert, lassen sich im gleichen Laravel-Stil verwenden.
Wenn Sie zunächst die Grundlagen von FFI ordnen möchten, siehe PHP FFI; zur Einrichtung der Core-Library selbst siehe VOICEVOX Core für PHP und Verwendung.

Feature-Tabelle

FeatureSupportedDescription
VOICEVOX ClientZugriff auf die offizielle VOICEVOX-Engine-API über HTTP. FFI ist nicht erforderlich.
VOICEVOX CoreNutzt die dynamische Bibliothek von VOICEVOX CORE über VOICEVOX Core für PHP.
Laravel styleFacade, Helper, config/voicevox.php, .env – im typischen Laravel-Stil nutzbar.
Laravel-AI-SDK-IntegrationAuch über den Audio-Workflow des Laravel AI SDK nutzbar.
VOICEVOX Engine⚠️Integriert eine VOICEVOX-kompatible API in die Laravel-Anwendung. Nicht unterstützte Teile fallen auf die offizielle Engine zurück.
VOICEVOX Engine / OpenAI-kompatible TTS-APIBei /v1/audio/speech unterstützt voice neben Style-IDs auch Aliase wie „ずんだもん” – analog zum AI SDK.
VOICEVOX Editor⚠️Eine song-spezifische App für macOS wurde entwickelt, aber es ist keine Veröffentlichung/Distribution im App Store geplant. Sobald der Code irgendwann auf GitHub veröffentlicht wird, können Sie ihn mit Xcode bauen und verwenden.

Anforderungen

  • PHP 8.3+
  • Laravel 12+
  • ext-zip
  • Für Native-Modus / Engine-API: ext-ffi
  • Lokale CLI-Umgebung
In üblichen Webserver-Umgebungen einschließlich Laravel Cloud ist FFI häufig deaktiviert. Betrachten Sie Native-Modus und Engine-API daher als auf lokale CLI-Umgebungen ausgelegt.

Modusübersicht

ModusAusführungFFIHauptzweckGuide
Client TalkHTTP-Request an die offizielle EngineNicht erforderlichText-Sprachsyntheseclient-talk
Client SongHTTP-Request an die offizielle EngineNicht erforderlichGesangssyntheseclient-song
Native TalkDirekter Aufruf von VOICEVOX CORE über FFIErforderlichLokale Text-Sprachsynthesenative-talk
Native SongDirekter Aufruf von VOICEVOX CORE über FFIErforderlichLokale Gesangssynthesenative-song
Engine-APIBietet die kompatible API innerhalb der Laravel-AnwendungErforderlichIntegrierte VOICEVOX-kompatible APIinstallation

Warum tap() passt

Dieses Paket gibt direkt nach talk() / song() das Audio-Query-Objekt zurück, sodass Sie vor generate() eine Anpassungsphase einfügen können. Deshalb ist mit tap() das Schreibmuster natürlich, den Rückgabewert nicht zu ändern, sondern nur die Query anzupassen.
use Revolution\Voicevox\Client\TalkAudioQuery;
use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('タップで調整できるのだ', id: 1)
    ->tap(function (TalkAudioQuery $talk) {
        $talk->audioQuery['speedScale'] = 1.2;
    })
    ->generate(id: 1);
  • Bei Talk können Sie speedScale, pitchScale usw. anpassen.
  • Bei Song können Sie mit sync() F0 und Lautstärke neu berechnen.
  • Sie können sauber an das von generate() zurückgegebene VoicevoxResponse weiterketten.
Die Idee hinter tap() selbst ist unter tap()-Helper und Tappable-Trait zusammengefasst. Dieses Paket ist ein besonders anschaulicher praktischer Anwendungsfall.

Dokumentation

Installation

Reine Client-Einrichtung, FFI-basierte Einrichtung, Veröffentlichung der Konfigurationsdatei, Vorbereitung der Engine-Ressourcen.

Client Talk

Text-Sprachsynthese mit der offiziellen VOICEVOX-Engine starten.

Client Song

Score und Note zusammenbauen und Gesangssynthese durchführen.

Native Talk

Lokale Synthese über PHP-FFI und VOICEVOX CORE.

Native Song

Nutzung des Gesangsmodells direkt über FFI.

VOICEVOX Core für PHP

Einrichtung der Core-Library und Nutzung auf reiner PHP-Seite.
Zuletzt geändert am 13. Juli 2026