메인 콘텐츠로 건너뛰기

Laravel AI SDK 연동

VOICEVOX for Laravel은 Laravel AI SDK와 통합되어 있어, Audio 파사드에서 음성 생성을 할 수 있습니다. 사용 가능한 드라이버는 다음 두 가지입니다.
  • 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년 7월 13일