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

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

DiffSinger(三)

2023-02-25 20:19 作者:孫颯_TS  | 我要投稿

聲庫(kù)制作

這一部分主要為從訓(xùn)練到推理的全部流程,不打算自己訓(xùn)練的同學(xué)無(wú)須此部分

最新的語(yǔ)雀更新:https://www.yuque.com/sunsa-i3ayc/sivu7h

硬件需求

1.推理目前分為命令行推理和onnx推理,對(duì)速度要求不高的話CPU和GPU均可使用

2.如果想要訓(xùn)練Demo視頻級(jí)別的模型至少需要20G以上顯存的NVIDIA顯卡(如RTX3090)

3.云端一般常見(jiàn)的為V100(16G)、V100(32G)、A100(40G)、A100(80G)等顯卡,部分云端提供RTX3090等顯卡,請(qǐng)確保你使用的顯卡為20G以上顯存的NVIDIA顯卡

4.云端訓(xùn)練請(qǐng)首選Linux系統(tǒng)鏡像,不推薦云端使用Windows系統(tǒng)進(jìn)行訓(xùn)練

模型分為數(shù)據(jù)集處理、模型訓(xùn)練模型推理三部分

*實(shí)時(shí)速度指電腦每秒可以使用模型處理n秒的音頻,如4分鐘音頻耗時(shí)1分鐘處理完畢,實(shí)時(shí)速度為4x

*加速推理為模型自帶功能,同硬件下?tīng)奚糍|(zhì),提高推理速度

以i5-8300H為例,CPU的實(shí)時(shí)速度約0.1-0.5x,3分鐘歌曲轉(zhuǎn)換耗時(shí)5-30min不等

以1060-6G為例,GPU的實(shí)時(shí)速度約1-10x(取決于不同模型和加速設(shè)置),3分鐘歌曲耗時(shí)30s-5min

*onnx模型搭配openutau可以使用AMD顯卡加速推理

準(zhǔn)備工作

為了訓(xùn)練模型你需要提前準(zhǔn)備好以下數(shù)據(jù)

一、對(duì)應(yīng)訓(xùn)練類型的分支代碼

目前常用的分支為

https://github.com/openvpi/DiffSinger/tree/refactor

二、對(duì)應(yīng)訓(xùn)練類型的聲碼器

最新聲碼器的下載地址:https://github.com/openvpi/vocoders/releases/download/nsf-hifigan-v1/nsf_hifigan_20221211.zip

如果加載過(guò)慢可以使用https://d.serctl.com/搭配idm等多線程下載程序進(jìn)行加速下載

或者下載群內(nèi)【實(shí)驗(yàn)權(quán)重】下的文件

解壓后放到倉(cāng)庫(kù)目錄下的checkpoints文件夾

三、數(shù)據(jù)準(zhǔn)備

我們推薦各位對(duì)高質(zhì)量音聲授權(quán)素材進(jìn)行訓(xùn)練,實(shí)際訓(xùn)練中請(qǐng)注意素材來(lái)源的版權(quán)問(wèn)題。

*制作流程不涉及顯卡且云端CPU性能一般較弱,建議本地制作

數(shù)據(jù)要求

一、單人模型

準(zhǔn)備總長(zhǎng)度約為2~5h(或以上)的獲得授權(quán)單人漢語(yǔ)普通話干聲素材,盡量不要有混響和底噪,否則建議使用其他工具先進(jìn)行預(yù)處理;干聲保存為單聲道wav格式,至少16bit位深,并需要保證16kHz以下頻段完整。如想達(dá)到較好的效果,建議覆蓋更廣的音域、曲速和發(fā)音,但盡量保證所有素材的風(fēng)格、聲線相近。歌聲最佳,語(yǔ)音亦可,但純語(yǔ)音數(shù)據(jù)需要注意音域問(wèn)題。(推薦進(jìn)行響度匹配)

二、組合模型

如果多人訓(xùn)練組合模型,部分?jǐn)?shù)據(jù)可以時(shí)長(zhǎng)要求降低,但是需要進(jìn)行響度匹配

數(shù)據(jù)處理

一、響度匹配教程

請(qǐng)確保你在本地安裝好AU(需要自行獲得),本教程使用AU2018演示

啟動(dòng)AU

點(diǎn)擊紅框部分

若你的版本在工具欄中沒(méi)有響度匹配,請(qǐng)按照以下步驟來(lái)走

點(diǎn)擊效果

點(diǎn)擊匹配響度

拖拽音頻到如圖所示處

點(diǎn)擊導(dǎo)出設(shè)置

點(diǎn)擊瀏覽

選定你存放音頻的文件夾并點(diǎn)擊選擇文件夾

點(diǎn)擊確定

點(diǎn)擊運(yùn)行并耐心等待處理完成

二、數(shù)據(jù)切分

