改革者的改編:文本到語音任務的有效變壓器。
該項目包含:
我們的目的是通過在最新的《改革儀論文》中提出的優化替換其變壓器體系結構來創建最先進的文本到語音模型的效率更高版本。我們將根據其演講的自定義數據集(專門為此目的創建)來生成令人信服的唐納德·特朗普(Donald Trump)。
不幸的是,在2個月內實驗了100多個高參數組合後,我們無法產生與Transferer TTS紙的結果相匹配的結果。我們認為,模型大小是這裡的重要因素,並且要訓練TTS的變壓器,真正需要減少過度擬合以允許長時間,穩定的訓練過程(在RTX 2080TI上進行了約1週的培訓)。
同樣,訪問變壓器TT的原始實現將有很大幫助。
儘管改革者不符合我們的期望,但Squeezewave實施與沒有FP16支持的原始性能相匹配。
我們還包括用於運行培訓和推理的CLI(請參閱使用情況部分),以及實驗複製所需的所有數據(請參閱開發部分)。
該項目在重大的重構之下,此版本在這裡留在這裡,以允許與我們以前的經驗兼容,並將在不久的將來移動。
該項目是一個普通的Python軟件包,只要您擁有Python 3.8或更高,就可以使用pip安裝。
轉到發布頁面以查找最新版本的安裝說明。
安裝後,您可以通過運行來查看可用命令:
python -m reformer_tts.cli --help所有命令均使用CLI執行,例如:
python -m reformer_tts.cli train-vocoder大多數參數(尤其是所有訓練超級參數)是通過--config參數到cli (在您要運行的命令之前進行的),例如:
python -m reformer_tts.cli -c /path/to/your/config.yml train-vocoder默認值可以在reformer_tts.config.Config (及其字段)中找到。
多虧了Conda-Forge社區,我們可以使用一個命令安裝所有軟件包(包括ffmpeg等必要的二進製文件)。
conda env create -f environment.ymlPython>=3.8 : which python
python --versionpip install -r requirements.txt確保您已安裝ffmpeg>=3.4,<4.0 (安裝說明)
對於培訓,請確保您安裝了CUDA和GPU司機(有關詳細信息,請參閱Pytorch網站上的說明)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-credentials.json注意:如果您只需要讀取Acces(用於繁殖),則無需執行步驟1
dvc pull為此,您可以運行項目測試:
python -m pytest --pyargs reformer_tts所有測試均應在CPU和GPU上使用,並且可能需要一分鐘才能完成。
請記住將--pyargs reformer_tts傳遞到Pytest,否則它將搜索數據目錄進行測試
Python>=3.8requirements.txt中environment.ymlreformer_tts/cli.py ,運行python reformer_tts/cli.py --help用於詳細參考配置在數據級結構中組織:
config.py ,其中定義了參數和默認值 - 例如,deataset config參數是在reformer_tts.dataset.config中指定的。reformer_tts.config.Config類包含所有subpodules的配置設置這樣,將默認值設置為靠近使用的位置,任何配置值都可以在您想要的任何地方覆蓋
更改運行時配置
python reformer_tts/cli.py save-config -o config/custom.yml或手動複製config/ Directory中現有配置文件之一,自動使用默認值生成默認值的配置。-c選項運行CLI腳本python reformer_tts/cli.py -c config/custom.yml [COMMAND]指定您的配置為新模塊添加配置
config.pydataset和squeezewave模塊的同一位置)reformer_tts.config Main Config類中添加Dataclass的字段我們使用DVC定義數據處理管道。遙控器是在Google Cloud Storage上設置的,有關詳細信息運行dvc config list 。
準備運行的節點:
/scidatalg中配置數據集路徑在運行之前:
進行培訓:
srun --qos=gsn --partition=common --nodelist=<name_of_chosen_node> --pty /bin/bash登錄到選擇節點/scidatalg/reformer-tts/reformer-tts/確保將存儲庫拔出並在適當的分支機構上jobs/train_entropy.sbatch填充節點名稱和培訓命令sbatch your/job/script/location.sbatch專業提示watch -n 1 squeue -u your_username要注意您的作業是否已經在運行PRO TIP2您可以通過運行tail -f file.log或less --follow-name +F file.log觀看對日誌的更新。
從DVC拉jobs/entropy_dvc_pull.sbatch 。
由於 /scidatasm目錄在我們想訓練時不同步,因此我們必須手動在每個節點上設置訓練。在新節點上設置ENV遵循此啟動:
注意:此腳本僅支持具有 /scidatalg的節點。這些節點是:asusgpu4,asusgpu3,asusgpu2,asusgpu1,asslvester,sylvester
srun --qos=gsn --partition=common --nodelist=<name_of_chosen_node> --pty /bin/bash登錄到節點${HOME}/gcp-cred.json (使用您喜歡的編輯器)scripts/setup_entropy_node.sh的內容複製到家庭dir中的新文件(再次使用編輯器)