Skip to main content

Laravel AI SDK integration

VOICEVOX for Laravel integrates with Laravel AI SDK, so you can generate speech through the Audio facade. Two drivers are available:
  • voicevox-client (client mode)
  • voicevox (native mode)

Client driver (voicevox-client)

Sends HTTP requests to the official VOICEVOX engine. No FFI required.

Prerequisites

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

Configuration

Add voicevox-client provider to config/ai.php.
'providers' => [
    'voicevox-client' => [
        'driver' => 'voicevox-client',
        'key' => env('VOICEVOX_URL', 'http://127.0.0.1:50021'),
    ],
],

Usage

use Laravel\Ai\Audio;

$response = Audio::of('I love coding with Laravel.')
    ->voice('ずんだもん')
    ->generate('voicevox-client');

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

Native driver (voicevox)

Calls VOICEVOX CORE directly via FFI. Only models loaded in core.vvms in config/voicevox.php can be used.

Configuration

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

Usage

use Laravel\Ai\Audio;

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

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

Values accepted by voice()

voice() accepts:
  • VOICEVOX style ID (numeric string)
  • Character alias (for example, ずんだもん, 四国めたん/ノーマル)
When omitted, default-female (ID: 10) is used.

Alias table

AliasStyle IDCharacter
ずんだもん1Zundamon (Sweet)
ずんだもん/あまあま1Zundamon (Sweet)
ずんだもん/ノーマル3Zundamon (Normal)
ずんだもん/セクシー5Zundamon (Sexy)
ずんだもん/ツンツン7Zundamon (Tsundere)
ずんだもん/ささやき22Zundamon (Whisper)
ずんだもん/ヒソヒソ38Zundamon (Murmur)
四国めたん/あまあま0Shikoku Metan (Sweet)
四国めたん2Shikoku Metan (Normal)
四国めたん/ノーマル2Shikoku Metan (Normal)
四国めたん/セクシー4Shikoku Metan (Sexy)
四国めたん/ツンツン6Shikoku Metan (Tsundere)
四国めたん/ヒソヒソ37Shikoku Metan (Murmur)
春日部つむぎ8Kasukabe Tsumugi (Normal)
波音リツ9Naminori Ritsu (Normal)
雨晴はう10Amehare Hau (Normal)
玄野武宏11Kurono Takehiro (Normal)
白上虎太郎12Shirakami Kotaro (Normal)
青山龍星13Aoyama Ryusei (Normal)
冥鳴ひまり14Meinei Himari (Normal)
九州そら16Kyushu Sora (Normal)
default-female10Amehare Hau (Normal)
default-male12Shirakami Kotaro (Normal)
use Laravel\Ai\Audio;

Audio::of('Test')->voice('3')->generate('voicevox-client');
You can also inspect available speakers via Voicevox::speakers().
use Revolution\Voicevox\Voicevox;

$speakers = Voicevox::speakers();

Agent (KanalizerAgent)

Native mode does not provide enable_katakana_english, so you can use KanalizerAgent to convert English text into katakana first.
use Revolution\Voicevox\Ai\Agents\KanalizerAgent;
use function Revolution\Voicevox\talk;

$kana = KanalizerAgent::make()->prompt('Convert English to katakana with KanalizerAgent');

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

$response->storeAs('native', 'kanalizer.wav');
AI-based katakana conversion is not always perfect. Review generated text before synthesis in production workflows.

Next pages

Client: Talk

Review the standard client-mode API flow.

Native: Talk

Review direct FFI-based synthesis flow.
Last modified on May 21, 2026