數(shù)據(jù)集制作流程中已包括切分,但為了效果,我們?nèi)越ㄗh先行切分

使用自動(dòng)音頻切片機(jī)將干聲素材切為每片5-15s的小片段

請(qǐng)注意:為了后續(xù)使用方便且避免后續(xù)報(bào)錯(cuò),使用切片機(jī)前請(qǐng)將文件重命名為英文或英文數(shù)字組合形式

例如:song.wav ? song2023020001.wav等,請(qǐng)不要含有()外的字符

GitHub:https://github.com/flutydeer/audio-slicer

下載點(diǎn)擊方框內(nèi)鏈接下載GUI并等待下載完成

若下載過(guò)慢,可以使用https://d.serctl.com/搭配idm等多線程下載程序進(jìn)行加速下載(群內(nèi)同樣可以獲得)

打開(kāi)文件夾并雙擊啟動(dòng)slicer-gui.exe

點(diǎn)擊 Add Adudio Files 或者將音頻文件拖入窗口

Ctrl+A全選你的音頻并點(diǎn)擊打開(kāi)或者拖入窗口

接下來(lái)是一些參數(shù)介紹

請(qǐng)根據(jù)自己的需求調(diào)整,若完全不懂這些參數(shù)是做什么的,請(qǐng)不要隨意修改,以免造成切片效果不佳

該數(shù)值表示:以 dB 表示的 RMS 閾值。所有 RMS 值都低于此閾值的區(qū)域?qū)⒈灰暈殪o音。如果音頻有噪音,請(qǐng)?jiān)黾哟酥?。默認(rèn)值為 -40。

該數(shù)值表示:每個(gè)切片的最小長(zhǎng)度,以毫秒為單位。默認(rèn)值為 5000。

該數(shù)值表示:要切片的靜音部分的最小長(zhǎng)度,以毫秒為單位。如果音頻僅包含短暫的中斷,請(qǐng)將此值設(shè)置得更小。此值越小,應(yīng)用生成的切片音頻剪輯可能就越多。請(qǐng)注意,此值必須小于 min_length 且大于 hop_size。默認(rèn)值為 300。

該數(shù)值表示:每個(gè) RMS 幀的長(zhǎng)度,以毫秒為單位。增加此值將提高切片的精度,但會(huì)減慢該過(guò)程。默認(rèn)值為 10。

該數(shù)值表示:在切片音頻周圍保持的最大靜音長(zhǎng)度,以毫秒為單位顯示。根據(jù)需要調(diào)整此值。請(qǐng)注意,設(shè)置此值并不意味著切片音頻中的靜音部分具有完全給定的長(zhǎng)度。如上所述,該算法將搜索要切片的最佳位置。默認(rèn)值為 1000。

該選項(xiàng)為選定音頻輸出文件夾,請(qǐng)點(diǎn)擊Browse點(diǎn)擊并選擇你的導(dǎo)出文件夾。留空則輸出到源文件的位置。

強(qiáng)烈建議導(dǎo)出到其他文件夾以防止數(shù)據(jù)混淆

點(diǎn)擊start并耐心等待切片完成

接下來(lái)請(qǐng)將你的數(shù)據(jù)按照大小排序,使用AU手動(dòng)切片15s以上的長(zhǎng)音頻分別導(dǎo)出

對(duì)應(yīng)教程鏈接:

https://blog.csdn.net/topia_csdn/article/details/115405605

請(qǐng)注意,導(dǎo)出音頻格式應(yīng)當(dāng)統(tǒng)一為WAV,采樣率默認(rèn)為原音頻采樣率!

請(qǐng)確保你的數(shù)據(jù)無(wú)混響,聽(tīng)感清晰并無(wú)噪音,這些都將影響你的最終模型成果!

三、數(shù)據(jù)標(biāo)注

現(xiàn)在,你需要按照上面的示例進(jìn)行標(biāo)注,并且滿足以下條件:

  • 在標(biāo)注文件中,你需要寫下對(duì)應(yīng)音頻中演唱或說(shuō)出的所有音節(jié)

  • 音節(jié)需要用空格分開(kāi),并且只允許出現(xiàn)在字典中的音節(jié)

特別說(shuō)明:請(qǐng)不要標(biāo)注AP(呼吸)SP (停頓)在標(biāo)注文件中

注意事項(xiàng):請(qǐng)不要標(biāo)注漢語(yǔ)拼音以外的拼音序列

Tips.略要標(biāo)注為lve

下載群文件里的MinLabel

Windows下解壓即用

它可以讀取音頻和同名【.lab】,如果同目錄沒(méi)有【.lab】會(huì)自動(dòng)在同目錄創(chuàng)建同名文件

使用時(shí)需要選擇你使用的默認(rèn)播放

輸入中文歌詞,粘貼,點(diǎn)擊Replace(快捷鍵是回車)自動(dòng)生成對(duì)應(yīng)拼音(需要自行檢查)

