Skip to content

Commit

Permalink
support for 44.1kHz
Browse files Browse the repository at this point in the history
  • Loading branch information
prophesier authored Dec 4, 2022
1 parent acc5c55 commit 18c43ae
Showing 1 changed file with 22 additions and 11 deletions.
33 changes: 22 additions & 11 deletions doc/train_and_inference.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pip install -r requirements_short.txt
>3. 根目录下有一份@三千整理的依赖列表requirements.png,是在某品牌云服务器上跑通的,不过此torch版本已不兼容目前版本代码,但是其他部分版本可以参考,十分感谢
## 1.推理
>使用根目录下的inference.ipynb进行推理或使用经过po主适配的@小狼的infer.py\
>使用根目录下的inference.ipynb进行推理或使用经过作者适配的@小狼的infer.py\
在第一个block中修改如下参数:
```
config_path='checkpoints压缩包中config.yaml的位置'
Expand Down Expand Up @@ -48,9 +48,10 @@ key=0
#变调参数,默认为0(不是1!!),将源音频的音高升高key个半音后合成,如男声转女生,可填入8或者12等(12就是升高一整个8度)
use_pe=True
#梅尔谱合成音频时使用的F0提取算法,如果改成False将使用源音频的F0
这里填True和False合成会略有差异,通常是True会好些,但也不尽然,对合成速度几乎无影响
(无论key填什么 这里都是可以自由选择的,不影响)
#梅尔谱合成音频时使用的F0提取算法,如果改成False将使用源音频的F0\
这里填True和False合成会略有差异,通常是True会好些,但也不尽然,对合成速度几乎无影响\
(无论key填什么 这里都是可以自由选择的,不影响)\
44.1kHz下不支持此功能,会自动关闭,开着也不报错就是了
use_gt_mel=False
#这个选项类似于AI画图的图生图功能,如果打开,产生的音频将是输入声音与目标说话人声音的混合,混合比例由下一个参数确定
Expand All @@ -59,7 +60,7 @@ use_gt_mel=False
add_noise_step=500
#与上个参数有关,控制两种声音的比例,填入1是完全的源声线,填入1000是完全的目标声线,能听出来是两者均等混合的数值大约在300附近(并不是线性的,另外这个参数如果调的很小,可以把pndm加速倍率调低,增加合成质量)
wav_gen='yyy.wav'#输出音频的路径,默认在项目根目录中
wav_gen='yyy.wav'#输出音频的路径,默认在项目根目录中,可通过改变扩展名更改保存文件类型
```
如果使用infer.py,修改方式类似,需要修改__name__=='__main__'中的部分,然后在根目录中执行\
python infer.py\
Expand All @@ -68,10 +69,10 @@ python infer.py\
### 2.1 准备数据
>目前支持wav格式和ogg格式的音频数据,采样率最好高于24kHz,程序会自动处理采样率和声道问题。采样率不可低于16kHz(一般不会的)\
音频需要切片为5-15s为宜的短音频,长度没有具体要求,但不宜过长过短。音频需要为纯目标人干声,不可以有背景音乐和其他人声音,最好也不要有过重的混响等。若经过去伴奏等处理,请尽量保证处理后的音频质量。\
目前仅支持单人训练,总时长尽量保证在5h或以上,不需要额外任何标注,将音频文件放在下述raw_data_dir下即可,这个目录下的结构可以自由定义,程序会自主找到所需文件。
目前仅支持单人训练,总时长尽量保证在3h或以上,不需要额外任何标注,将音频文件放在下述raw_data_dir下即可,这个目录下的结构可以自由定义,程序会自主找到所需文件。

### 2.2 修改超参数配置
>首先请备份一份config.yaml,然后修改它\
>首先请备份一份config.yaml(此文件对应24kHz声码器, 44.1kHz声码器请使用config_nsf.yaml),然后修改它\
可能会用到的参数如下(以工程名为nyaru为例):
```
K_step: 1000
Expand Down Expand Up @@ -122,19 +123,29 @@ pe_ckpt: checkpoints/0102_xiaoma_pe/model_ckpt_steps_60000.ckpt
raw_data_dir: data/raw/nyaru
#存放预处理前原始数据的位置,请将原始wav数据放在这个目录下,内部文件结构无所谓,会自动解构
residual_channels: 384
residual_layers: 20
#控制核心网络规模的一组参数,越大参数越多炼的越慢,但效果不一定会变好,大一点的数据集可以把第一个改成512。这个可以自行实验效果,不过不了解的话尽量不动。
speaker_id: nyaru
训练的说话人名字,目前只支持单说话人,请在这里填写
#训练的说话人名字,目前只支持单说话人,请在这里填写(只是观赏作用,没有实际意义的参数)
use_crepe: true
#在数据预处理中使用crepe提取F0,追求效果请打开,追求速度可以关闭
val_check_interval: 2000
每2000steps推理测试集并保存ckpt
#每2000steps推理测试集并保存ckpt
vocoder_ckpt:checkpoints/0109_hifigan_bigpopcs_hop128
#24kHz下为对应声码器的目录, 44.1kHz下为对应声码器的文件名, 注意不要填错
work_dir: checkpoints/nyaru
#修改后缀为工程名
#修改后缀为工程名(也可以删掉或完全留空自动生成,但别乱填)
no_fs2: true
#对网络encoder的精简,能缩减模型体积,加快训练,且并未发现有对网络表现损害的直接证据。默认打开
```
>其他的参数如果你不知道它是做什么的,请不要修改
>其他的参数如果你不知道它是做什么的,请不要修改,即使你看着名称可能以为你知道它是做什么的。
### 2.3 数据预处理
在diff-svc的目录下执行以下命令:\
Expand Down

0 comments on commit 18c43ae

Please sign in to comment.