메인 콘텐츠로 건너뛰기
VOICEVOX for Laravel은 Laravel에서 VOICEVOX의 음성 합성 기능을 사용하기 위한 패키지입니다. 텍스트에서 일본어 음성을 생성할 수 있습니다.
우선 클라이언트 모드부터 시작하면 셋업이 최단입니다. FFI를 사용할 수 있는 환경이라면 나중에 네이티브 모드나 엔진 API 모드로 단계적으로 이전할 수 있습니다.

3가지 이용 모드

모드실행 방식FFI적합한 용도가이드
클라이언트 모드공식 VOICEVOX 엔진에 HTTP 연결불필요우선 시도, Docker 환경, FFI를 사용할 수 없는 환경Client Talk / Client Song
네이티브 모드VOICEVOX CORE를 PHP FFI로 직접 호출필요고속화, 오프라인 실행, CLI 도구 통합Native Talk / Native Song
엔진 API 모드Laravel이 VOICEVOX 호환 API를 제공필요API 서버 공개, 여러 클라이언트 연동Engine Talk / Engine Song

빠른 시작

클라이언트 모드 절차입니다.
1

패키지 설치

composer require revolution/laravel-voicevox
자세한 내용은 설치와 설정을 확인하세요.
2

공식 엔진 실행

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

음성 합성 시도

use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('안녕하세요, Laravel입니다.', id: 1)->generate(id: 1);
$response->storeAs('output.wav');

주요 기능

음성 합성 (Talk)

use Revolution\Voicevox\Client\TalkAudioQuery;
use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('こんにちは', id: 1)
    ->tap(function (TalkAudioQuery $talk) {
        $talk->audioQuery['speedScale'] = 1.2;
        $talk->audioQuery['pitchScale'] = 0.05;
        $talk->audioQuery['intonationScale'] = 1.5;
        $talk->audioQuery['volumeScale'] = 1.0;
    })
    ->generate(id: 1);

노래 합성 (Song)

use Revolution\Voicevox\Song\Note;
use Revolution\Voicevox\Song\Score;
use Revolution\Voicevox\Voicevox;

$score = Score::make([
    Note::make(length: 15),
    Note::make(length: Note::len(ticks: 480, bpm: 120), lyric: 'ド', key: 60),
    Note::make(length: Note::len(480, 120), lyric: 'レ', key: 62),
    Note::make(length: Note::len(960, 120), lyric: 'ミ', key: 64),
    Note::make(length: 2),
]);

$response = Voicevox::song($score)->generate(id: 3001);

사용자 사전과 프리셋

클라이언트 모드에서는 Voicevox 파사드를 사용해 공식 엔진 측의 사용자 사전이나 프리셋을 조작합니다.
use Revolution\Voicevox\Voicevox;

$uuid = Voicevox::addWord(
    surface: 'Laravel',
    pronunciation: 'ララベル',
    accentType: 3,
);

$presetId = Voicevox::addPreset([
    'id' => 0,
    'name' => 'ゆっくり丁寧',
    'speaker_uuid' => '7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff',
    'style_id' => 1,
    'speedScale' => 0.8,
    'pitchScale' => 0.0,
    'intonationScale' => 1.2,
    'volumeScale' => 1.0,
    'prePhonemeLength' => 0.1,
    'postPhonemeLength' => 0.1,
]);

Laravel AI SDK 연동

use Laravel\Ai\Audio;

$audio = Audio::of('안녕하세요, Laravel입니다.')
    ->voice('ずんだもん')
    ->generate();

$audio->storeAs('output.wav');

다음 단계

마지막 수정일 2026년 7월 13일