關于使用 VITS對模型進行推理的時候自己的一點思考+搜尋模型并完成推理新手教程

起因是本人在下載了模型和配置文件(.pth和..json文件)后,使用CjangCjengh?大佬的moegoe GUI想直接進行推理。然后發(fā)現了一個問題,我下的明明是一個人的模型的啊,怎么說話人里那一欄都是其他角色沒有我想要的呢?本文章以推理禪雅塔的模型為例,分析原因以及教你正確的姿勢進行推理。在這里先感謝CjangCjengh、huggingface里的zomehwh等大佬提供的免費資源。
附圖,可見有很多角色但是翻完都翻不到禪雅塔(我這里說明一下,我產生這個問題也是因為我在huggingface的這個空間里下的模型和config.json,才會出現這個問題,如果你也是下載的huggingface里排名第一空間里的模型,有小概率出現這個疑惑):

甚至為了這個問題我還到處到Google、github、bilibili去找類似的解決辦法,都沒有找到...于是我還提出過這個在各位大佬們看起來很蠢的問題“為什么我下的單人模型只能讓他扮演原神里的音色,而且說話的聲音很怪?”,當時獲得的回答是“我沒聽懂你的問題..."
好了,多的廢話不說了,總之最后我解決了這個問題并且知道了發(fā)生的原因。如果你跟我一樣是一個這個領域的純新手,目前已有的整合包不能滿足你的對某些特定角色音色的需要,你也可以參考一下我的解釋(不看問題也不大,如果你不會用現有的模型進行推理的話想直接推理可以轉到我下面的教程):
---------------------------------------------------------------------------------------------------------------------
我解釋一下這個問題發(fā)生的原因,原因出現在配置文件config.json上。這里面有一個叫n_speakers的東西,如果你下的模型里的config.json的這個n_speakers不為0,那么它多半是個多人模型,至于最下面的speakers沒有特殊的意義,這是對每一個音色打的標簽。
(附圖)

speakers里的'\u7279...'之類的是中文的編碼,沒有特殊的意義。
下面我解釋一下它是怎么實現在一個模型中多音色的轉變,也就是在你的說話人里面選擇不同的角色出現了不一樣的語調和語速之類的現象。多人模型中,通常會有一個叫speaker?embedding的東西,這是一個嵌入向量,它被訓練用于捕捉和模擬每個特定說話者的音色特征。這個嵌入向量在訓練過程中被學習,并在合成語音時使用。當你選擇一個特定的說話者作為輸入時,模型會查找該說話者對應的嵌入向量,并用它來影響語音的生成,從而模擬該說話者的音色。
你變換標簽(說話者姓名)實際上就是通過調整嵌入向量來模擬多種不同的音色,所以在多人模型中我們無需為每個說話者單獨訓練一個完整的模型。
里面的speakers順序排列,和它對應的這個嵌入向量是一一對應的。所以你要是出現了和我一樣的問題,你可以先檢查n_speakers這里,那個speakers一般不是問題所在..(前面什么都不知道的情況下我還在這里卡了很久)
不過一般你在其他地方下的打包好的模型都會有配置文件整合在一起,很難出現這樣的問題。我是因為在huggingface上下載模型然后和自己現有的config搞錯亂了。。
---------------------------------------------------------------------------------------------------------------
以上就是原理的部分解釋..BTW,如果你也有喜歡的角色,但是電腦配置不太支持訓練自己的模型,建議你可以去Huggingface找一些大佬們的模型下載,和我一樣的小白可以參考一下我這個淺淺的教程...
下面是用你已經下載好了的現有模型和配置文件進行推理(讓你的模型說話)教程:
第一步,在space里找一個你喜歡的模型:

第二步,下載模型,下載config.json:

第三步,檢查config是不是我們之前那個問題:
????

第四步,可以用moegoe進行推理了:
(moegoe下載地址:https://github.com/CjangCjengh/MoeGoe
這個界面是gui,需要搭配上面的moegoe.exe使用,更方便,建議安裝在同一目錄。下載地址:https://github.com/CjangCjengh/MoeGoe_GUI)

第五步,輸入文本,推理,成功輸出音頻,成功截圖就不演示了,到這一步基本也沒有問題了:


到這里就全部結束了。當然,我也只是一個還在學習的純小白,要是你和我碰到了這個一樣的不可描述的問題,至少有了解決辦法orz...
如果這篇文章對你有幫助的話,請給我留下一個贊,謝謝。再次感謝付出的大佬們。