點(diǎn)擊Append會(huì)在已有拼音后面新增歌詞欄的拼音

按PgUp和PgDn可以切換上下音頻,切換后會(huì)自動(dòng)保存

數(shù)據(jù)集制作

1.下載并安裝Anaconda

如果你擅長(zhǎng)于此也可以選擇MiniConda

*MFA在Windows下必須使用Conda虛擬環(huán)境

點(diǎn)擊鏈接,下載windows64版anaconda:

https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.10-Windows-x86_64.exe


雙擊啟動(dòng)

點(diǎn)擊next

點(diǎn)擊 I agree

點(diǎn)擊just me

默認(rèn)安裝在C盤(如果空間緊張也可使用其他路徑,避免中文路徑)

請(qǐng)務(wù)必選擇add path

點(diǎn)擊install并耐心等待下載完成

下載完成,點(diǎn)擊next退出

2.Anconda換源

如果官方源過(guò)慢,可以自行搜索anconda換源進(jìn)行操作,本教程不對(duì)此部分進(jìn)行答疑

3.打開(kāi)終端

后續(xù)Windows下所有打開(kāi)終端均是指此操作

1.點(diǎn)擊桌面【W(wǎng)in】徽標(biāo)或按下鍵盤上【W(wǎng)in】徽標(biāo)鍵

2.找到Anaconda3

3.找到Anaconda Prompt(Anaconda3)

4.打開(kāi)

為了避免和其他項(xiàng)目產(chǎn)生依賴沖突,我們需要為數(shù)據(jù)集制作創(chuàng)建一個(gè)虛擬環(huán)境,該虛擬環(huán)境通用于接下來(lái)所有制作相關(guān)教程。

如果你已經(jīng)創(chuàng)建了適用于DiffSinger的虛擬環(huán)境,你通常無(wú)須再次創(chuàng)建

一、創(chuàng)建個(gè)Python 3.8的虛擬環(huán)境

如果你已經(jīng)創(chuàng)建了適用于DiffSinger的虛擬環(huán)境,你通常無(wú)須再次創(chuàng)建

請(qǐng)直接下滑到【二、安裝jupyter

1.輸入:

conda create -n diff python=3.8

按下回車鍵 ,diff是虛擬環(huán)境的名字可以換成任何英文拼音名,只要你記得住就行。

等待conda查找所需組件,完畢后會(huì)顯示下圖內(nèi)容

輸入:

y

按回車鍵開(kāi)始安裝,等待下載和安裝完成

輸入:

activate diff

回車,切換到剛剛創(chuàng)建的虛擬環(huán)境

每次重新打開(kāi)conda終端都要切換到項(xiàng)目對(duì)應(yīng)的虛擬環(huán)境,看到開(kāi)頭由base變?yōu)閐iff就說(shuō)明切換到虛擬環(huán)境了

二、安裝jupyter

pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple

回車,安裝jupyter(這里你也可以選擇下載VSCode等支持jupyter的項(xiàng)目)

三、創(chuàng)建kernel

為了讓我們部署過(guò)的環(huán)境在ipynb中也能使用

輸入

conda install ipykernel

回車(如果剛剛運(yùn)行了jupyter使用快鍵鍵Ctrl+C即可終止運(yùn)行)

conda查找完成后輸入

y

回車

等待安裝完成后輸入

ipython kernel install --user --name diff

回車(這里的diff也是選擇你自己喜歡的名字)

五、獲取制作數(shù)據(jù)集的notebook

OpenVPI團(tuán)隊(duì)維護(hù)的DiffSinger-refactor倉(cāng)庫(kù)地址

https://github.com/openvpi/DiffSinger/tree/refactor

推薦使用git指令以獲取最新更新

git clone https://github.com/openvpi/DiffSinger/tree/refactor

如果點(diǎn)擊code下載zip

如果你無(wú)法流暢訪問(wèn)GitHub導(dǎo)致下載過(guò)慢,你可以右鍵【Download ZIP】復(fù)制鏈接到

https://d.serctl.com

下載

把下載完成的壓縮包解壓到任意目錄(路徑不能有中文)


Conda輸入:

cd 你解壓的DiffSinger-refactor倉(cāng)庫(kù)的地址

切換到DiffSinger-refactor倉(cāng)庫(kù)

這里如果你解壓在非C盤路徑,可能會(huì)出現(xiàn)cd后無(wú)變化的情況

這時(shí)你可以輸入對(duì)應(yīng)盤符,例如

f:

回車

*請(qǐng)根據(jù)自己情況操作

前言

已更新多歌手/聲線,更新最新代碼后參閱第五條進(jìn)行設(shè)置即可

注:若聲線變化豐富,推薦區(qū)分聲線;若多個(gè)人需要制作,推薦使用多人組合

(若未制作過(guò)單人數(shù)據(jù)集,請(qǐng)按照流程繼續(xù))

