メインコンテンツへスキップ

Laravel AI SDK 連携

VOICEVOX for Laravel は Laravel AI SDK と統合されており、Audio ファサードから音声生成できます。 利用できるドライバーは次の2つです。
  • voicevox-client(クライアントモード)
  • voicevox(ネイティブモード)

クライアントドライバー(voicevox-client

公式 VOICEVOX エンジンに HTTP リクエストを送るモードです。FFI は不要です。

事前準備

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

設定

config/ai.phpvoicevox-client プロバイダーを追加します。
'providers' => [
    'voicevox-client' => [
        'driver' => 'voicevox-client',
        'key' => env('VOICEVOX_URL', 'http://127.0.0.1:50021'),
    ],
],

使い方

use Laravel\Ai\Audio;

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

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

ネイティブドライバー(voicevox

VOICEVOX CORE を直接呼び出すモードです。FFI が必要です。 config/voicevox.phpcore.vvms で読み込んだモデルのみ利用できます。

設定

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

使い方

use Laravel\Ai\Audio;

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

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

voice() に指定できる値

voice() には次を指定できます。
  • VOICEVOX のスタイル ID(数値文字列)
  • キャラクター名エイリアス(例: ずんだもん四国めたん/ノーマル

エイリアス一覧

エイリアススタイルIDキャラクター
ずんだもん1ずんだもん(あまあま)
ずんだもん/あまあま1ずんだもん(あまあま)
ずんだもん/ノーマル3ずんだもん(ノーマル)
ずんだもん/セクシー5ずんだもん(セクシー)
ずんだもん/ツンツン7ずんだもん(ツンツン)
ずんだもん/ささやき22ずんだもん(ささやき)
ずんだもん/ヒソヒソ38ずんだもん(ヒソヒソ)
四国めたん/あまあま0四国めたん(あまあま)
四国めたん2四国めたん(ノーマル)
四国めたん/ノーマル2四国めたん(ノーマル)
四国めたん/セクシー4四国めたん(セクシー)
四国めたん/ツンツン6四国めたん(ツンツン)
四国めたん/ヒソヒソ37四国めたん(ヒソヒソ)
春日部つむぎ8春日部つむぎ(ノーマル)
波音リツ9波音リツ(ノーマル)
雨晴はう10雨晴はう(ノーマル)
玄野武宏11玄野武宏(ノーマル)
白上虎太郎12白上虎太郎(ノーマル)
青山龍星13青山龍星(ノーマル)
冥鳴ひまり14冥鳴ひまり(ノーマル)
九州そら16九州そら(ノーマル)
default-female10雨晴はう(ノーマル)
default-male12白上虎太郎(ノーマル)
voice() を省略した場合は default-female(ID: 10)が使われます。
use Laravel\Ai\Audio;

Audio::of('テスト')->voice('3')->generate('voicevox-client');
利用可能なスピーカー一覧は Voicevox::speakers() でも確認できます。
use Revolution\Voicevox\Voicevox;

$speakers = Voicevox::speakers();

エージェント(KanalizerAgent)

ネイティブモードでは enable_katakana_english がないため、英語を事前にカタカナ化する KanalizerAgent を使えます。
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');
AI によるカタカナ変換は常に正確とは限りません。実運用では生成テキストを人間が確認してから合成してください。

次に読むページ

クライアント: トーク

クライアントモードの通常 API の流れを確認します。

ネイティブ: トーク

FFI で直接合成するモードの使い方を確認します。
最終更新日 2026年5月21日