revolution/voicevox-core 是一个使用 PHP FFI 封装 VOICEVOX CORE 的 C 动态库的 Pure PHP 包。
VOICEVOX 是一个高品质的日语文本朗读(TTS)引擎,通过该包,你可以直接从 PHP 进行语音合成。
若想先了解 PHP FFI 自身的机制与限制,请参见 PHP FFI。
由于 PHP FFI 在 Web 服务器环境(FPM 等)中往往被禁用(ffi.enable=false),该包 默认假定在本地 CLI 中使用。
- PHP 8.3+
- 启用
ext-ffi 扩展
- VOICEVOX CORE 0.16+
composer require revolution/voicevox-core
库的配置
要使用该包,你需要 VOICEVOX CORE 的动态库(.so / .dylib)、ONNX Runtime 库和 OpenJTalk 词典。
下载 voicevox_core
从 voicevox_core releases 下载与操作系统和架构匹配的下载器并运行。运行后会在当前目录创建 voicevox_core 目录。创建的目录结构:voicevox_core/
├── dict/open_jtalk_dic_*/ # OpenJTalk 词典
├── c_api/lib/ # 动态库 (.so, .dylib)
├── models/vvms/ # 语音模型文件 (.vvm)
└── onnxruntime/ # ONNX Runtime 库
移动到永久位置
mv voicevox_core ~/.local/voicevox_core
创建符号链接(推荐)
创建符号链接,让库能被自动发现。macOS:# 请将 [VOICEVOX_CORE_DIR] 替换为 voicevox_core 的绝对路径
ln -s [VOICEVOX_CORE_DIR]/libvoicevox_core.dylib /usr/local/lib/libvoicevox_core.dylib
如果无法从 /usr/local/lib/ 加载,请在 .zshrc 等处设置 DYLD_FALLBACK_LIBRARY_PATH:export DYLD_FALLBACK_LIBRARY_PATH="$HOME/lib:/usr/local/lib:/usr/lib"
Linux:ln -s [VOICEVOX_CORE_DIR]/libvoicevox_core.so /usr/local/lib/libvoicevox_core.so
替代方案:通过环境变量指定
如果无法创建符号链接,可将库文件的完整路径设置到 VOICEVOX_CORE_LIB_PATH 环境变量:
export VOICEVOX_CORE_LIB_PATH=/path/to/libvoicevox_core.dylib
export VOICEVOX_CORE_LIB_PATH="$HOME/.local/voicevox_core/c_api/lib/libvoicevox_core.dylib"
在 macOS 上如果使用 DYLD_FALLBACK_LIBRARY_PATH 仍无法加载,请使用 VOICEVOX_CORE_LIB_PATH 进行设置。
参考链接