最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

零基礎(chǔ)煉丹秘籍 - 為自己喜愛(ài)的角色訓(xùn)練TTS(文字轉(zhuǎn)語(yǔ)音)模型

2022-07-29 19:47 作者:夏夜有輕風(fēng)  | 我要投稿

注:本文僅用于技術(shù)愛(ài)好交流,非商用,不對(duì)讀者的行為負(fù)責(zé),請(qǐng)自覺(jué)遵守有關(guān)法律法規(guī),保護(hù)版權(quán),尊重他人勞動(dòng)成果。


前言

tacotron2是Google在2017年發(fā)布的基于PyTorch的TTS神經(jīng)網(wǎng)絡(luò)模型[1]。

Google官方為個(gè)人用戶免費(fèi)提供colab線上深度學(xué)習(xí)服務(wù)[2],有中文界面。

免費(fèi)版colab一次只能開(kāi)啟一個(gè)會(huì)話,單次最長(zhǎng)訓(xùn)練時(shí)間12個(gè)小時(shí),而且需要一直保持界面打開(kāi),僅適合入門[3]。單次超時(shí)斷開(kāi)后,大概經(jīng)過(guò)一天就會(huì)重新可用,但是能用的小時(shí)數(shù)會(huì)少,而且用的越頻繁就會(huì)越少。你可以用訓(xùn)練出來(lái)的模型接著上次的地方訓(xùn)練。

基于該平臺(tái),以日語(yǔ)語(yǔ)音為例,參考視頻"Updated and Works as of 2022/4/29: Speech Synthesis with Tacotron 2 in Maya-K'iche"[4]和“基于tacotron2合成寧寧語(yǔ)音(day1-2)”[5],我們開(kāi)始零基礎(chǔ)訓(xùn)練模型之旅。


本文介紹的方法主要是通過(guò)colab省去配置環(huán)境的麻煩實(shí)現(xiàn)零基礎(chǔ)訓(xùn)練。如果對(duì)Python環(huán)境配置有一定基礎(chǔ),而且手上有滿足煉丹需求的機(jī)器資源,可以在自己的機(jī)器操作。

需要準(zhǔn)備的

  • 一臺(tái)能訪問(wèn)Google深度學(xué)習(xí)平臺(tái)的電腦


  • 用于數(shù)據(jù)收集和配置線上環(huán)境(會(huì)比線下簡(jiǎn)單很多)的時(shí)間


  • 提取出的角色語(yǔ)音和臺(tái)詞


路線圖

  1. 提取角色語(yǔ)音

  2. 獲取臺(tái)詞文本(這兩步最耗精力)

  3. 復(fù)制一份“筆記”副本并上傳前面的文件

  4. 修改幾個(gè)參數(shù)(很簡(jiǎn)單!)

  5. 一鍵開(kāi)始訓(xùn)練

  6. 合成語(yǔ)音


第一步 提取角色語(yǔ)音

首先需要一些材料,比如角色語(yǔ)音和角色文本,我們挑簡(jiǎn)單的來(lái)。

Galgame中的人物語(yǔ)音大都一句句分好了,非常適合使用。提取的過(guò)程可以使用GARbro軟件提取游戲中的各類資源,比如voice.xp3。用GARbro提取不出來(lái)可以用krkrextract[7]。推薦教程:


注意:提取出的語(yǔ)音需轉(zhuǎn)換成wav格式,單聲道,采樣率必須為22050Hz,PCM 16bit。僅僅是wav格式不一定符合要求。關(guān)于轉(zhuǎn)換音頻格式,opus格式文件可以直接用GARbro轉(zhuǎn)換,ogg格式文件可以用ffmpeg轉(zhuǎn)換[7]。不懂這些參數(shù)也沒(méi)關(guān)系,我也不懂,甚至用格式工廠轉(zhuǎn)換一下也能行,可以參考下面的配置:


注意"采樣率"和"音頻聲道"的設(shè)置


第二步 獲取臺(tái)詞文本

獲取到臺(tái)詞文本即可。建議如果游戲文件中有scn.xp3文件,可以解包得到ks.scn文件,用FreeMoteToolkit轉(zhuǎn)成json提取文件。如果實(shí)在沒(méi)有辦法獲取原臺(tái)詞,可以嘗試使用whisper聽(tīng)寫臺(tái)詞。

用notepad新建一個(gè)文件,文件名取什么都行,比如list.txt。文件內(nèi)容大致如下:

左側(cè)是語(yǔ)音文件的名稱,后側(cè)是對(duì)應(yīng)的文本,用英文標(biāo)點(diǎn)'|'分隔。文本文件中不能有空行,需要保存為UTF-8編碼。文件名前面需要帶"wavs/"前綴,或者也可以放其他目錄。建議用默認(rèn)的wavs目錄,會(huì)省去一些不必要的配置麻煩。


第三步 復(fù)制notebook并上傳資源

根據(jù)原作者提供的notebook和up主CjangCjengh的cleaner[6]改了一份寫好的中文深度學(xué)習(xí)notebook[8],只需要一步一步配置就可以了。

鏈接: https://colab.research.google.com/drive/18fbCupSaQde-FtF2Z2Na-LP5BrukjNMs?usp=sharing

打開(kāi)后,先復(fù)制一份副本,在彈出的副本頁(yè)面中進(jìn)行接下來(lái)的操作:

點(diǎn)擊"在云端硬盤中保存一份副本"

一路點(diǎn)播放鍵,等待顯示對(duì)號(hào)后,點(diǎn)擊下一個(gè)播放鍵,執(zhí)行下一段代碼。

