一月時 Microsoft 發表了一個人工智能模型 VALL-E,只要有 3 秒鐘錄音就能夠模仿來源的聲音朗讀相同語言的內容。後來,Microsoft 又發表 VALL-E X 跨語言語音生成的論文,可以用來源聲音朗讀其他語言內容,不過 Microsoft 並沒有公開它的程式碼和模型。不過在有心人的努力下,我們終於可以試試複製自己的聲音有多神奇(和可怕)。
新加坡南洋理工大學電機電子工程學部的學生 Songting Liu (Plachta) 和他的小組,本月中旬就按照 Microsoft 發表的論文,自行實作了 VALL-E X 零樣本 TTS(文字轉語音)模型出來,他還更進一步,擴展原來只支援英語和普通話的功能至同時支援日語,令到大家可以試試用自己聲音,朗讀自己不懂的語言。
Plachta 把 VALL-E X 模式和程式放在 GitHub 公開,又在 Hugging Face 建立了示範網站,讓大家可以試試它的利害。
VALL-E X 示範網站:https://huggingface.co/spaces/Plachta/VALL-E-X
VALL-E X 範例網站:https://plachtaa.github.io/
VALL-E X 的玩法非常簡單: 1. 在「Text」輸入想要讀出的內容;2. 在「language」選擇語言;3. 在「recorded audio prompt」錄一段約 3 秒的聲音;4. 在「Transcript」輸入錄音的內容;5. 按右方的「Generate!」掣即開始生成。生成時間約需 20 秒。
筆者就錄製了一條只有兩秒多的廣東話打招呼聲音,就能分別生成一段普通話和一段日語朗讀內容,發覺雖然音頻質素不算高,但仍保留到筆者在錄音中的聲線。大家也可以上傳其他人的 3 秒聲音,或選擇網頁底部的樣本來生成,看看實際效果。
自建 VALL-E X TTS 系統
如果大家曾經按照筆者的 Stable Diffusion 教學安裝好 Git、Python 3.10、CUDA Tools 11.7-12.0 和 Pytouch 2.0 以上,又想試試在家中電腦建立模仿別人聲音的系統,可以在命令列視窗輸入以下指令,來安裝 VALL-E X。
git clone https://github.com/Plachtaa/VALL-E-X.git
cd VALL-E-X
pip install -r requirements.txt
(圖片 Copyright: rufous)