網(wǎng)友評分: 5分
MoeSS是一款功能強(qiáng)大的人物模型軟件。重寫了Tacotron2、Vits、SoftVits以及DiffSvc的推理函數(shù)及網(wǎng)絡(luò)結(jié)構(gòu),并將處理后的網(wǎng)絡(luò)轉(zhuǎn)換為Onnx并在C++上編寫了推理軟件,使得使用上述項目不再需要附加一系列臃腫的依賴庫,同時Cpu的推理速度也顯著提升。
模型導(dǎo)入:
// 本軟件標(biāo)準(zhǔn)化了模型讀取模塊,模型保存在Mods文件夾下的子文件夾中********.json文件用于聲明模型路徑以及其顯示名稱,以我的模型為例(SummerPockets.json)
{
"Folder" : "SummerPockets",
"Name" : "SummerPocketsReflectionBlue",
"Type" : "VITS_VCTK",
"Symbol" : "_,.!?-~…AEINOQUabdefghijkmnoprstuvwyz???↓↑" ,
"Cleaner" : "LowerCharacters",
"Rate" : 22050,
"Hop" : 0,
"Hifigan": "hifigan",
"SoVits3": false,
"Hubert": "hubert",
"Pndm" : 100,
"MelBins" : 128,
"Characters" : ["鳴瀬しろは","空門蒼","鷹原うみ","紬ヴェンダース","神山識","水織靜久","野村美希","久島鴎","岬鏡子"]
}
// 其中必填項目為Folder,Name,Type,Rate
// TTS(Tacotron2,Vits,串聯(lián)用模型)需要填寫Symbol,Cleaner
// 無自帶聲碼器的項目(Tacotron2,DiffSvc)需要填寫Hifigan(hifigan模型應(yīng)該放置于hifigan,該項設(shè)置為模型文件名(不帶后綴))
// VC(Sovits,DiffSvc)需要填寫Hop和Hubert(Hubert放到Hubert文件夾下)
// SoVits3為Sovits3.0的標(biāo)記,如果該模型基于SoVits3.0訓(xùn)練則需要填寫為true
// DiffSvc需要填寫Pndm(就是你導(dǎo)出模型時的加速倍率),MelBins(在你的模型config.yaml里面的前幾項有一個帶mel_bins的一項)
// 含多角色embidding的(Vits多人模型,Sovits)需要填寫Characters
支持的model項目
// ${xxx}是什么意思大家應(yīng)該都知道吧,總之以下是多個不同項目需要的模型文件(需要放置在對應(yīng)的模型文件夾下)。
// Tacotron2:
${Folder}_decoder_iter.onnx
${Folder}_encoder.onnx
${Folder}_postnet.onnx
// VITS_LJS: 單角色VITS
${Folder}_dec.onnx
${Folder}_flow.onnx
${Folder}_enc_p.onnx
${Folder}_dp.onnx
// VITS_VCTK: 多角色VITS
${Folder}_dec.onnx
${Folder}_emb.onnx
${Folder}_flow.onnx
${Folder}_enc_p.onnx
${Folder}_dp.onnx
// SoVits:
${Folder}_SoVits.onnx
// DiffSvc:
${Folder}_diffSvc.onnx
Symbol的設(shè)置
例如:_-!'(),.:;? ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
打開你訓(xùn)練模型的項目,打開text\symbol.py,如圖按照劃線的List順序?qū)⑸厦娴?個字符串連接即可
image
Cleaner的設(shè)置
/*
Cleaner請放置于根目錄的Cleaners文件夾內(nèi),應(yīng)該是一個按照要求定義的動態(tài)庫(.dll),dll應(yīng)當(dāng)命名為Cleaner名,Cleaner名即為模型定義Json文件中Cleaner一欄填寫的內(nèi)容。
所有的插件dll需要定義以下函數(shù),函數(shù)名必須為PluginMain,Dll名必須為插件名(或Cleaner名):
*/
const wchar_t* PluginMain(const wchar_t*);
// 該接口只要求輸入輸出一致,并不要求功能一致,也就是說,你可以在改Dll中實(shí)現(xiàn)任何想要的功能,比方說AI機(jī)器人,機(jī)器翻譯等等。
// 以AI機(jī)器人為例,PluginMain函數(shù)傳入了一個輸入字符串input,將該輸入傳入AI機(jī)器人,再將AI機(jī)器人的輸出傳入PluginMain,最后返回輸出。
wchar_t* PluginMain(wchar_t* input){
wchar_t* tmpOutput = AI機(jī)器人(input);
return Clean(tmpOutput);
}
// 注意:導(dǎo)出dll時請使用 extern "C" 關(guān)鍵字來防止C++語言的破壞性命名。
1、打開MoeSS.exe
2、在左上方Mods模塊中選擇模型
3、在下方輸入框中輸入要轉(zhuǎn)換的文字,點(diǎn)擊“清理”可以執(zhí)行文本Cleaner,換行為批量轉(zhuǎn)換的分句符號。(SoVits需要輸入音頻路徑)
4、點(diǎn)擊開始合成,即可開始合成語音,等待進(jìn)度完成后,可以在右上方播放器預(yù)覽,也可以在右上方直接保存。
5、可以使用命令行啟動:(僅1.X版本)
Shell:& '.\xxx.exe' "ModDir" "InputText." "outputDir" "Symbol"
CMD:"xxx.exe" "ModDir" "InputText." "outputDir" "Symbol"
其中ModDir為"模型路徑\\模型名" 如預(yù)置模型的"Mods\\Shiroha\\Shiroha"
InputText為需要轉(zhuǎn)換的文字(僅支持空格逗號句號以及字母)
outputDir為輸出文件名(不是路徑,是文件名,不需要加后綴)
Symbol見下文
輸出文件默認(rèn)在tmpDir中
關(guān)于本站|下載幫助|下載聲明|軟件發(fā)布|聯(lián)系我們
Copyright ? 2005-2024 m.obymc.com.All rights reserved.
浙ICP備06019006號-1 浙公網(wǎng)安備33038102330474號