Amphion Vocoder 全流程实战指南:从 HiFi-GAN 到 DiffWave 的训练与推理
发布时间:2026/10/2 8:14:07来源:尧图网络
音频语音媒体生成深度学习【免费下载链接】AmphionAmphion (/æmˈfaɪən/) is a toolkit for Audio, Music, and Speech Generation. Its purpose is to support reproducible research and help junior researchers and engineers get started in the field of audio, music, and speech generation research and development.项目地址https://gitcode.com/GitHub_Trending/am/Amphion点击查看免费下载导读本文以 egs/vocoder/README.md 为骨架系统讲解 Amphion 神经声码器Neural Vocoder体系它如何用 GAN、Flow、Diffusion、自回归等四类架构将梅尔频谱等声学表征重建成可听波形并给出从数据准备、特征提取到训练、推理的完整四步配方Recipe。读完本文你将掌握 Amphion 统一 Vocoder 配方的调用方式、GAN 与 Diffusion 两类已落地配方的关键配置含义以及 GAN 家族中官方实现的 MS-SB-CQTD多尺度子带常数 Q 变换判别器HiFi-GAN 高保真声码器的实战用法。一、Vocoder 在 Amphion 中的定位与支持模型总览声码器Vocoder负责从声学表征生成可听波形是当前音频生成系统TTS、SVC、VC的关键一环。Amphion 按架构类型对声码器做了统一封装每一类都提供独立的 Recipe 目录与配置模板类型已支持模型仓库配方目录状态GAN-basedMelGAN、HiFi-GAN、NSF-HiFiGAN、BigVGAN、APNetegs/vocoder/gan/✅ 提供统一 RecipeDiffusion-basedDiffWave训练/推理策略为 DDPMegs/vocoder/diffusion/✅ 提供统一 RecipeFlow-basedWaveGlow开发中⏳Auto-regressiveWaveNet、WaveRNN开发中⏳其中 GAN 家族各模型的独立示例位于 egs/vocoder/gan/ 下的apnet、bigvgan、hifigan、melgan、nsfhifigan、tfr_enhanced_hifigan等目录每个目录内含exp_config.json与run.shDiffusion 家族的 DiffWave 示例位于 egs/vocoder/diffusion/diffwave/。无论是哪类架构Amphion 都遵循同一条四阶段流水线你可以在任意架构上搭配任意数据集数据准备Data Preparation特征提取Feature Extraction训练Training推理Inference注意所有 Recipe 命令都必须在Amphion仓库根目录下执行即先cd Amphion再运行后续命令。二、GAN 声码器统一配方生成器 × 多判别器的对抗训练GAN 声码器由生成器与多个判别器构成其整体架构如下2.1 已支持的生成器与判别器生成器方面Amphion 已实现 MelGAN、HiFi-GAN、NSF-HiFiGAN、BigVGAN、APNet 五种对应源码分别位于 models/vocoders/gan/generator/ 下的melgan.py、hifigan.py、nsfhifigan.py、bigvgan.py、apnet.py。从源码结构看每个生成器都实现了__init__、forward与remove_weight_norm等标准接口方便在推理时移除权重归一化。判别器方面Amphion 支持五种对应源码位于 models/vocoders/gan/discriminator/Multi-Scale DiscriminatorMSDmsd.pyMulti-Period DiscriminatorMPDmpd.pyMulti-Resolution DiscriminatorMRDmrd.pyMulti-Scale Short-Time Fourier Transform DiscriminatorMS-STFTDmsstftd.pyMulti-Scale Sub-Band Constant-Q Transform DiscriminatorMS-SB-CQTDAmphion 原创mssbcqtd.py判别器可以按需任意组合。以 egs/vocoder/gan/exp_config_base.json 为例model: { discriminators: [ msd, mpd, msstftd, mssbcqtd ], mpd: { mpd_reshapes: [2, 3, 5, 7, 11], use_spectral_norm: false, discriminator_channel_mult_factor: 1 }, mssbcqtd: { hop_lengths: [512, 256, 256], filters: 32, max_filters: 1024, filters_scale: 1, dilations: [1, 2, 4], in_channels: 1, out_channels: 1, n_octaves: [9, 9, 9], bins_per_octaves: [24, 36, 48] } }其中mpd_reshapes决定 MPD 将 1D 波形重塑为 2D 时使用的周期因子use_spectral_norm控制判别器是否施加谱归一化MS-SB-CQTD 的hop_lengths对应多个时间分辨率的跳窗长度n_octaves与bins_per_octaves分别控制 CQT 的倍频程数与每倍频程频带数dilations则控制卷积感受野的膨胀系数。2.2 第一步数据准备在exp_config_base.json中指定dataset列表与每个数据集的dataset_path。Amphion 支持的开源数据集清单见 egs/datasets/README.md包括 csd、kising、m4singer、nus48e、opencpop、opensinger、opera、pjs、popbutfy、popcs、ljspeech、vctk、libritts 等dataset: [ csd, kising, m4singer, nus48e, opencpop, opensinger, opera, pjs, popbutfy, popcs, ljspeech, vctk, libritts ], dataset_path: { // TODO: 填入你的数据集路径 csd: [dataset path], kising: [dataset path], m4singer: [dataset path], nus48e: [dataset path], opencpop: [dataset path], opensinger: [dataset path], opera: [dataset path], pjs: [dataset path], popbutfy: [dataset path], popcs: [dataset path], ljspeech: [dataset path], vctk: [dataset path], libritts: [dataset path] }dataset_path中未被启用的数据集可以留空训练时只会加载dataset列表中列出的项。2.3 第二步特征提取声码器所需特征由各模型目录内部决定通常无需额外修改配置。只需在exp_config_base.json中指定输出日志目录与处理后的数据目录// TODO: 填入输出日志路径默认值为 Amphion/ckpts/vocoder log_dir: ckpts/vocoder, preprocess: { // TODO: 填入输出数据路径默认值为 Amphion/data processed_dir: data, extract_mel: true, extract_audio: true, extract_pitch: false, extract_uv: false, use_mel: true, use_audio: true, n_mel: 100, sample_rate: 24000 }extract_*开关控制“是否提取该声学特征”use_*开关控制“该特征是否参与模型训练”。GAN 声码器默认只使用梅尔谱n_mel: 100采样率24000Hz与原始音频若使用 NSF-HiFiGAN 这类基频条件模型则需要开启 pitch 相关开关。以预处理阶段运行 Recipe--stage 1sh egs/vocoder/gan/{vocoder_name}/run.sh --stage 1注意CUDA_VISIBLE_DEVICES默认设置为0可通过--gpu 1等参数在运行run.sh时修改。从 egs/vocoder/gan/_template/run.sh 可以看到--stage 1实际调用的是bins/vocoder/preprocess.pyCUDA_VISIBLE_DEVICES$gpu python ${work_dir}/bins/vocoder/preprocess.py \ --config $exp_config \ --num_workers 82.4 第三步训练默认超参数在exp_config_base.json中给出可在单张 NVIDIA 24GB 显存 GPU 上运行也可按需调整train: { batch_size: 32, max_epoch: 1000000, save_checkpoint_stride: [20], adamw: { lr: 2.0e-4, adam_b1: 0.8, adam_b2: 0.99 }, exponential_lr: { lr_decay: 0.999 } }batch_size单卡批大小可结合显存调整max_epoch最大训练轮数默认极大值实际训练时长由显存与数据量决定并配合save_checkpoint_stride按间隔保存 checkpointadamwAdamW 优化器参数学习率2.0e-4动量系数b10.8、b20.99exponential_lr指数衰减调度每个 step 学习率乘以0.999。运行训练阶段--stage 2并指定实验名sh egs/vocoder/gan/{vocoder_name}/run.sh --stage 2 --name [YourExptName]TensorBoard 日志与 checkpoints 会保存到Amphion/ckpts/vocoder/[YourExptName]目录。底层调用链见 bins/vocoder/train.py由run.sh通过accelerate launch拉起。如需从预训练模型恢复或微调使用resume_type与checkpoint参数sh egs/vocoder/gan/{vocoder_name}/run.sh --stage 2 \ --name [YourExptName] \ --resume_type [resume 为恢复全部训练状态finetune 为仅加载模型权重] \ --checkpoint Amphion/ckpts/vocoder/[YourExptName]/checkpoint注意多 GPU 训练时main_process_port默认值为29500可通过--main_process_port 29501修改避免端口冲突也可用--gpu 0,1,2,3指定多卡。2.5 第四步推理推理阶段--stage 3提供三种模式infer_from_dataset、infer_from_feature、infer_from_audio。统一入口为sh egs/vocoder/gan/{vocoder_name}/run.sh --stage 3 \ --infer_mode [Your chosen inference mode] \ --infer_datasets [Datasets you want to inference, needed when infer_from_dataset] \ --infer_feature_dir [Your path to your predicted acoustic features, needed when infer_from_feature] \ --infer_audio_dir [Your path to your audio files, needed when infer_from_audio] \ --infer_expt_dir Amphion/ckpts/vocoder/[YourExptName] \ --infer_output_dir Amphion/ckpts/vocoder/[YourExptName]/result三种模式的差异如下a. 从数据集推理直接使用--infer_datasets libritts vctk ljspeech指定数据集适合在训练集/测试集上批量合成评测音频。b. 从特征推理将待合成的声学特征按如下目录结构存放适用于将 TTS 模型预测的梅尔谱送入声码器┣ {infer_feature_dir} ┃ ┣ mels ┃ ┃ ┣ sample1.npy ┃ ┃ ┣ sample2.npy ┃ ┣ f0s ┃ ┃ ┣ sample1.npy ┃ ┃ ┣ sample2.npy其中f0s仅在选用 NSF-HiFiGAN 时需要。命令示例sh egs/vocoder/gan/{vocoder_name}/run.sh --stage 3 \ --infer_mode infer_from_feature \ --infer_feature_dir [Your path to your predicted acoustic features] \ --infer_expt_dir Amphion/ckpts/vocoder/[YourExptName] \ --infer_output_dir Amphion/ckpts/vocoder/[YourExptName]/resultc. 从音频推理用于快速的分析-合成analysis-synthesis验证将 wav 放入如下结构后执行┣ audios ┃ ┣ sample1.wav ┃ ┣ sample2.wavsh egs/vocoder/gan/{vocoder_name}/run.sh --stage 3 \ --infer_mode infer_from_audio \ --infer_audio_dir [Your path to your audio files] \ --infer_expt_dir Amphion/ckpts/vocoder/[YourExptName] \ --infer_output_dir Amphion/ckpts/vocoder/[YourExptName]/result从 egs/vocoder/gan/_template/run.sh 可知三种模式最终都调用 bins/vocoder/inference.py仅传入参数不同infer_from_dataset传--infer_datasetsinfer_from_feature传--feature_folderinfer_from_audio传--audio_folder--infer_output_dir缺省时默认为$infer_expt_dir/result。三、新手配方MS-SB-CQTD 增强 HiFi-GAN官方论文实现egs/vocoder/gan/tfr_enhanced_hifigan/README.md 是官方提供的新手入门配方beginner recipe用于在 LibriTTS、VCTK、LJSpeech 三个数据集上训练高质量的 HiFi-GAN 声码器。它是论文Multi-Scale Sub-Band Constant-Q Transform Discriminator for High-Fidelity VocoderarXiv:2311.14957的官方实现即通过组合多种基于时频表征的判别器TFR-based Discriminators来提升 HiFi-GAN 的重建保真度3.1 配置要点tfr_enhanced_hifigan该配方的配置文件为 egs/vocoder/gan/tfr_enhanced_hifigan/exp_config.json它继承egs/vocoder/gan/exp_config_base.json并做以下关键设置数据集仅启用ljspeech、vctk、libritts三个生成器选用hifigan并配置 HiFi-GAN 网络结构resblock: 1、上采样率[8, 4, 2, 2, 2]、上采样核[16, 8, 4, 4, 4]、初始通道768、ResBlock 核尺寸[3, 5, 7]、膨胀尺寸[[1,3,5],[1,3,5],[1,3,5]]同时启用msd、mpd、mssbcqtd、msstftd四个判别器MPD 的mpd_reshapes扩展为[2, 3, 5, 7, 11, 17, 23, 37]训练损失组合criterions为[feature, discriminator, generator, mel]即在标准 GAN 对抗损失之外还叠加了特征匹配损失feature与梅尔谱损失mel这也是高保真重建的关键推理阶段batch_size设为 1。3.2 预训练模型项目方使用约 685 小时语音数据训练了 HiFi-GAN checkpoint预训练权重说明见 pretrained/hifigan/README.md可直接用于推理或作为微调起点。3.3 运行四阶段该配方同样分为四个阶段命令与 GAN 统一配方一致仅替换脚本路径# 特征提取 sh egs/vocoder/gan/tfr_enhanced_hifigan/run.sh --stage 1 # 训练 sh egs/vocoder/gan/tfr_enhanced_hifigan/run.sh --stage 2 --name [YourExptName] # 恢复/微调 sh egs/vocoder/gan/tfr_enhanced_hifigan/run.sh --stage 2 \ --name [YourExptName] \ --resume_type [resume / finetune] \ --checkpoint Amphion/ckpts/vocoder/[YourExptName]/checkpoint # 推理三种模式 sh egs/vocoder/gan/tfr_enhanced_hifigan/run.sh --stage 3 \ --infer_mode infer_from_dataset \ --infer_datasets libritts vctk ljspeech \ --infer_expt_dir Amphion/ckpts/vocoder/[YourExptName] \ --infer_output_dir Amphion/ckpts/vocoder/[YourExptName]/result由于 HiFi-GAN 训练只需梅尔谱与输出音频特征提取阶段无需修改额外配置extract_pitch与extract_uv均为false。四、Diffusion 声码器配方DiffWave DDPMDiffusion 声码器利用扩散过程生成音频Amphion 目前支持 DiffWave 模型训练与推理策略采用 DDPMDiffWave 的配置位于 egs/vocoder/diffusion/diffwave/exp_config.json其模型部分如下model: { generator: diffwave, diffwave: { residual_channels: 64, residual_layers: 30, dilation_cycle_length: 10, noise_schedule_factors: [1.0e-4, 0.05, 50], inference_noise_schedule: [0.0001, 0.001, 0.01, 0.05, 0.2, 0.5], upsample_factors: [16, 16] } }residual_channels/residual_layers残差通道数与残差层数共同决定模型容量dilation_cycle_length膨胀率的循环长度10 层一组循环noise_schedule_factors训练噪声调度的构造因子[起始, 终止, 步数]inference_noise_schedule推理阶段的离散噪声调度直接决定采样步数与音质/速度权衡upsample_factors梅尔谱到波形的上采样倍数[16, 16]对应24000Hz / 16 / 16 ≈ 93.75帧率量级。Diffusion 配方的数据准备、特征提取、训练与推理步骤与 GAN 配方完全对应仅脚本路径与配置继承关系不同基础配置为 egs/vocoder/diffusion/exp_config_base.json模型类型为DiffusionVocoder命令示例sh egs/vocoder/diffusion/diffwave/run.sh --stage 1 # 特征提取 sh egs/vocoder/diffusion/diffwave/run.sh --stage 2 --name [YourExptName] # 训练 sh egs/vocoder/diffusion/diffwave/run.sh --stage 3 \ --infer_mode infer_from_audio \ --infer_audio_dir [Your path to your audio files] \ --infer_expt_dir Amphion/ckpts/vocoder/[YourExptName] \ --infer_output_dir Amphion/ckpts/vocoder/[YourExptName]/resultDiffusion 配方从特征推理时无需f0sDiffWave 不以基频为条件因此特征目录只需mels子目录。五、统一配置模板与底层入口所有 Vocoder Recipe 共享同一套命令参数解析逻辑模板见 egs/vocoder/gan/_template/run.sh支持通用参数--config实验配置文件缺省为脚本同目录的exp_config.json、--name实验名、--stage1/2/3、--gpu缺省0训练专用--checkpoint、--resume_typeresume恢复全部状态finetune仅加载权重、--main_process_port缺省29500推理专用--infer_mode、--infer_datasets、--infer_feature_dir、--infer_audio_dir、--infer_expt_dir、--infer_output_dir缺省为$infer_expt_dir/result。三个阶段对应的底层 Python 入口分别为bins/vocoder/preprocess.py--stage 1bins/vocoder/train.py--stage 2经accelerate launch启动bins/vocoder/inference.py--stage 3模型实现上公共基础配置 config/vocoder.json 定义了声学特征提取的默认参数如n_mel: 100、win_size: 1024、hop_size: 256、sample_rate: 24000、fmin: 0、fmax: 12000等与训练器通用设置随机种子114514、gradient_accumulation_step: 1、TensorBoard tracker 等各 Recipe 的exp_config_base.json通过base_config字段逐层继承实现“通用默认值 任务定制化”的配置体系。六、快速上手小结选择配方GAN 家族从 egs/vocoder/gan/ 选择模型目录新手建议tfr_enhanced_hifiganDiffusion 使用 egs/vocoder/diffusion/diffwave/。改配置在对应exp_config.json或exp_config_base.json中填入数据集路径、log_dir、processed_dir并按需调整dataset列表、判别器组合与训练超参。跑四步在仓库根目录依次执行--stage 1特征提取、--stage 2 --name [YourExptName]训练、--stage 3按需选择三种推理模式之一。复用与扩展判别器、生成器均为可插拔模块新增判别器只需在discriminators列表追加名称并补充对应配置段源码级实现可继续深入 models/vocoders/ 目录查阅。赞分享音频语音媒体生成深度学习【免费下载链接】AmphionAmphion (/æmˈfaɪən/) is a toolkit for Audio, Music, and Speech Generation. Its purpose is to support reproducible research and help junior researchers and engineers get started in the field of audio, music, and speech generation research and development.项目地址https://gitcode.com/GitHub_Trending/am/Amphion点击查看免费下载相关推荐JETS 在 Amphion 中的完整实践联合训练 FastSpeech2 与 HiFi-GAN 的端到端 TTS 训练与推理指南JETS 在 Amphion 中的完整实践联合训练 FastSpeech2 与 HiFi GAN 的端到端 TTS 训练与推理指南 本文以 Amphion 开音频语音媒体生成深度学习Amphion 扩散声码器Diffusion-based Vocoder实战指南基于 DiffWave 与 DDPM 从数据准备到推理的完整 RecipeAmphion 扩散声码器Diffusion based Vocoder实战指南基于 DiffWave 与 DDPM 从数据准备到推理的完整 Recipe音频语音媒体生成深度学习PaddleSpeech 实战指南基于 AISHELL-3 训练与推理 HiFiGAN 声码器GAN VocoderPaddleSpeech 实战指南基于 AISHELL 3 训练与推理 HiFiGAN 声码器GAN Vocoder 本指南以 PaddleSpeech人工智能语音音频NLP媒体生成上一篇如何在Blender中实现3MF文件无缝导入导出3D打印工作流完整教程下一篇RePKGWallpaper Engine壁纸资源终极解包指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网