如果您完成數(shù)據(jù)集制作和聲庫(kù)訓(xùn)練后認(rèn)為此教程對(duì)您有幫助或者DiffSinger的合成效果令您滿意,歡迎您在發(fā)布相關(guān)聲庫(kù)作品時(shí)在簡(jiǎn)介中附帶本教程鏈接和DiffSinger(OpenVPI維護(hù)版)的GitHub倉(cāng)庫(kù)鏈接。

同時(shí),我們也歡迎您在簡(jiǎn)介中簡(jiǎn)要說(shuō)明聲庫(kù)的大致情況,例如:

  • 訓(xùn)練數(shù)據(jù)總時(shí)長(zhǎng)

  • 數(shù)據(jù)類型(歌聲還是語(yǔ)音、數(shù)據(jù)來(lái)源、數(shù)據(jù)質(zhì)量等)

  • 訓(xùn)練使用的設(shè)備

  • 訓(xùn)練總步數(shù)

  • 更改過(guò)的超參配置

這將有助于我們考察模型在更多樣化的數(shù)據(jù)集上的表現(xiàn)。

以上內(nèi)容僅僅是建議性的,沒(méi)有強(qiáng)制要求。歡迎與我們分享您在制作數(shù)據(jù)集與訓(xùn)練聲庫(kù)過(guò)程中的任何感受。

一、打開(kāi)notebook

*執(zhí)行下列操作前請(qǐng)確保你已經(jīng)按照前面教程cd到代碼目錄

(圖片僅供參考,具體為你的路徑)

在命令行輸入

jupyter notebook

回車

點(diǎn)擊pipelines

點(diǎn)擊no_midi_preparation.ipynb

點(diǎn)擊Kernel

點(diǎn)擊Change Kernel,選擇diff(之前環(huán)境準(zhǔn)備中你創(chuàng)建的)

二、運(yùn)行notebook

0.使用說(shuō)明

點(diǎn)擊“代碼所在格子”,被選中的“格子”會(huì)改變顏色,點(diǎn)擊上方的【run】即可運(yùn)行相應(yīng)代碼

1.前期準(zhǔn)備

1.2安裝依賴

*僅在初次運(yùn)行時(shí)需要使用

MFA安裝較慢,需要耐心等待,你也可以分別復(fù)制!后內(nèi)容在conda命令行中手動(dòng)安裝

安裝完成后

這里會(huì)有顯示

*手動(dòng)安裝前記得點(diǎn)擊【run】旁邊的停止來(lái)停止運(yùn)行

*手動(dòng)安裝需要重新打開(kāi)一個(gè)命令行

1.3初始化環(huán)境

每次使用時(shí)都需要運(yùn)行

運(yùn)行成功后會(huì)輸出

2.數(shù)據(jù)處理和切片

請(qǐng)保證你的數(shù)據(jù)滿足以下條件

  1. 位于同一個(gè)文件夾中,暫不支持多層結(jié)構(gòu)。

  2. 格式為【. wav】。

  3. 采樣率高于 32000Hz。

  4. 只包含來(lái)自人類的聲音,并且只包含一個(gè)人的聲音,暫不支持多說(shuō)話人訓(xùn)練

  5. 沒(méi)有明顯的噪音或混響

*可選步驟提示

原始數(shù)據(jù)必須切成單個(gè)文件大約 5-15 秒,如果前面你已經(jīng)完成此操作,從第 2.3 開(kāi)始

2.1配置數(shù)據(jù)路徑

你需要將''中的內(nèi)容修改為你的原始數(shù)據(jù)路徑

這邊的做法是在項(xiàng)目根目錄創(chuàng)建raw文件夾,在里面創(chuàng)建recordings文件夾并將音頻復(fù)制進(jìn)去

*需要注意的是直接在windows文件管理器中復(fù)制的話,路徑中是【\】需要手動(dòng)修改成【/】

2.2切分?jǐn)?shù)據(jù)

你需要將''中的內(nèi)容修改為你想要的切分后的數(shù)據(jù)保存路徑

*請(qǐng)不要和上面一致

這邊的做法是在raw文件夾中新建sliced文件夾

可能需要一段時(shí)間,具體時(shí)間取決于你原始音頻的數(shù)量和時(shí)長(zhǎng)

完成后

2.3驗(yàn)證數(shù)據(jù)

這一部分將檢查你的數(shù)據(jù)是否可用

*可選步驟提示

如果你前面跳過(guò)了2.1和2.2,請(qǐng)先在這里設(shè)定你存放數(shù)據(jù)的路徑

路徑示例為:F:/Diffsinger-no-midi/raw/sliced

運(yùn)行后

該格的作用為檢測(cè)是否有2s以下或者20s以上的音頻

*手動(dòng)步驟提示

