{"id":19809628,"url":"https://github.com/openvpi/singingvocoders","last_synced_at":"2025-04-05T22:04:05.135Z","repository":{"id":208265198,"uuid":"706199151","full_name":"openvpi/SingingVocoders","owner":"openvpi","description":"A collection of neural vocoders suitable for singing voice synthesis tasks.","archived":false,"fork":false,"pushed_at":"2025-03-22T17:31:04.000Z","size":260,"stargazers_count":116,"open_issues_count":5,"forks_count":12,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T21:02:53.402Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openvpi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-17T13:45:09.000Z","updated_at":"2025-03-28T09:54:13.000Z","dependencies_parsed_at":"2024-08-17T17:30:45.025Z","dependency_job_id":"0900f6e9-7e1b-4821-b2b5-7bf1710729a2","html_url":"https://github.com/openvpi/SingingVocoders","commit_stats":null,"previous_names":["openvpi/singingvocoders"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openvpi%2FSingingVocoders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openvpi%2FSingingVocoders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openvpi%2FSingingVocoders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openvpi%2FSingingVocoders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openvpi","download_url":"https://codeload.github.com/openvpi/SingingVocoders/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406085,"owners_count":20933803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T09:17:34.415Z","updated_at":"2025-04-05T22:04:05.113Z","avatar_url":"https://github.com/openvpi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SingingVocoders\nA collection of neural vocoders suitable for singing voice synthesis tasks.\n\n# English version [README_en.md](README_en.md)\n## If you have any questions, please open an issue.\n\n\n# 预处理 \npython [process.py](process.py) --config 配置文件 --num_cpu 并行数量 --strx 1 代表 强制绝对路径 0 代表相对路径\n\n和预处理有关的配置文件项\n```yaml\nDataIndexPath: dataX11 # 这个是训练数据 index 的位置预处理会自动生成\n\nvalid_set_name: validX # 这个是val index 的名字预处理会自动生成\n\ntrain_set_name: trainX # 这个是训练的 index 的名字预处理会自动生成\n\ndata_input_path: [] # 这个是你的 wav 的输入目录\n\ndata_out_path: [] # 这个是你的 npz 的输出目录, 预处理之后的格式是 npz\n\nval_num: 10 # 这个是你要的 val 数量 \n```\n\n例子\n```yaml\ndata_input_path: ['wav/in1','wav/in2'] # 这个是你的wav的输入目录\n\ndata_out_path: ['wav/out1','wav/out2'] # 这个是你的npz的输出目录\nval_num: 5 # 这个是你要的 val 数量，预处理的时候会自动抽取文件\n# 两个列表里面的路径是一一对应的所以说数量要一样\n# 然后预处理的时候会扫描全部的 .wav 和 .flac 文件，包括子文件夹的\n# 正常情况下只有这三个要改\n```\n# 在线数据增强（推荐）\n增加配置项\n```yaml\nkey_aug: true # 表示在训练时进行增强\nkey_aug_prob: 0.5 # 增强概率\naug_min: 0.9 # 最小变调倍数\naug_max: 1.4 # 最大变调倍数\n```\n注意数据增强可能会损伤音质！\n# 训练\n```sh\npython [train.py](train.py) --config 配置文件 --exp_name ckpt名字 --work_dir 工作目录（可选）\n```\n\n# 导出\n```sh\npython [export_ckpt.py](export_ckpt.py) --ckpt_path ckpt路径  --save_path 导出的ckpt路径 --work_dir 工作目录（可选） \n```\n\n# 注意\n\n因为 pytorch-lightning 的问题所以说在 GAN 训练过程中实际的步数是它显示步数的一半\n\n如果你需要微调社区声码器请使用[ft_hifigan.yaml](configs/ft_hifigan.yaml) 配置文件，并用 'finetune_ckpt_path' 选项指定权重路径\n\n如何使用微调功能建议参考 openvpi/diffsinger [项目文档](https://github.com/openvpi/DiffSinger/blob/main/docs/BestPractices.md#fine-tuning-and-parameter-freezing)\n\n少量步数的微调可以冻结 mpd 模块\n\n建议不要用 bf16 可能会产生音质问题\n\n少量数据差不多 2000 步就可以微调完成\n\n# 快速开始\n\n## 预处理\n以下是你需要根据自己的数据集修改的配置项\n```yaml\ndata_input_path: [] # 这个列表 是你原始wav文件的路径\ndata_out_path: [] # 此列表 预处理输出的npz文件的路径\nval_num: 10 # 这个是在验证的时候 抽取的音频文件数量\n```\n然后执行预处理\n```sh\npython process.py --config (your config path) --num_cpu (Number of cpu threads used in preprocessing)  --strx (1 for a forced absolute path 0 for a relative path)\n```\n## 训练\n根据自己的显卡修改配置项\n（默认开启mini_nsf和pc_aug，特殊需要请自行关闭并修改配置文件，此处不作推荐）\n\n以下是24G显卡推荐配置（默认设定无需修改）\n```yaml\ncrop_mel_frames: 48\nbatch_size: 10\npc_aug_rate: 0.5\n```\n以下是16G显卡推荐配置（需手动编辑或添加配置）\n```yaml\ncrop_mel_frames: 32\nbatch_size: 10\npc_aug_rate: 0.4\n```\n训练命令\n```sh\npython train.py --config (your config path) --exp_name (your ckpt name) --work_dir Working catalogue (optional)\n```\n测试中的配置项\n```yaml\nuse_stftloss: false # 是否启用stft loss\nlab_aux_melloss: 45\nlab_aux_stftloss: 2.5 # 两种loss的混合控制\n```\n如果有其他需要可以修改 stftloss 的其他相关参数\n## 导出\n```sh\npython export_ckpt.py --ckpt_path (your ckpt path)  --save_path (output ckpt path) --work_dir Working catalogue (optional)\n```\n# 注意事项\n实际步数是显示的一半\n\n微调 nsf-hifigan 声码器请下载并解压 [releases](https://github.com/openvpi/SingingVocoders/releases) 中的权重，并将 [ft_hifigan.yaml](configs/ft_hifigan.yaml) 中的 'finetune_ckpt_path' 选项改为权重路径\n\n微调请使用 44100 Hz 采样率音频，并不要修改其他 mel 参数，除非你明确知道你在做什么\n\n微调的其他功能使用请参考 openvpi/DiffSinger [项目文档](https://github.com/openvpi/DiffSinger/blob/main/docs/BestPractices.md#fine-tuning-and-parameter-freezing)\n\n导出的权重可以在 [DDSP-SVC](https://github.com/yxlllc/DDSP-SVC), [Diffusion-SVC](https://github.com/CNChTu/Diffusion-SVC), [so-vits-svc](https://github.com/svc-develop-team/so-vits-svc) 和 [DiffSinger (openvpi)](https://github.com/openvpi/DiffSinger) 等项目中使用\n\n如果要进一步导出成在 [OpenUtau](https://github.com/stakira/OpenUtau) 中使用的 onnx 格式权重，请使用 [这个](https://github.com/openvpi/DiffSinger/blob/main/scripts/export.py) 脚本\n\n配置文件中配置项的继承关系为: [base.yaml](configs/base.yaml) -\u003e [base_hifi.yaml](configs/base_hifi.yaml) -\u003e [ft_hifigan.yaml](configs/ft_hifigan.yaml)\n\n不要使用bf16训练模型, 它可能导致音质问题\n\n2000 步左右即可微调完成 (显示的是4000步)\n\n冻结 mpd 模块可能可以有更好的结果\n\n# 其它模型\n[HiFivae.yaml](configs/HiFivae.yaml)hifivae.yaml 训练vae模型\n\n[base_hifi_chroma.yaml](configs/base_hifi_chroma.yaml) 训练忽略8度nsf hifigan\n\n[base_hifi.yaml](configs/base_hifi.yaml) 训练nsf hifigan\n\n[base_ddspgan.yaml](configs/base_ddspgan.yaml) 训练带鉴别器的ddsp模型\n\n[ddsp_univnet.yaml](configs/ddsp_univnet.yaml) 训练ddsp 混合univnet模型\n\n[nsf_univnet.yaml](configs/nsf_univnet.yaml) 训练带nsf的univnet（推荐）\n\n[univnet.yaml](configs/univnet.yaml) 训练原版univnet\n\n[lvc_base_ddspgan.yaml](configs/lvc_base_ddspgan.yaml) 训练使用lvc滤波器的 ddsp模型\n\n# 特别声明\n\n我们遗憾地公示一份经核实的《不友好行为备案清单》（下附）。该名单记录了长期对开发团队实施破坏性行径的个人/实体。\n我们郑重声明：\n\n1. 强烈建议所有使用者在下载和使用此声码器前阅读本备案清单\n2. 当前未对名单主体施加任何技术或法律层面的使用限制，因为声码器仍基于 CC BY-NC-SA 4.0 许可\n3. 若持续发生恶意行为，保留进一步施加限制的权利\n\n## 不友好行为备案清单\n\n|        名称        | 标识                                                                     | 原因                                                             |\n|:----------------:|:-----------------------------------------------------------------------|:---------------------------------------------------------------|\n| 旋转_turning_point | QQ：2673587414；\u003cbr/\u003eBilibili UID：285801087；\u003cbr/\u003eDiscord 用户名：colstone233 | 长期对开发者进行敌对和人身攻击，反复传播关于 DiffSinger 和开发团队的虚假信息，干扰声码器及其他社区项目的开发进程 |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvpi%2Fsingingvocoders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenvpi%2Fsingingvocoders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvpi%2Fsingingvocoders/lists"}