概要
revolution/laravel-voicevox は、Laravel から VOICEVOX を扱うためのパッケージです。 HTTP 経由で公式エンジンに接続するクライアントモードと、VOICEVOX Core for PHP を組み合わせて PHP FFI から直接合成するネイティブモードを同じ Laravel スタイルで扱えます。FFI の前提知識を先に整理したいなら PHP FFI を、コアライブラリ自体のセットアップは VOICEVOX Core for PHP と 使い方 を参照してください。
機能表
| Feature | Supported | Description |
|---|---|---|
| VOICEVOX Client | ✅ | 公式 VOICEVOX エンジン API に HTTP でアクセスします。FFI は不要です。 |
| VOICEVOX Core | ✅ | VOICEVOX Core for PHP を通して VOICEVOX CORE の動的ライブラリを利用します。 |
| Laravel style | ✅ | Facade、ヘルパー、config/voicevox.php、.env で Laravel らしく扱えます。 |
| Laravel AI SDK 統合 | ✅ | Laravel AI SDK の Audio ワークフローからも利用できます。 |
| VOICEVOX Engine | ⚠️ | Laravel アプリ内に VOICEVOX 互換 API を内蔵します。未対応部分は公式エンジンへフォールバックします。 |
| VOICEVOX Engine / OpenAI互換TTS API | ✅ | /v1/audio/speech voiceはAI SDKと同様にスタイルIDの他に「ずんだもん」などのエイリアスに対応しています。 |
| VOICEVOX Editor | ⚠️ | macOS用のソング特化アプリを開発しましたがアプリストアで公開・配布する予定はありません。いつかGitHubでコードが公開されたらXcodeでビルドして使用できます。 |
要件
- PHP 8.3+
- Laravel 12+
ext-zip- ネイティブモード / エンジン API を使う場合は
ext-ffi - ローカル CLI 環境
モード一覧
| モード | 実行方法 | FFI | 主な用途 | ガイド |
|---|---|---|---|---|
| クライアント Talk | 公式エンジンへ HTTP リクエスト | 不要 | テキスト音声合成 | client-talk |
| クライアント Song | 公式エンジンへ HTTP リクエスト | 不要 | 歌声合成 | client-song |
| ネイティブ Talk | VOICEVOX CORE を FFI で直接呼び出し | 必要 | ローカルでのテキスト音声合成 | native-talk |
| ネイティブ Song | VOICEVOX CORE を FFI で直接呼び出し | 必要 | ローカルでの歌声合成 | native-song |
| エンジン API | Laravel アプリ内で互換 API を提供 | 必要 | VOICEVOX 互換 API の内蔵 | installation |
tap() が合う理由
このパッケージは talk() / song() の直後に Audio Query オブジェクトを返し、generate() の前に調整フェーズを差し込めます。
そのため tap() を使うと、戻り値を変えずにクエリーだけを調整する 書き方が自然です。
- Talk では
speedScaleやpitchScaleなどを調整できます。 - Song では
sync()で F0 とボリュームを再計算できます。 generate()が返すVoicevoxResponseへきれいにチェーンできます。
tap() 自体の考え方は tap() ヘルパーと Tappable トレイト で整理しています。このパッケージは実用例として特に分かりやすいケースです。ドキュメント
インストール
クライアントのみの導入、FFI を使う導入、設定ファイル公開、エンジンリソースの準備を確認します。
クライアント Talk
公式 VOICEVOX エンジンを使ったテキスト音声合成を始めます。
クライアント Song
Score と Note を組み立てて歌声合成を行います。ネイティブ Talk
PHP FFI と VOICEVOX CORE でローカル合成します。
ネイティブ Song
FFI 経由で歌声モデルを直接使います。
VOICEVOX Core for PHP
コアライブラリのセットアップと Pure PHP 側の使い方を確認します。
参考リンク
- GitHub: invokable/laravel-voicevox
- VOICEVOX Core for PHP: /jp/packages/voicevox-core-php
- VOICEVOX Core for PHP 使い方: /jp/packages/voicevox-core-php/usage
- PHP FFI: /jp/advanced/ffi
tap()ヘルパー: /jp/advanced/tap- 公式 VOICEVOX エンジン: VOICEVOX/voicevox_engine