這里你需要手動(dòng)去除過(guò)短語(yǔ)音或者將其拼湊成長(zhǎng)語(yǔ)音,過(guò)長(zhǎng)語(yǔ)音需要手動(dòng)裁短,直到運(yùn)行后顯示下面內(nèi)容

3.標(biāo)記數(shù)據(jù)

3.1標(biāo)注拼音序列

運(yùn)行此格查看示例


*手動(dòng)步驟提示

如果你已完成請(qǐng)直接運(yùn)行3.1.1

現(xiàn)在,你需要按照上面的示例進(jìn)行標(biāo)注,并且滿足以下條件:

  • 每個(gè)音頻都有一個(gè)與其文件名相同的 【.lab】標(biāo)注文件,并放置在相同的目錄中

  • 在標(biāo)注文件中,你需要寫下對(duì)應(yīng)音頻中演唱或說(shuō)出的所有音節(jié)

  • 音節(jié)需要用空格分開(kāi),并且只允許出現(xiàn)在字典中的音節(jié)

  • 同時(shí),標(biāo)注中需要包含字典中的所有音素

特別說(shuō)明:請(qǐng)不要標(biāo)注APSP 在標(biāo)注文件中

注意事項(xiàng):請(qǐng)不要標(biāo)注漢語(yǔ)拼音以外的拼音序列

P.S.運(yùn)行以下代碼塊會(huì)自動(dòng)生成所有音頻對(duì)應(yīng)的空白【.lab】文件


P.P.S.這里由【zjzj】和【YQ之神】為大家提供了一個(gè)小工具

Windows下解壓即用

,它可以讀取音頻和同名【.lab】,如果沒(méi)有【.lab】會(huì)自動(dòng)創(chuàng)建同名文件

初次使用如果沒(méi)有聲音,需要選擇你使用的默認(rèn)播放

輸入中文歌詞,粘貼,點(diǎn)擊Replace(快捷鍵是回車)自動(dòng)生成對(duì)應(yīng)拼音(需要自行檢查)

點(diǎn)擊Append會(huì)在已有拼音后面新增歌詞欄的拼音

按方向鍵可以切換上下音頻

3.1.1標(biāo)注檢測(cè)

運(yùn)行以下代碼塊檢查是否所有語(yǔ)音都已標(biāo)注以及所有標(biāo)注是否有效

如果檢查失敗,請(qǐng)修改并重新運(yùn)行檢查

同時(shí)會(huì)生成音素覆蓋范圍的摘要

如果某些音素的出現(xiàn)次數(shù)極少(例如,少于 20 次),強(qiáng)烈建議添加更多錄音以涵蓋這些音素

3.2強(qiáng)制對(duì)齊

通過(guò)給定每個(gè)片段的標(biāo)注,能夠?qū)⒁羲匦蛄信c其相應(yīng)的音頻對(duì)齊,從而獲得每個(gè)音素的位置和持續(xù)時(shí)間的信息

這里使用MFA進(jìn)行強(qiáng)制音素對(duì)齊

運(yùn)行以下代碼塊,將會(huì)把重新采樣的錄音將和音素標(biāo)簽保存于你pipelines/segments路徑下,同時(shí)會(huì)創(chuàng)建臨時(shí)用于存儲(chǔ)的pipelines/textgrids/文件夾

*請(qǐng)勿修改路徑

*此操作將會(huì)覆蓋這兩個(gè)文件夾的全部?jī)?nèi)容,請(qǐng)?zhí)崆皞浞?/span>

運(yùn)行以下代碼塊,將會(huì)下載并解壓縮預(yù)訓(xùn)練的 MFA 聲學(xué)模型并進(jìn)行強(qiáng)制對(duì)齊,如果運(yùn)行失敗可將命令復(fù)制到終端繼續(xù)運(yùn)行

*可能會(huì)有錯(cuò)誤,報(bào)錯(cuò)一般意味著你的數(shù)據(jù)集切片過(guò)長(zhǎng)、部分切片字?jǐn)?shù)過(guò)多或者存在很離譜的標(biāo)注錯(cuò)誤,請(qǐng)先檢查你的數(shù)據(jù)和標(biāo)注;

*加大beam前可以嘗試先重新運(yùn)行一下,有概率解決

