基本語音合成
以下的 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。