Zum Hauptinhalt springen

Laravel-AI-SDK-Integration

VOICEVOX für Laravel ist mit dem Laravel AI SDK integriert und ermöglicht Sprachsynthese über die Audio-Facade. Es stehen die folgenden zwei Driver zur Verfügung.
  • voicevox-client (Client-Modus)
  • voicevox (Native-Modus)

Client-Driver (voicevox-client)

Ein Modus, der HTTP-Requests an die offizielle VOICEVOX-Engine sendet. FFI ist nicht erforderlich.

Vorbereitung

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

Konfiguration

Fügen Sie in config/ai.php den Provider voicevox-client hinzu.
'providers' => [
    'voicevox-client' => [
        'driver' => 'voicevox-client',
        'key' => env('VOICEVOX_URL', 'http://127.0.0.1:50021'),
    ],
],

Verwendung

use Laravel\Ai\Audio;

$response = Audio::of('Laravelが好きなのだ')
    ->voice('ずんだもん')
    ->generate('voicevox-client');

Storage::put('talk.wav', $response->content());

Native-Driver (voicevox)

Ein Modus, der VOICEVOX CORE direkt aufruft. FFI ist erforderlich. Es können nur die in core.vvms in config/voicevox.php geladenen Modelle verwendet werden.

Konfiguration

'providers' => [
    'voicevox' => [
        'driver' => 'voicevox',
    ],
],

Verwendung

use Laravel\Ai\Audio;

$response = Audio::of('ネイティブで話すのだ')
    ->voice('ずんだもん')
    ->generate('voicevox');

Storage::put('talk.wav', $response->content());

Für voice() zulässige Werte

Für voice() können Sie Folgendes angeben.
  • VOICEVOX-Style-ID (numerischer String)
  • Charakternamen-Alias (z. B. ずんだもん, 四国めたん/ノーマル)

Alias-Liste

AliasStyle-IDCharakter
ずんだもん1Zundamon (amaama)
ずんだもん/あまあま1Zundamon (amaama)
ずんだもん/ノーマル3Zundamon (normal)
ずんだもん/セクシー5Zundamon (sexy)
ずんだもん/ツンツン7Zundamon (tsuntsun)
ずんだもん/ささやき22Zundamon (Flüstern)
ずんだもん/ヒソヒソ38Zundamon (hisohiso)
四国めたん/あまあま0Shikoku Metan (amaama)
四国めたん2Shikoku Metan (normal)
四国めたん/ノーマル2Shikoku Metan (normal)
四国めたん/セクシー4Shikoku Metan (sexy)
四国めたん/ツンツン6Shikoku Metan (tsuntsun)
四国めたん/ヒソヒソ37Shikoku Metan (hisohiso)
春日部つむぎ8Kasukabe Tsumugi (normal)
波音リツ9Namine Ritsu (normal)
雨晴はう10Amehare Hau (normal)
玄野武宏11Kurono Takehiro (normal)
白上虎太郎12Shirakami Kotaro (normal)
青山龍星13Aoyama Ryusei (normal)
冥鳴ひまり14Meimei Himari (normal)
九州そら16Kyushu Sora (normal)
default-female10Amehare Hau (normal)
default-male12Shirakami Kotaro (normal)
Wenn voice() weggelassen wird, wird default-female (ID: 10) verwendet.
use Laravel\Ai\Audio;

Audio::of('テスト')->voice('3')->generate('voicevox-client');
Die Liste der verfügbaren Speaker können Sie auch über Voicevox::speakers() abrufen.
use Revolution\Voicevox\Voicevox;

$speakers = Voicevox::speakers();

Agent (KanalizerAgent)

Da im Native-Modus enable_katakana_english nicht vorhanden ist, können Sie den KanalizerAgent verwenden, um Englisch vorab in Katakana umzuwandeln.
use Revolution\Voicevox\Ai\Agents\KanalizerAgent;
use function Revolution\Voicevox\talk;

$kana = KanalizerAgent::make()->prompt('KanalizerAgentで英語をカタカナに変換するのだ');

$response = talk($kana['kana'] ?? $kana->text, id: 1)->generate(id: 1);

$response->storeAs('native', 'kanalizer.wav');
Die Katakana-Umwandlung durch die KI ist nicht immer korrekt. Prüfen Sie in produktivem Betrieb den generierten Text von einem Menschen, bevor Sie die Sprachsynthese durchführen.

Nächste Seiten

Client: Talk

Ablauf der regulären API im Client-Modus.

Native: Talk

Verwendung des Modus, der direkt über FFI synthetisiert.
Zuletzt geändert am 13. Juli 2026