執(zhí)行準(zhǔn)備

然后把準(zhǔn)備好的語(yǔ)音文件放到wavs目錄下,帶有語(yǔ)音文件列表和對(duì)應(yīng)臺(tái)詞的文件list.txt放到filelists目錄下。選中這兩個(gè)文件夾,右鍵菜單中打包成壓縮包上傳到云端硬盤。你也選擇上傳數(shù)據(jù)方式1,但是會(huì)需要每次上傳數(shù)據(jù),比較繁瑣。

上傳數(shù)據(jù)


上傳完后按順序點(diǎn)擊代碼塊的播放鍵即可。

后面很簡(jiǎn)單,只需要填寫幾個(gè)參數(shù)。

第一個(gè),model_filename,模型的文件名。

第二個(gè),batch_size,和語(yǔ)音文件的數(shù)量有關(guān),建議設(shè)置的比語(yǔ)音文件的數(shù)量稍小一些,不要設(shè)置太大,否則顯卡會(huì)炸掉。這里我的樣本用于演示,比較少,可以設(shè)置的更多,比如有30個(gè)語(yǔ)音文件就設(shè)置為20。免費(fèi)版Colab(16G顯存)建議設(shè)置不要超過(guò)40。

第三個(gè),epochs,訓(xùn)練的次數(shù),次數(shù)越多可能越精準(zhǔn),花的時(shí)間可能越長(zhǎng),可以設(shè)置成300或更多。

第四個(gè),training_files和validation_files,訓(xùn)練文件和驗(yàn)證文件的列表,填我們剛才編寫好的list.txt即可。

第五個(gè),text_cleaner,選擇預(yù)處理文本的cleaner,即把日語(yǔ)臺(tái)詞自動(dòng)轉(zhuǎn)換為羅馬音的處理方式,筆記下面有幾種cleaner的比較。

其他超參數(shù)一般不用額外配置。設(shè)置完后點(diǎn)擊播放鍵運(yùn)行。

進(jìn)行一些配置

繼續(xù)點(diǎn)擊播放鍵運(yùn)行代碼,生成mel譜,檢查數(shù)據(jù)集。

生成mel譜和檢查數(shù)據(jù)集

第五步 一鍵開(kāi)始訓(xùn)練!

點(diǎn)擊播放鍵開(kāi)始訓(xùn)練。如果沒(méi)有問(wèn)題,你會(huì)看到如下所示內(nèi)容。

如果不手動(dòng)停止,一共會(huì)迭代epochs參數(shù)里設(shè)置的次數(shù)。

訓(xùn)練時(shí)間越長(zhǎng),效果可能越好,俗稱“煉丹”。

訓(xùn)練到Validation loss在0.15以下即可收獲一定效果。

如果Validation loss居高不下,可能是音頻文件比較多,也可能是音頻文件對(duì)應(yīng)的臺(tái)詞有錯(cuò)誤。其他問(wèn)題可參考筆記本內(nèi)的Q&A。

最激動(dòng)人心的時(shí)刻終于到了!

第六步 合成語(yǔ)音

生成的模型會(huì)保存在你的云端硬盤上。有了模型,就可以導(dǎo)入到HifiGan和WaveGlow等合成語(yǔ)音了。

訓(xùn)練出的模型在這個(gè)目錄下

可以在colab上合成,也可以下載模型在本地合成語(yǔ)音。目前至少有三款合成語(yǔ)音的軟件,在本地導(dǎo)入模型即可合成語(yǔ)音,推薦在下面:

參考資料

[1] Tacotron 2: Generating Human-like Speech from Text, Google AI Blog, https://ai.googleblog.com/2017/12/tacotron-2-generating-human-like-speech.html
[2] Google Colab, Google, https://colab.research.google.com
[3] 在 Colab 中,筆記本可以運(yùn)行多長(zhǎng)時(shí)間?,? Google, https://research.google.com/colaboratory/faq.html#idle-timeouts
[4] Updated and Works as of 2022/4/29: Speech Synthesis with Tacotron 2 in Maya-K'iche, Oxlajuj No'j Thirteen Wisdom, https://www.youtube.com/watch?v=e6EhXUdjppo
[5] 基于tacotron2合成寧寧語(yǔ)音(day1-2), CjangCjengh, https://www.bilibili.com/video/BV1rV4y177Z7
[6] tacotron2-japanese, CjangCjengh, https://github.com/CjangCjengh/tacotron2-japanese
[7] "紙片人技術(shù)交流群(702724269)"群內(nèi)Q&A, CjangCjengh
[8] Tacotron2SpeechSynthesisDemoV3.ipynb, Google Colab, https://colab.research.google.com/drive/1VAuIqEAnrmCig3Edt5zFgQdckY9TDi3N?usp=sharing



零基礎(chǔ)煉丹秘籍 - 為自己喜愛(ài)的角色訓(xùn)練TTS(文字轉(zhuǎn)語(yǔ)音)模型的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
茶陵县| 临沂市| 嘉禾县| 和平区| 阿拉尔市| 丹江口市| 利津县| 宁阳县| 广汉市| 钦州市| 济阳县| 永济市| 平安县| 万州区| 芜湖县| 台南县| 石首市| 突泉县| 达孜县| 灵璧县| 荃湾区| 汝阳县| 同仁县| 车险| 卢氏县| 满洲里市| 绥宁县| 崇文区| 钟祥市| 柏乡县| 明光市| 西吉县| 鄯善县| 贺州市| 呼伦贝尔市| 万州区| 扶绥县| 宁化县| 尼木县| 新兴县| 壶关县|