如果確定標(biāo)注無(wú)誤,可以調(diào)大--beam后面的數(shù)字再次嘗試(會(huì)導(dǎo)致精度下降

*下一步如果報(bào)錯(cuò)某個(gè)(些)TextGrid文件not found的話,缺少的文件對(duì)應(yīng)的音頻和拼音標(biāo)注也可能存在很嚴(yán)重的標(biāo)注錯(cuò)誤,同樣請(qǐng)檢查數(shù)據(jù)后回到這一步重新處理

*如果你檢查后修改了個(gè)別標(biāo)注和音頻,你需要重新從2.3節(jié)開(kāi)始運(yùn)行程序

3.3優(yōu)化對(duì)齊結(jié)果

運(yùn)行前根據(jù)實(shí)際情況修改參數(shù)

*如果你的數(shù)據(jù)集是男聲,你可以調(diào)小f0_min和f0_max這兩個(gè)值(Hz),女聲反之,這樣音高分析會(huì)更加準(zhǔn)確

*br_db可以根據(jù)實(shí)際情況來(lái)修改,如果你的數(shù)據(jù)集錄音有底噪(尤其是中高頻的底噪)實(shí)在沒(méi)有去除,你可以把這個(gè)值適當(dāng)調(diào)大

*其他的參數(shù)除非你看懂了是干什么用的,否則不要亂動(dòng),保持默認(rèn)即可

*保存在pipelines/textgrids/的TextGrid可以通過(guò)Praat進(jìn)行編輯。如果您想要更準(zhǔn)確的模型和更高的性能,可以檢查這些文件并自行修復(fù)標(biāo)簽錯(cuò)誤。(非必須,仍需耗費(fèi)大量時(shí)間)

*但仍然建議有條件的話隨機(jī)打開(kāi)幾個(gè)TextGrid大致看一下音素時(shí)長(zhǎng)有沒(méi)有標(biāo)準(zhǔn)了,尤其是呼吸AP有沒(méi)有識(shí)別準(zhǔn)確,SP空白的位置有沒(méi)有出現(xiàn)特別離譜的錯(cuò)誤。如果你覺(jué)得標(biāo)得不準(zhǔn),請(qǐng)調(diào)整一下參數(shù)再重新運(yùn)行

運(yùn)行下面單元格可以獲得大致音域分布

P.S.如果你的音域過(guò)窄

在按照【4.1】制作完單人數(shù)據(jù)集后

1.申請(qǐng)OpenCPoP數(shù)據(jù)集(https://wenet.org.cn/opencpop/download/

2.按照之前流程進(jìn)行響度匹配

3.下載群里標(biāo)注文件

4.把數(shù)據(jù)按照

結(jié)構(gòu)放置

*注意:其中【transcriptions.txt】要使用群里標(biāo)注文件的內(nèi)容(改成這個(gè)名字就行)

5.然后在下面按照【5】繼續(xù)運(yùn)行

4.數(shù)據(jù)集的最終構(gòu)建

恭喜,只要再完成以下幾個(gè)步驟就能完成數(shù)據(jù)集的最終構(gòu)建

4.1數(shù)據(jù)集的名稱和格式

請(qǐng)為您的數(shù)據(jù)集創(chuàng)建一個(gè)唯一的名稱,通常是歌手/中之人的名稱(無(wú)論是真名的還是圈名的)。例如,opencpop。您還可以添加標(biāo)簽來(lái)表示數(shù)據(jù)集版本、模型容量或改進(jìn)。例如,v2表示版本、large表示模型規(guī)模,fix_br表示相比于上次訓(xùn)練的模型修復(fù)了呼吸聲問(wèn)題

*請(qǐng)?jiān)谶\(yùn)行之前編輯以下單元格

*請(qǐng)記住只能使用字母、數(shù)字和下劃線

運(yùn)行下方單元格進(jìn)行清理

*該操作會(huì)清空pipelines/segments和pipelines/textgrids/文件夾,如果你想備份,請(qǐng)指定一個(gè)備份用的目錄再運(yùn)行

4.2超參文件配置

在這里,你可以配置一些用于預(yù)處理、訓(xùn)練時(shí)所需的神經(jīng)網(wǎng)絡(luò)的參數(shù)。

*如果提示CUDA out of memory,先檢查是否有15s以上過(guò)長(zhǎng)數(shù)據(jù),如果沒(méi)有優(yōu)先修改max_tokens和max_sentens,請(qǐng)不要修改residual_channels和residual_layers,除非你確定有能力進(jìn)行后續(xù)處理。

eg.最長(zhǎng)數(shù)據(jù)20s,max_tokens52000,max_sentences48的情況下顯存占用大概22G左右,使用3090即可訓(xùn)練

*如果需要制作多人數(shù)據(jù)集,請(qǐng)?zhí)D(zhuǎn)到5

閱讀下面的說(shuō)明并運(yùn)行以下單元格。

4.2.1 神經(jīng)網(wǎng)絡(luò)參數(shù)

1. residual_channels和residual_layers

這兩個(gè)參數(shù)是指擴(kuò)散解碼器網(wǎng)絡(luò)的寬度和深度。一般來(lái)說(shuō),表示模型容量。較大的模型在訓(xùn)練和推理時(shí)消耗更多的 GPU 內(nèi)存并且運(yùn)行速度較慢,但它們會(huì)產(chǎn)生更好的結(jié)果

基礎(chǔ)的版本384x20

大網(wǎng)絡(luò)版本512x20

訓(xùn)練所需的 GPU 內(nèi)存:

基礎(chǔ)的版本 - 至少 6 GB(建議 12 GB)

