Zum Hauptinhalt springen
VOICEVOX für Laravel ist ein Paket zur Nutzung der Sprachsynthese-Funktion von VOICEVOX in Laravel. Sie können aus Text japanische Sprache erzeugen.
Am schnellsten starten Sie mit dem Client-Modus. In Umgebungen mit FFI können Sie später schrittweise auf den Native-Modus oder den Engine-API-Modus umsteigen.

Drei Nutzungsmodi

ModusAusführungFFIGeeigneter EinsatzGuide
Client-ModusHTTP-Verbindung zur offiziellen VOICEVOX-EngineNicht erforderlichZum Ausprobieren, Docker-Umgebungen, Umgebungen ohne FFIClient Talk / Client Song
Native-ModusDirekter Aufruf des VOICEVOX CORE über PHP-FFIErforderlichGeschwindigkeit, Offline-Ausführung, CLI-Tool-IntegrationNative Talk / Native Song
Engine-API-ModusLaravel bietet eine VOICEVOX-kompatible APIErforderlichBereitstellung als API-Server, Multi-Client-IntegrationEngine Talk / Engine Song

Schnellstart

Schritte für den Client-Modus.
1

Paket installieren

composer require revolution/laravel-voicevox
Details siehe Installation und Konfiguration.
2

Offizielle Engine starten

docker pull voicevox/voicevox_engine:cpu-latest
docker run --rm -p '127.0.0.1:50021:50021' voicevox/voicevox_engine:cpu-latest
3

Sprachsynthese ausprobieren

use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('こんにちは、Laravel です。', id: 1)->generate(id: 1);
$response->storeAs('output.wav');

Hauptfunktionen

Sprachsynthese (Talk)

use Revolution\Voicevox\Client\TalkAudioQuery;
use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('こんにちは', id: 1)
    ->tap(function (TalkAudioQuery $talk) {
        $talk->audioQuery['speedScale'] = 1.2;
        $talk->audioQuery['pitchScale'] = 0.05;
        $talk->audioQuery['intonationScale'] = 1.5;
        $talk->audioQuery['volumeScale'] = 1.0;
    })
    ->generate(id: 1);

Gesangssynthese (Song)

use Revolution\Voicevox\Song\Note;
use Revolution\Voicevox\Song\Score;
use Revolution\Voicevox\Voicevox;

$score = Score::make([
    Note::make(length: 15),
    Note::make(length: Note::len(ticks: 480, bpm: 120), lyric: 'ド', key: 60),
    Note::make(length: Note::len(480, 120), lyric: 'レ', key: 62),
    Note::make(length: Note::len(960, 120), lyric: 'ミ', key: 64),
    Note::make(length: 2),
]);

$response = Voicevox::song($score)->generate(id: 3001);

Benutzerwörterbuch und Presets

Im Client-Modus verwalten Sie über die Voicevox-Facade das Benutzerwörterbuch und die Presets auf der Seite der offiziellen Engine.
use Revolution\Voicevox\Voicevox;

$uuid = Voicevox::addWord(
    surface: 'Laravel',
    pronunciation: 'ララベル',
    accentType: 3,
);

$presetId = Voicevox::addPreset([
    'id' => 0,
    'name' => 'ゆっくり丁寧',
    'speaker_uuid' => '7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff',
    'style_id' => 1,
    'speedScale' => 0.8,
    'pitchScale' => 0.0,
    'intonationScale' => 1.2,
    'volumeScale' => 1.0,
    'prePhonemeLength' => 0.1,
    'postPhonemeLength' => 0.1,
]);

Laravel-AI-SDK-Integration

use Laravel\Ai\Audio;

$audio = Audio::of('こんにちは、Laravel です。')
    ->voice('ずんだもん')
    ->generate();

$audio->storeAs('output.wav');

Nächste Schritte

Zuletzt geändert am 13. Juli 2026