結合 Kokoro 與 OpenVoice 的技術原理
開發者 Acceptable-Cycle4645 在尋找音訊模型時注意到 OpenVoice,儘管該專案較舊,但在 TTS 排行榜上仍名列前茅。其設計核心在於將語音合成(TTS)與語音轉換(VC)分離,其中 ToneColorConverter 可以獨立於 TTS 模型運作。
基於此架構,開發者嘗試將 OpenVoice 的 ToneColorConverter 與其他 TTS 模型搭配,發現與 Kokoro 結合的效果良好。因此,他在 audio.cpp 專案中新增了一個名為 any-tts 的配方(Recipe),專門用於整合 Kokoro 與 OpenVoice ToneColorConverter。
在此組合中,TTS 模型負責決定語音內容、發音與韻律,而 VC 模型則負責轉移目標說話者的音色特徵。使用者選擇的內建聲音也會影響最終輸出的品質。
資源消耗與效能表現
根據開發者提供的數據,啟用此組合方案會帶來特定的資源開銷。在 GPU 環境下,峰值 VRAM 使用量額外增加約 600 MB,且在 CUDA 加速下的處理速度會減緩約 10%。
若僅使用 CPU 進行運算,處理速度會降至原始 Kokoro 模型的一半(0.5x),但開發者指出這仍然能夠達到即時兩倍(2x real-time)的處理速度,意味著生成語音的速度仍快於實際播放時間。
audio.cpp 專案中的 Recipe 機制
此功能依賴 audio.cpp 專案在 v0.9.2 版本引入的 Recipe 機制。Recipe 被定義為預先設定的管線(pipelines),用於組合多個音訊模型以形成特定的處理流程。
any-tts 配方即為利用此機制,將輕量級的 TTS 模型與 ToneColorConverter 串接起來。開發者建議,任何小型的 TTS 模型理論上都可以嘗試與 ToneColorConverter 搭配使用,以此方式賦予現有 TTS 模型聲音複製的能力,而無需進行耗時的重新訓練過程。