大網(wǎng)絡(luò)版本 - 至少 12 GB(建議 24 GB)

2. f0_embed_type

f0有【離散】和【連續(xù)】?jī)煞N嵌入方式。離散(discrete)嵌入采用從 50Hz 到 1100Hz 的 256 個(gè)bin,并使用 torch.nn.Embedding 嵌入,連續(xù)(continuous)嵌入將 f0 轉(zhuǎn)換為連續(xù) mel 頻率,并使用 torch.nn.Linear嵌入。

離散嵌入已經(jīng)過(guò)長(zhǎng)時(shí)間的測(cè)試,并保證穩(wěn)定。連續(xù)嵌入尚未經(jīng)過(guò)廣泛測(cè)試,但在音高范圍的極端邊緣觀察到一些改進(jìn)。

4.2.2 數(shù)據(jù)增強(qiáng)

數(shù)據(jù)增強(qiáng)可提高模型的性能或功能,但可能會(huì)增加訓(xùn)練數(shù)據(jù)的大小

1.random_pitch_shifting

啟用后,對(duì)數(shù)據(jù)進(jìn)行隨機(jī)變調(diào),而不是在預(yù)處理時(shí)保留共振峰。此外,每條數(shù)據(jù)被變調(diào)的key將被嵌入到網(wǎng)絡(luò)中。這將擴(kuò)大音高范圍,并允許在推理時(shí)控制幀級(jí)鍵移動(dòng)(如 VOCALOID 中的 GEN 參數(shù))。

這種類型的擴(kuò)充接受以下參數(shù):

  • range控制將隨機(jī)移動(dòng)的音高鍵的范圍。

  • scale控制將應(yīng)用擴(kuò)充的數(shù)據(jù)量。

??????????????????????????=(1+??????????)???????????????????

2.fixed_pitch_shifting

啟用后,數(shù)據(jù)的音高將固定變調(diào)。這些帶有變調(diào)的數(shù)據(jù)將被標(biāo)記為與原始數(shù)據(jù)不同的說(shuō)話人,從而使模型成為組合模型。這也將擴(kuò)大音高的范圍(可能比隨機(jī)音高轉(zhuǎn)換略好)。這種增強(qiáng)與隨機(jī)變高不兼容。

這種類型的擴(kuò)充接受以下參數(shù):

  • targets控制變調(diào)的目標(biāo)數(shù)量以及將向每個(gè)目標(biāo)移動(dòng)的鍵數(shù)。

  • scale控制每個(gè)增強(qiáng)目標(biāo)將應(yīng)用于的數(shù)據(jù)量。

??????????????????????????=(1+?????????????????????(??????????????))???????????????????

4.2.3 訓(xùn)練和驗(yàn)證

1. test_prefixes

此列表中指定的名稱前綴的所有文件都將放入測(cè)試集中。每次保存檢查點(diǎn)時(shí),程序?qū)⑹紫仍跍y(cè)試集上運(yùn)行推理,并將結(jié)果放在 TensorBoard 上。因此,你可以收聽(tīng)這些演示并判斷模型的質(zhì)量。如果添加的測(cè)試用例少于 10 個(gè),則會(huì)自動(dòng)隨機(jī)選擇更多用例。

2. max_tokens和max_sentences

這兩個(gè)參數(shù)共同確定訓(xùn)練時(shí)的batch size(bs),前者表示一個(gè)batch中的最大幀數(shù),后者限制最大batch。較大的bs在訓(xùn)練時(shí)消耗更多的 GPU 內(nèi)存。此值可以根據(jù)你的 GPU 內(nèi)存進(jìn)行調(diào)整。切記不要將此值設(shè)置得太低,因?yàn)樾s可能導(dǎo)致模型不收斂。

3. lr 和decay_steps

這兩個(gè)值是指每次學(xué)習(xí)率衰減時(shí)的學(xué)習(xí)率和步數(shù)。如果你減小了bs大小,則可以考慮使用較小的學(xué)習(xí)率和更多的衰減步數(shù)。

4. val_check_interval, num_ckpt_keep和max_updates

這三個(gè)值是指驗(yàn)證和保存檢查點(diǎn)之間的訓(xùn)練步驟、保留的最新檢查點(diǎn)數(shù)以及最大訓(xùn)練步驟數(shù)。使用默認(rèn)bs大小和 5 小時(shí)的訓(xùn)練數(shù)據(jù),250k ~ 300k 的訓(xùn)練步長(zhǎng)是合理的。如果減小bs大小,則可能會(huì)增加訓(xùn)練步驟。

5. permanent_ckpt_start和permanent_ckpt_interval

