改革者的改编:文本到语音任务的有效变压器。
该项目包含:
我们的目的是通过在最新的《改革仪论文》中提出的优化替换其变压器体系结构来创建最先进的文本到语音模型的效率更高版本。我们将根据其演讲的自定义数据集(专门为此目的创建)来生成令人信服的唐纳德·特朗普(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中的新文件(再次使用编辑器)