Saltar al contenido principal

Integración con Laravel AI SDK

VOICEVOX for Laravel se integra con Laravel AI SDK, permitiendo generar audio desde la facade Audio. Los drivers disponibles son estos dos:
  • voicevox-client (modo cliente)
  • voicevox (modo nativo)

Driver cliente (voicevox-client)

Modo que envía peticiones HTTP al motor oficial de VOICEVOX. No requiere FFI.

Preparación

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

Configuración

Añade el proveedor voicevox-client a config/ai.php.
'providers' => [
    'voicevox-client' => [
        'driver' => 'voicevox-client',
        'key' => env('VOICEVOX_URL', 'http://127.0.0.1:50021'),
    ],
],

Uso

use Laravel\Ai\Audio;

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

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

Driver nativo (voicevox)

Modo que llama directamente a VOICEVOX CORE. Requiere FFI. Solo se pueden usar los modelos cargados en core.vvms de config/voicevox.php.

Configuración

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

Uso

use Laravel\Ai\Audio;

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

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

Valores que puedes pasar a voice()

En voice() puedes indicar:
  • El ID de estilo de VOICEVOX (cadena numérica)
  • Un alias del nombre del personaje (por ejemplo, ずんだもん, 四国めたん/ノーマル)

Lista de alias

AliasID de estiloPersonaje
ずんだもん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白上虎太郎(ノーマル)
Si omites voice(), se utiliza default-female (ID: 10).
use Laravel\Ai\Audio;

Audio::of('テスト')->voice('3')->generate('voicevox-client');
También puedes consultar la lista de speakers disponibles con Voicevox::speakers().
use Revolution\Voicevox\Voicevox;

$speakers = Voicevox::speakers();

Agente (KanalizerAgent)

Como el modo nativo no dispone de enable_katakana_english, puedes usar KanalizerAgent para convertir de antemano el inglés a katakana.
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');
La conversión a katakana por IA no siempre es exacta. En producción, revisa el texto generado por una persona antes de sintetizarlo.

Siguientes páginas

Cliente: Talk

Revisa el flujo normal de la API en modo cliente.

Nativo: Talk

Revisa cómo usar el modo que sintetiza directamente con FFI.
Última modificación el 13 de julio de 2026