跳轉到主要內容

基本語音合成

以下的 talk.php 是從文字合成語音並輸出成 WAV 檔案的範例。
PHP FFI 在 Web 伺服器環境(如 FPM)中通常會被停用。請以 php talk.php 從 CLI 執行這支腳本。
執行:

一步完成語音合成(tts 方法)

若想省略 createAudioQuery + synthesis 兩個步驟,可使用 tts() 方法:

以片假名記法合成語音

也可以從 AquesTalk 風格的片假名記法進行合成:

使用使用者字典

若要註冊自訂單字的讀音,可使用 UserDict:

調整 AudioQuery

在合成之前調整由 createAudioQuery 取得的 JSON,可精細控制抑揚頓挫與節奏等:

取得重音短語

可以取得並確認、編輯文字的重音短語資訊:

使用 GPU 模式

在有 GPU 可用的環境中,指定 AccelerationMode::Gpu 可加速:

使用多個聲音模型

透過載入多個 .vvm 檔案並切換樣式 ID,可以使用多個角色聲音:
相同 ID 的模型已載入時的行為,可透過 loadVoiceModel() 第 2 個引數的 OnExistingVoiceModelId 指定。預設的 Error 會擲出例外,Reload 會重新載入,Skip 則不做任何處理:

逐影格產生 PCM

將以 createAudioFeature() 建立的 AudioFeature 依影格範圍 slice() 後再 render(),即使是長篇文章也能逐步轉成語音資料。以下是每次輸出約 0.3 秒 PCM 的範例:
render() 的輸出並非 WAV,而是 16-bit PCM 原始資料。此方法需要 VVM v2 模型。C API 雖提供建立 AudioFeature 與範圍 render 的功能,但沒有高階的 streaming_synthesis API。
最後修改於 2026年10月27日