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

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

DiffSinger(OpenVPI 維護版)v2.0.0 更新日志

2023-07-17 12:00 作者:YQ之神  | 我要投稿

v2.0.0:完全重構(gòu)、全新唱法模型、通用詞典支持、半精度/多卡訓(xùn)練支持與諸多改進

項目開源地址:https://github.com/openvpi/DiffSinger

交流QQ群:907879266

總體架構(gòu)圖

不兼容更改及遷移指南

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

數(shù)據(jù)集制作流程(MFA)已遷移至專用倉庫 MakeDiffSinger。原有的 Jupyter Notebook 已被移除并替換為了更加靈活、分步執(zhí)行的命令行腳本。

舊功能移除

以下功能已移除并不再支持:

  • MIDI-A/B 模式的訓(xùn)練和推理

  • PitchExtracter (xiaoma_pe) 的訓(xùn)練和推理

  • 舊版 24 kHz 聲碼器(HiFi-GAN, PWG)的訓(xùn)練和推理

環(huán)境依賴

環(huán)境依賴已重置,需要重新安裝依賴。ONNX 導(dǎo)出依賴已從 PyTorch 1.8 更改為 PyTorch 1.13。

模型加載

舊的聲學(xué)模型權(quán)重在加載前需要根據(jù)報錯信息使用腳本進行遷移:

若要使用舊權(quán)重繼續(xù)訓(xùn)練,需要在配置文件添加一行:

數(shù)據(jù)集

舊數(shù)據(jù)集在開始訓(xùn)練前需要重新預(yù)處理。

舊數(shù)據(jù)標(biāo)注(transcriptions.txt)在加載前需要根據(jù)報錯信息使用腳本遷移至新的 transcriptions.csv:

配置文件

以下配置項的名稱已更改:

  • g2p_dictionary => dictionary

  • max_tokens => max_batch_frames

  • max_sentences => max_batch_size

  • max_eval_tokens => max_val_batch_frames

  • max_eval_sentences => max_val_batch_size

  • lr => optimizer_args.lr

  • optimizer_adam_beta1 -> optimizer_args.beta1

  • optimizer_adam_beta2 -> optimizer_args.beta2

  • weight_decay -> optimizer_args.weight_decay

  • warmup_updates -> lr_scheduler_args.warmup_steps

  • decay_steps => lr_scheduler_args.step_size

  • gamma => lr_scheduler_args.gamma

數(shù)據(jù)增強相關(guān)配置新增開關(guān)屬性,需要額外設(shè)置開啟才可啟用,例如:

DS 文件

