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

クライアントモードとは

クライアントモードは、公式 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);
無効にしたい場合は第3引数に 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年5月19日