這兩個(gè)值負(fù)責(zé)控制訓(xùn)練中永久檢查點(diǎn)的保存。通常情況下,只有最新的 num_ckpt_keep 個(gè)模型會(huì)被保存,其他的模型會(huì)全部被清理。這是為了在程序報(bào)錯(cuò)、崩潰或進(jìn)程被殺、設(shè)備故障、實(shí)例被收回等造成訓(xùn)練意外中止的情況下能夠保存最新的訓(xùn)練結(jié)果。但這樣的機(jī)制無(wú)法應(yīng)對(duì)模型意外過(guò)擬合(訓(xùn)練過(guò)頭)的情況,也不方便進(jìn)行不同訓(xùn)練步數(shù)的對(duì)比。

設(shè)置這兩個(gè)值后,程序?qū)牡?permanent_ckpt_start 步開(kāi)始(最開(kāi)始的若干步通常沒(méi)什么意義,全是噪聲和缺陷),每隔 permanent_ckpt_interval 步保存一個(gè)永久的模型。這樣的模型不會(huì)被當(dāng)作舊模型刪除,因此你無(wú)需時(shí)刻盯著煉丹爐,這些模型可以供你事后對(duì)比和選擇。

要啟用永久模型保存,請(qǐng)確保這兩個(gè)值都是 val_check_interval 的正倍數(shù)。

保存永久模型會(huì)占用更多硬盤空間,所以你也可以把 permanent_ckpt_interval 設(shè)置成 -1 來(lái)關(guān)閉這個(gè)功能。

5.組合模型的配置

*如果你僅使用一份數(shù)據(jù),無(wú)需執(zhí)行此操作

如果你有多個(gè)數(shù)據(jù)集,則可以使用它們訓(xùn)練組合模型,以獲得更好的性能和覆蓋率。此外,你還可以通過(guò)一個(gè)模型在不同的演唱者/風(fēng)格/音色等之間切換,甚至可以隨著時(shí)間的推移以任何比例、靜態(tài)或動(dòng)態(tài)混合它們中的任何一個(gè)。

本節(jié)將指導(dǎo)你為此類模型創(chuàng)建配置文件,以便你可以從多個(gè)數(shù)據(jù)集運(yùn)行聯(lián)合預(yù)處理和訓(xùn)練。

注意:在訓(xùn)練組合模型之前,你必須獲得每個(gè)數(shù)據(jù)集的版權(quán)所有者的許可,并確保所有這些提供者都完全了解你將從他們的數(shù)據(jù)中訓(xùn)練組合模型,你是否會(huì)分發(fā)合成的聲音和模型權(quán)重,他們的聲音是否會(huì)被用于混合, 以及其他的潛在風(fēng)險(xiǎn)。

5.1.選擇數(shù)據(jù)集

在以下單元格,你可以選擇數(shù)據(jù)集并為你的組合模型命名

1.model_namemodel_tags

類似于第 4.1 節(jié)中描述的dataset_name和dataset_tags,但在這里您可以在模型名稱中使用 +。例如,female_triplet 和 alice+bob 。

2.datasets

你可以使用數(shù)據(jù)集的全名指定數(shù)據(jù)集,并為每個(gè)數(shù)據(jù)集設(shè)置說(shuō)話人名稱(speaker)。例:

注意:必須鍵入dataset的全名(data/ 目錄中的文件夾名稱)。你可以在speaker中使用字母、數(shù)字、下劃線 (_) 和連字符 (-)。

5.2 配置參數(shù)

組合模型的大多數(shù)參數(shù)與第 4.2 節(jié)中所述相同,但存在以下差異。

1.test_prefixes

您可以使用波形文件的前綴或全名,在此參數(shù)中帶或不帶說(shuō)話人 ID。例如:

xxx 將完全匹配任何選定數(shù)據(jù)集中的一個(gè)文件名,如果沒(méi)有,則匹配以 xxx開(kāi)頭的所有文件名。

0:xxx 將完全匹配第一個(gè)數(shù)據(jù)集中的一個(gè)文件名,如果沒(méi)有,則匹配該數(shù)據(jù)集中以 xxx 開(kāi)頭的所有文件名。

如果未指定,將從所有數(shù)據(jù)集中隨機(jī)選擇測(cè)試用例。

6.完成

現(xiàn)在你可以參考輸出結(jié)果進(jìn)行訓(xùn)練步驟了

*請(qǐng)參考你自己的輸出結(jié)果


DiffSinger(三)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
玛多县| 万盛区| 五华县| 满城县| 兴宁市| 襄城县| 原平市| 钦州市| 潜山县| 通州区| 桃源县| 玛沁县| 米泉市| 富川| 青浦区| 泸溪县| 长垣县| 万源市| 甘南县| 株洲县| 桐梓县| 南开区| 鹰潭市| 建昌县| 湄潭县| 阿坝县| 柳州市| 金坛市| 渝中区| 宁蒗| 林州市| 临漳县| 绥阳县| 玛沁县| 德清县| 灌南县| 青冈县| 张家口市| 周至县| 咸阳市| 海南省|