舊的 DS 文件格式已不再兼容。請使用最新版本 OpenUTAU for DiffSinger (https://github.com/xunmengshe/OpenUtau)?導(dǎo)出新版本格式的 DS 文件進行推理。

全新唱法模型、參數(shù)與機制

唱法模型

全新唱法模型已開放訓(xùn)練與推理,主要基于擴散模型,具備高表現(xiàn)力、高還原度、高自由度與高可控性。

包含功能(可自由搭配):

  • 自動預(yù)測音素長度(Duration Predictor)

  • 自動預(yù)測音高曲線(Pitch Diffusion)

  • 自動聯(lián)合預(yù)測其他唱法參數(shù)(Multi-Variance Diffusion)

若要訓(xùn)練唱法模型,現(xiàn)有的數(shù)據(jù)標(biāo)注需要進行遷移。根據(jù)選配功能與所用詞典的不同,需要采取的措施有所區(qū)別(部分情況需要人工進行補充標(biāo)注),詳情可見:https://github.com/openvpi/MakeDiffSinger/tree/main/variance-temp-solution

音素時長

在聲學(xué)模型中,用戶需要輸入每個音素的具體時長,因此聲學(xué)模型的推理依賴于音素時長預(yù)測模型。唱法模型中的音素時長預(yù)測模塊可根據(jù)音素序列、詞劃分、詞長與近似 MIDI 序列預(yù)測每個音素的時長。

音高曲線

聲學(xué)模型的推理依賴于外部輸入的給定音高曲線。唱法模型中的音高曲線預(yù)測模塊可根據(jù)音素信息與平滑 MIDI 基準(zhǔn)音高自動預(yù)測唱段的實際音高曲線。特別設(shè)計的 MIDI 標(biāo)注方案使得音準(zhǔn)不佳的數(shù)據(jù)依然可參與訓(xùn)練并得到音準(zhǔn)良好的模型(語音數(shù)據(jù)除外)。

唱法參數(shù)

唱法參數(shù)可在音素時長、音高曲線以外為模型賦予更高表現(xiàn)力與可控性。唱法參數(shù)由唱法模型根據(jù)音素信息與音高曲線進行預(yù)測輸出并由聲學(xué)模型接受參數(shù)輸入,從而實現(xiàn)控制。

注:唱法參數(shù)均為實際值表示而非相對偏移表示,因此不存在默認(rèn)值曲線。若需要控制唱法參數(shù),除需訓(xùn)練對應(yīng)參數(shù)的唱法預(yù)測模塊以外,還需額外訓(xùn)練開啟了相應(yīng)參數(shù)輸入的聲學(xué)模型。

能量

能量(Energy)定義為唱段的 RMS 響度曲線,單位為 dB,可在一定程度上控制演唱的力度。

在 DS 文件中,可使用 energy?和 energy_timestep?對能量參數(shù)進行控制。

氣聲

氣聲(Breathiness)定義為唱段中非周期性部分的 RMS 響度曲線,單位為 dB,可控制演唱的氣流強度與清輔音的發(fā)聲強度。

在 DS 文件中,可使用 breathiness 和 breathiness_timestep 對氣聲參數(shù)進行控制。

唱法融合機制

所有唱法模型支持的參數(shù)(音素時長、音高參數(shù)、其他唱法參數(shù))均適配動態(tài)唱法融合。其中,音素時長序列以音素為單位融合,其余參數(shù)以幀為單位融合。不同參數(shù)的唱法融合、唱法融合與聲學(xué)模型的聲線融合之間互相獨立,互不影響。

唱法融合在 DS 文件中的控制方式與聲線融合類似:

  • 使用 ph_spk_mix?對音素時長融合比例進行控制。

  • 使用 spk_mix 與 spk_mix_timestep 對其余參數(shù)融合比例進行控制。

局部重錄機制

音高參數(shù)與所有唱法參數(shù)均支持局部重錄,即給定已有的參數(shù)曲線,補全或重錄任意連續(xù)子區(qū)間的參數(shù)曲線。同時,該機制可使得重錄部分的參數(shù)與給定的參數(shù)平滑銜接。

在重錄音高參數(shù)時,需要給定完整音素信息、需要重錄的片段位置、非重錄部分的音高參數(shù)。重錄音高參數(shù)時,將根據(jù)給定條件重新生成對應(yīng)區(qū)間的音高曲線。

在重錄其他唱法參數(shù)時,需要給定完整音素信息、完整音高曲線、需要重錄的唱法參數(shù)名稱(支持同時重錄多個參數(shù))、需要重錄的片段位置(支持不同參數(shù)重錄不同位置)、非重錄部分的對應(yīng)唱法參數(shù)。重錄唱法參數(shù)時,將根據(jù)給定條件重新生成每個參數(shù)對應(yīng)區(qū)間的曲線。

參數(shù)耦合機制

總體耦合邏輯

唱法模型的總體耦合順序為:曲譜信息 => 音素時長 => 音高 => 其他唱法參數(shù)。

自定義唱法耦合

借助局部重錄機制,除音高外的其他唱法參數(shù)可在每次推理時靈活自定義耦合順序。以下為使用場景示例:

  • 聯(lián)合預(yù)測參數(shù) A、參數(shù) B 與參數(shù) C,三者一次性生成,但彼此無耦合關(guān)系,修改其中一種參數(shù)不會影響另外兩種參數(shù);

  • 使參數(shù) C 耦合于參數(shù) A 與 B,即先一次性生成參數(shù) A 與 B,再根據(jù)前置條件與參數(shù) A、B 匹配預(yù)測參數(shù) C,對參數(shù) A 與 B 進行修改后參數(shù) C 將隨之改變,但參數(shù) A 與 B 互不影響;

  • 凍結(jié)參數(shù) A,使得參數(shù) B 與 C 互相耦合,根據(jù)前置條件與參數(shù) A 自動預(yù)測匹配參數(shù) B 與 C,修改 B、C 中任意一種參數(shù)后,另一種參數(shù)將隨之改變。

通用詞典與音素系統(tǒng)支持

全新的唱法模型與音素標(biāo)注方案支持任意詞典與音素系統(tǒng)(包括兩段式與任意多段式)。具體請查看唱法標(biāo)注遷移指南 (https://github.com/openvpi/MakeDiffSinger/tree/main/variance-temp-solution)?與自定義詞典說明?(https://github.com/openvpi/DiffSinger/blob/main/docs/BestPractices.md#using-custom-dictionaries)。

混合精度、多 GPU 與梯度累積

項目已適配最新版本的 Lightning 框架,并新增了對混合精度(FP16、BF16 AMP)、多 GPU 訓(xùn)練(DDP)、梯度累積的支持,可提速訓(xùn)練過程或節(jié)省顯存。詳情請見性能調(diào)優(yōu)說明 (https://github.com/openvpi/DiffSinger/blob/main/docs/BestPractices.md#performance-tuning)。

其他新增內(nèi)容與調(diào)整

  • 項目的文檔已進行重構(gòu),在 README 中進行了羅列,并為重要參考鏈接添加了指引。

  • 代碼結(jié)構(gòu)與依賴項進行了大幅重構(gòu)和化簡,對部分依賴進行了更新。

  • 預(yù)處理、訓(xùn)練、推理與導(dǎo)出的腳本已重構(gòu)并統(tǒng)一移至 scripts/ 目錄下。

  • 新增一個可從模型權(quán)重文件中刪除特定說話人標(biāo)簽的腳本(drop_spk.py)。

  • 從命令行執(zhí)行預(yù)處理與訓(xùn)練時,不再需要設(shè)置 PYTHONPATH?與 CUDA_VISIBLE_DEVICES

  • 現(xiàn)可通過 spk_ids?配置項自定義控制每個數(shù)據(jù)集分配到的說話人 ID,并支持為多個數(shù)據(jù)集賦予相同的說話人 ID。

  • 支持了多進程加速預(yù)處理,并可自定義進程數(shù)量。

  • 數(shù)據(jù)集二進制格式已更改為 HDF5,并移除了冗余內(nèi)容。

  • 學(xué)習(xí)率與優(yōu)化器現(xiàn)可通過 lr_scheduler_args?與 optimizer_args?進行更靈活的自定義。

  • 新增 DDIM、DPM-Solver++(替代 DPM-Solver)、UniPC 擴散加速算法支持。

  • ONNX 模型中集成的擴散加速算法已更改為 DDIM。

  • 導(dǎo)出 ONNX 多說話人模型時,若不指定 --export_spk?參數(shù),將默認(rèn)導(dǎo)出所有說話人。

  • ONNX 模型算子版本號已升級至 15。

部分更改可能未列出,具體請查閱倉庫 README。

錯誤修復(fù)

  • 修復(fù)了訓(xùn)練時終端輸出的 epoch 數(shù)僅為實際 epoch 數(shù)的 1/1000 的問題。

  • 修復(fù)了讀取數(shù)據(jù)集時可能存在的文件句柄爭用。

  • 修復(fù)了聯(lián)合數(shù)據(jù)增強實現(xiàn)結(jié)果與公式不一致的問題。

  • 修復(fù)了部分終端無法渲染超參顏色的問題。

  • 修復(fù)了訓(xùn)練時代碼備份目錄結(jié)構(gòu)錯亂的問題。

許可證

本項目的許可證由 MIT 許可證更改為 Apache 2.0 許可證。

特別鳴謝

  • 感謝由 AutoDL 算力云 (https://www.autodl.com/)?免費提供的實驗計算資源。

  • 感謝由河南冰月凜文化傳媒有限公司贊助的 GPU 租賃費用。


DiffSinger(OpenVPI 維護版)v2.0.0 更新日志的評論 (共 條)

分享到微博請遵守國家法律
巩义市| 廊坊市| 石台县| 漳平市| 绵阳市| 张家川| 当雄县| 新丰县| 雅安市| 固原市| 淮阳县| 界首市| 顺义区| 乌海市| 延边| 台北县| 临漳县| 三亚市| 滨州市| 伊金霍洛旗| 林芝县| 攀枝花市| 丰宁| 百色市| 上蔡县| 枣强县| 双流县| 罗源县| 当雄县| 新沂市| 恩平市| 深泽县| 光泽县| 鄂托克旗| 汤阴县| 达州市| 堆龙德庆县| 名山县| 宝鸡市| 台中市| 巩留县|