메인 콘텐츠로 건너뛰기

클라이언트 모드란

클라이언트 모드는 공식 VOICEVOX 엔진에 HTTP 요청을 보내 음성을 생성합니다. FFI가 필요하지 않으므로, 처음 시도해 보는 입구로 사용하기 쉬운 모드입니다.
아직 도입하지 않았다면 설치와 설정을 먼저 확인하세요.

사전 준비

1

공식 엔진 실행

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

필요하면 연결 대상 URL 설정

VOICEVOX_URL=http://127.0.0.1:50021
GPU를 사용할 수 있는 환경이라면 GPU 이미지도 이용할 수 있습니다.

기본적인 사용법

use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('Laravel이 좋다이다', id: 1)
    ->generate(id: 1);

$response->storeAs('client', 'talk.wav');

스타일 ID 지정

talk()generate() 양쪽에 스타일 ID를 전달할 수 있습니다.
  • talk(id:): audio_query를 만들 때의 스타일
  • generate(id:): 음성 합성 시의 스타일
통상은 같은 값을 지정합니다.
use Revolution\Voicevox\Voicevox;

$response = Voicevox::talk('ずんだもんなのだ', id: 1)
    ->generate(id: 1);
사용 가능한 스피커 목록은 speakers()에서 획득할 수 있습니다.
use Revolution\Voicevox\Voicevox;

$speakers = Voicevox::speakers();

tap()으로 Audio Query 조정

이 패키지에서는 generate() 이전에 TalkAudioQuery를 받을 수 있으므로, tap()으로 부작용만 끼워 넣는 형태가 깔끔하게 맞아떨어집니다.
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);
tap()은 쿼리 미세 조정만 하고, 반환값은 그대로 다음 generate()에 넘길 수 있습니다. 사고방식은 tap() 헬퍼와 Tappable 트레이트에서 자세히 정리했습니다.

영어의 자동 카타카나 변환

클라이언트 모드에서는 enable_katakana_english가 활성화되어 있으므로, 영어를 포함한 텍스트를 자동으로 카타카나 쪽으로 보정할 수 있습니다.
$response = Voicevox::talk('I love Laravel', id: 1)
    ->generate(id: 1);
무효화하려면 세 번째 인수에 false를 전달합니다.
$response = Voicevox::talk('I love Laravel', id: 1, enableKatakanaEnglish: false)
    ->generate(id: 1);

응답 저장

$response = Voicevox::talk('테스트', id: 1)->generate(id: 1);

$wav = $response->content();
$path = $response->storeAs('client', 'talk.wav');
$path = $response->storeAs('client', 'talk.wav', disk: 's3');

다음에 읽어볼 페이지

클라이언트 Song

노래 합성으로 ScoreNote를 조립합니다.

VOICEVOX Core for PHP

FFI를 사용하는 전제가 되면 코어 라이브러리 측 사용법도 확인합니다.
마지막 수정일 2026년 7월 13일