人工智能语音音频【免费下载链接】PaddleSpeechEasy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSpeech点击查看免费下载导读本文基于 PaddleSpeech 仓库中的examples/csmsc/voc4示例完整讲解如何在中文标准普通话语音库 CSMSCBZNSYP上从零训练 Style MelGAN 声码器并利用训练好的生成器将梅尔频谱合成回波形。读者将掌握 CSMSC 数据集的预处理流程含 MFA 强制对齐切边、run.sh分阶段执行机制、train.py与synthesize.py的命令行参数用法以及 Style MelGAN 生成器/判别器网络结构与default.yaml中每一类配置项的底层含义最终能够独立复现训练与推理全流程。Style MelGAN 与 CSMSC示例概览examples/csmsc/voc4是 PaddleSpeech 中针对 CSMSC 数据集的 Style MelGAN 声码器示例。Style MelGAN 是一种基于 GAN 的神经网络声码器用于将声学模型输出的梅尔频谱mel spectrogram重建为高质量语音波形在 TTS 链路中位于声学模型之后、最终音频输出之前。该示例的目录结构如下examples/csmsc/voc4 ├── conf/default.yaml # Style MelGAN 训练与特征提取配置 ├── local/ │ ├── preprocess.sh # 数据预处理MFA 时长、特征提取、统计量、归一化 │ ├── train.sh # 模型训练入口 │ └── synthesize.sh # 波形合成入口 ├── path.sh # 环境变量与 BIN_DIR 设置 ├── run.sh # 一键流程编排脚本 └── README.md其中path.sh将BIN_DIR指向仓库内的模型实验代码目录MODELstyle_melgan export BIN_DIR${MAIN_ROOT}/paddlespeech/t2s/exps/gan_vocoder/${MODEL}也就是说示例最终调用的是 paddlespeech/t2s/exps/gan_vocoder/style_melgan/train.py网络结构定义位于 paddlespeech/t2s/models/melgan/style_melgan.py。数据集准备下载、解压与 MFA 对齐下载与解压 CSMSC首先从 CSMSC 官方页面下载中文标准普通话语音库并解压到~/datasets目录最终数据目录为~/datasets/BZNSYP。CSMSC 由北京数据堂DataBaker发布是 PaddleSpeech 中多个 TTS 示例tts0/tts3/vits/voc1/voc4/voc5 等共用的标准中文语音数据。使用 MFA 对齐结果裁剪音频边缘静音CSMSC 原始音频边缘可能存在静音段会干扰声码器训练。示例采用 Montreal Forced AlignerMFA的对齐结果来裁剪音频边缘的静音对齐结果放在当前目录下的baker_alignment_tone中。仓库内也提供了训练 MFA 模型的完整参考流程见 examples/other/mfa其中包含install_mfa_v1.sh、install_mfa_v2.sh等安装脚本与对应的数据准备步骤。若需要自行训练 MFA 模型可参照该示例生成带声调with tone的对齐结果。一键运行run.sh 与阶段控制在完成数据集准备后在examples/csmsc/voc4目录下执行./run.shrun.sh默认配置如下见 examples/csmsc/voc4/run.shgpus0,1默认使用 0、1 号 GPU 训练conf_pathconf/default.yaml默认配置文件train_output_pathexp/default训练输出目录ckpt_namesnapshot_iter_50000.pdz合成阶段默认加载的 checkpoint。脚本会依次执行三个阶段stage 0./local/preprocess.sh ${conf_path}完成数据预处理stage 1CUDA_VISIBLE_DEVICES${gpus} ./local/train.sh ${conf_path} ${train_output_path}训练模型checkpoint 保存在train_output_path/checkpoints/下stage 2CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize.sh ${conf_path} ${train_output_path} ${ckpt_name}从metadata.jsonl合成波形。run.sh支持通过--stage与--stop-stage控制要执行的阶段范围例如仅执行数据预处理./run.sh --stage 0 --stop-stage 0该机制依赖仓库公共脚本 utils/parse_options.sh 解析命令行选项。数据预处理从原始音频到归一化频谱预处理由./local/preprocess.sh ${conf_path}完成见 examples/csmsc/voc4/local/preprocess.sh内部包含 4 个子阶段阶段 0从 MFA 结果生成时长文件python3 ${MAIN_ROOT}/utils/gen_duration_from_textgrid.py \ --inputdir./baker_alignment_tone \ --outputdurations.txt \ --config${config_path}该脚本读取 MFA 输出的 TextGrid 对齐文件生成每个音频的时长信息durations.txt。阶段 1提取特征python3 ${BIN_DIR}/../preprocess.py \ --rootdir~/datasets/BZNSYP/ \ --datasetbaker \ --dumpdirdump \ --dur-filedurations.txt \ --config${config_path} \ --cut-silTrue \ --num-cpu20preprocess.py根据时长文件裁掉音频边缘静音--cut-silTrue并提取梅尔频谱等声码器训练所需特征输出到dump目录。所有 GAN 声码器pwgan、mb_melgan、style_melgan、hifigan共用同一个preprocess.py参见 paddlespeech/t2s/exps/gan_vocoder/README.md。阶段 2计算特征统计量python3 ${MAIN_ROOT}/utils/compute_statistics.py \ --metadatadump/train/raw/metadata.jsonl \ --field-namefeats仅基于训练集计算特征的均值与标准差保存为dump/train/feats_stats.npy。阶段 3归一化python3 ${BIN_DIR}/../normalize.py \ --metadatadump/train/raw/metadata.jsonl \ --dumpdirdump/train/norm \ --statsdump/train/feats_stats.npy \ --skip-wav-copydev与test集必须复用训练集的统计量--statsdump/train/feats_stats.npy以保证分布一致。训练、验证、测试三个集合的归一化分别写入dump/train/norm、dump/dev/norm、dump/test/norm。dump 目录结构预处理完成后当前目录下会生成如下结构的dump文件夹dump ├── dev │ ├── norm │ └── raw ├── test │ ├── norm │ └── raw └── train ├── norm ├── raw └── feats_stats.npy数据集被划分为train、dev、test三部分raw子目录存放每个语句的对数幅度梅尔频谱log magnitude mel spectrogramnorm子目录存放归一化后的频谱归一化使用的统计量由训练集计算而来即dump/train/feats_stats.npy每个子目录下都有一个metadata.jsonl表格文件记录每条语句的 id 与频谱文件路径。特征提取配置default.yaml 详解conf/default.yaml是该示例的核心配置见 examples/csmsc/voc4/conf/default.yaml其注释明确指出该配置基于 Style MelGAN 论文但使用 MSE 损失替代 Hinge 损失上采样尺度经过修改以匹配 300 点的帧移n_shift。以下分模块解读。特征提取设置FEATURE EXTRACTION SETTING参数值含义fs24000采样率Hzn_fft2048FFT 大小样本点n_shift300帧移样本点约 12.5mswin_length1200窗长样本点约 50ms若为 null 则与 fft 大小相同windowhann窗函数n_mels80梅尔滤波器数量fmin80梅尔滤波器最小频率Hzfmax7600梅尔滤波器最大频率Hz其中n_shift300直接决定了生成器的上采样总倍数prod(upsample_scales) n_shift也决定了每个 batch 音频样本的裁剪长度约束见下文。生成器网络结构GENERATOR NETWORK ARCHITECTURE SETTINGgenerator_params: in_channels: 128 # 输入噪声通道数 aux_channels: 80 # 辅助输入梅尔频谱通道数与 n_mels 一致 channels: 64 # 卷积层初始通道数 out_channels: 1 # 输出通道数 kernel_size: 9 # 首尾卷积核大小 dilation: 2 bias: True noise_upsample_scales: [10, 2, 2, 2] noise_upsample_activation: leakyrelu noise_upsample_activation_params: negative_slope: 0.2 upsample_scales: [5, 1, 5, 1, 3, 1, 2, 2, 1] # prod(upsample_scales) n_shift upsample_mode: nearest gated_function: softmax use_weight_norm: True对照源码 paddlespeech/t2s/models/melgan/style_melgan.py 中的StyleMelGANGenerator实现噪声先经过一系列Conv1DTranspose上采样层noise_upsample总上采样倍数为noise_upsample_factor prod(noise_upsample_scales) 10×2×2×2 80随后特征依次通过多个TADEResBlock时间自适应扩张残差块每个 block 负责一次upsample_scales指定的上采样总上采样倍数为upsample_factor prod(upsample_scales) 5×1×5×1×3×1×2×2×1 300恰好等于n_shift最后经过一层Conv1D Tanh输出波形每个 batch 的音频长度约束为batch_max_steps(24000) noise_upsample_factor(80) * upsample_factor(300)即噪声经过 80 倍上采样、再经 TADE 块 300 倍上采样后正好得到 24000 个样本点use_weight_norm: True时会对所有卷积层递归施加权重归一化apply_weight_norminference()方法支持从频谱直接生成波形根据频谱长度动态生成随机噪声noise_T ceil(T / noise_upsample_factor)上采样后用replicate填充对齐长度最后截断到精确的total_length。判别器网络结构DISCRIMINATOR NETWORK ARCHITECTURE SETTINGdiscriminator_params: repeats: 4 window_sizes: [512, 1024, 2048, 4096] pqmf_params: - [1, None, None, None] - [2, 62, 0.26700, 9.0] - [4, 62, 0.14200, 9.0] - [8, 62, 0.07949, 9.0] discriminator_params: out_channels: 1 kernel_sizes: [5, 3] channels: 16 max_downsample_channels: 512 bias: True downsample_scales: [4, 4, 4, 1] nonlinear_activation: leakyrelu nonlinear_activation_params: negative_slope: 0.2 use_weight_norm: True对照源码中的StyleMelGANDiscriminatorStyle MelGAN 的判别器由多个随机窗口判别器Random Window DiscriminatorRWD组成。每个 RWD 先通过一个 PQMF 滤波器组近完美重构伪正交镜像滤波器组实现见 paddlespeech/t2s/modules/pqmf.py将波形分解为不同子带然后在window_sizes指定的随机窗口内进行判别repeats: 4表示重复应用 4 次该结构。源码中对参数有一致性校验len(window_sizes) len(pqmf_params)且窗口大小除以 PQMF 子带数后需全部相等。底层的MelGANDiscriminator则复用 MelGAN 的判别器实现见 paddlespeech/t2s/models/melgan/melgan.py。损失函数设置STFT 损失多分辨率use_stft_loss: True stft_loss_params: fft_sizes: [1024, 2048, 512] hop_sizes: [120, 240, 50] win_lengths: [600, 1200, 240] window: hann lambda_aux: 1.0use_stft_loss: True启用多分辨率 STFT 损失作为辅助损失对应源码中MultiResolutionSTFTLosslambda_aux为其平衡系数。对抗损失lambda_adv: 1.0 generator_adv_loss_params: average_by_discriminators: False discriminator_adv_loss_params: average_by_discriminators: Falselambda_adv为对抗损失平衡系数average_by_discriminators控制是否按判别器数量取平均。值得注意的是配置注释说明该示例将论文中的 Hinge 损失替换为 MSE 损失。数据加载与训练调度batch_size: 32 batch_max_steps: 24000 num_workers: 2batch_max_steps: 24000表示每个 batch 音频的长度必须能被n_shift300整除配置注释提示batch_size 8或16也可正常工作如需加速训练可适当减小 batch size。源码中通过Clip(batch_max_stepsconfig.batch_max_steps, hop_sizeconfig.n_shift, ...)对每个 batch 的音频与频谱进行随机裁剪对齐见 paddlespeech/t2s/datasets/vocoder_batch_fn.py。优化器与学习率调度生成器generator_optimizer_params: beta1: 0.5 beta2: 0.9 weight_decay: 0.0 generator_scheduler_params: learning_rate: 1.0e-4 gamma: 0.5 milestones: [100000, 300000, 500000, 700000, 900000] generator_grad_norm: -1判别器discriminator_optimizer_params: beta1: 0.5 beta2: 0.9 weight_decay: 0.0 discriminator_scheduler_params: learning_rate: 2.0e-4 gamma: 0.5 milestones: [200000, 400000, 600000, 800000] discriminator_grad_norm: -1生成器与判别器均使用 Adam 优化器beta10.5, beta20.9学习率调度采用MultiStepDecay到达milestones中的步数时学习率乘以gamma。判别器学习率2.0e-4为生成器1.0e-4的两倍这符合 GAN 训练中判别器需要更快更新的常见实践。训练间隔设置discriminator_train_start_steps: 100000 # 训练前 10 万步只训练生成器 train_max_steps: 1500000 # 总训练步数 save_interval_steps: 5000 # 每 5000 步保存 checkpoint eval_interval_steps: 1000 # 每 1000 步评估一次discriminator_train_start_steps: 100000表示前 10 万步判别器不参与训练先用 STFT 辅助损失预热生成器train_max_steps: 1500000为总训练步数。其他设置num_snapshots: 10 # 最多保留的 snapshot 数 seed: 42 # paddle、random、np.random 的随机种子源码中seed_everything(config.seed)保证多进程训练时可复现见 paddlespeech/t2s/exps/gan_vocoder/style_melgan/train.py。模型训练train.py 用法训练由./local/train.sh ${conf_path} ${train_output_path}触发见 examples/csmsc/voc4/local/train.sh其核心命令为python ${BIN_DIR}/train.py \ --train-metadatadump/train/norm/metadata.jsonl \ --dev-metadatadump/dev/norm/metadata.jsonl \ --config${config_path} \ --output-dir${train_output_path} \ --ngpu1train.py的完整帮助信息usage: train.py [-h] [--config CONFIG] [--train-metadata TRAIN_METADATA] [--dev-metadata DEV_METADATA] [--output-dir OUTPUT_DIR] [--ngpu NGPU] Train a Style MelGAN model. optional arguments: -h, --help show this help message and exit --config CONFIG Style MelGAN config file. --train-metadata TRAIN_METADATA training data. --dev-metadata DEV_METADATA dev data. --output-dir OUTPUT_DIR output dir. --ngpu NGPU if ngpu 0, use cpu.各参数说明--configYAML 格式的配置文件用于覆盖默认配置即conf/default.yaml--train-metadata与--dev-metadata分别为dump目录中train/norm与dev/norm子目录下的metadata.jsonl注意必须是归一化后的 norm 数据--output-dir实验输出目录checkpoint 保存在其中的checkpoints/子目录下--ngpu使用的 GPU 数量若ngpu 0则使用 CPU。从源码看train.py会构建DataTable数据集字段为wave与feats均通过np.load加载使用DistributedBatchSampler与Clipcollate 函数构造 DataLoader并分别创建StyleMelGANGenerator、StyleMelGANDiscriminator、StyleMelGANUpdater、StyleMelGANEvaluator以及Trainer完成训练。训练框架还通过Snapshot扩展实现周期性快照保存通过VisualDL扩展输出可视化日志。波形合成synthesize.py 用法合成阶段由./local/synthesize.sh ${conf_path} ${train_output_path} ${ckpt_name}触发见 examples/csmsc/voc4/local/synthesize.shpython3 ${BIN_DIR}/../synthesize.py \ --config${config_path} \ --checkpoint${train_output_path}/checkpoints/${ckpt_name} \ --test-metadatadump/test/norm/metadata.jsonl \ --output-dir${train_output_path}/test \ --generator-typestyle_melgan./local/synthesize.sh调用的是${BIN_DIR}/../synthesize.py即公共合成脚本 paddlespeech/t2s/exps/gan_vocoder/synthesize.py它可以从metadata.jsonl合成波形。完整帮助信息usage: synthesize.py [-h] [--generator-type GENERATOR_TYPE] [--config CONFIG] [--checkpoint CHECKPOINT] [--test-metadata TEST_METADATA] [--output-dir OUTPUT_DIR] [--ngpu NGPU] Synthesize with GANVocoder. optional arguments: -h, --help show this help message and exit --generator-type GENERATOR_TYPE type of GANVocoder, should in {pwgan, mb_melgan, style_melgan, } now --config CONFIG GANVocoder config file. --checkpoint CHECKPOINT snapshot to load. --test-metadata TEST_METADATA dev data. --output-dir OUTPUT_DIR output dir. --ngpu NGPU if ngpu 0, use cpu.参数要点--generator-typeGAN 声码器类型当前支持{pwgan, mb_melgan, style_melgan, hifigan}本例必须为style_melgan。源码通过class_map将类型映射到对应生成器类style_melgan → StyleMelGANGenerator并断言输入必须在该映射内--configStyle MelGAN 配置文件必须与训练时使用同一份配置--checkpoint要加载的 checkpoint从训练输出目录checkpoints/中选择一个--test-metadata测试集的 metadata使用预处理目录中dev/normREADME 原文如此实际脚本传入的是dump/test/norm/metadata.jsonl下的metadata.jsonl--output-dir合成音频的保存目录--ngpuGPU 数量ngpu 0时使用 CPU。合成脚本从 checkpoint 恢复生成器权重后逐条读取测试 metadata 中的频谱调用StyleMelGANGenerator.inference()完成波形重建并借助soundfile写出音频文件。预训练模型与 checkpoint 结构示例提供了训练好的预训练模型可通过官方 CDN 下载style_melgan_csmsc_ckpt_0.1.1.zip。需要注意Style MelGAN 的静态静态图导出模型目前尚未提供。解压后的 checkpoint 目录结构如下hifigan_csmsc_ckpt_0.1.1 ├── default.yaml # 训练 style melgan 使用的默认配置 ├── feats_stats.npy # 训练时用于归一化频谱的统计量 └── snapshot_iter_1500000.pdz # style melgan 的生成器参数其中snapshot_iter_1500000.pdz对应train_max_steps: 1500000步训练完成的生成器参数feats_stats.npy与default.yaml可分别用于推理阶段的特征归一化与网络构建与上文 dump 目录及配置文件一一对应。与其他 GAN 声码器示例的关联examples/csmsc下还包含多个声码器示例voc1WaveFlow、voc3PWGAN、voc4Style MelGAN本文、voc5HiFiGAN、voc6等它们共享同一套数据处理脚本preprocess.py、normalize.py与合成脚本synthesize.py。如需对比不同声码器在 CSMSC 上的效果可以直接复用本示例的预处理产物仅需切换--generator-type与对应配置这体现了 PaddleSpeech GAN 声码器系列数据流程统一、模型可插拔的设计思路。复现要点小结数据准备CSMSC 解压至~/datasets/BZNSYPMFA 对齐结果置于./baker_alignment_tone预处理./run.sh --stage 0 --stop-stage 0生成dump目录raw/norm 频谱与feats_stats.npy训练./run.sh --stage 1 --stop-stage 1或手动执行CUDA_VISIBLE_DEVICES${gpus} ./local/train.sh conf/default.yaml exp/defaultcheckpoint 存于exp/default/checkpoints/合成./run.sh --stage 2 --stop-stage 2或手动执行CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize.sh conf/default.yaml exp/default snapshot_iter_50000.pdz音频输出到exp/default/test/超参数训练总步数 150 万、判别器前 10 万步冻结、生成器/判别器学习率分别为 1e-4 与 2e-4、多分辨率 STFT 辅助损失加权系数 1.0均可在conf/default.yaml中调整后重新训练。通过本文给出的配置说明、脚本解读与源码对照读者可以完整复现 Style MelGAN 在 CSMSC 上的训练与合成流程并具备按需调整特征参数、网络结构、损失权重与训练策略的能力。赞分享人工智能语音音频【免费下载链接】PaddleSpeechEasy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSpeech点击查看免费下载相关推荐PaddleSpeech 实战基于 CSMSC 数据集训练 Style MelGAN 声码器examples/csmsc/voc4PaddleSpeech 实战基于 CSMSC 数据集训练 Style MelGAN 声码器examples/csmsc/voc4 本篇指南围绕 Padd人工智能语音音频NLP媒体生成PaddleSpeech 多波段 MelGAN 声码器实战从 CSMSC 数据预处理到训练、推理与 HiFi-GAN 式微调PaddleSpeech 多波段 MelGAN 声码器实战从 CSMSC 数据预处理到训练、推理与 HiFi GAN 式微调 本篇以 PaddleSpeech人工智能语音音频NLP媒体生成PaddleSpeech Multi-Band MelGAN 神经声码器训练模块源码解析与 CSMSC 实战PaddleSpeech Multi Band MelGAN 神经声码器训练模块源码解析与 CSMSC 实战 本篇文章聚焦飞桨 PaddleSpeech 中人工智能语音音频NLP媒体生成上一篇2025最强Ruby on Rails SaaS开发模板Bullet Train完全指南下一篇SiLK配置详解如何通过YAML文件定制你的关键点检测模型创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Atlas 300V 24G推理加速卡部署YOLO全流程指南:从CANN到OM 最近后台被问最多的一个问题,就是“atlas 300v 24g 是运算加速卡吗”。这里统一回一下:是的,它是昇腾Atlas系列里专门做神经网络推理的加速卡,不是什么“能打游戏的显卡”,也没有显示输出接口,插上它不能给… · 2026/9/25 6:51:55
比李峋同款更炫!爱心代码飘散粒子效果全解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 6:51:55
事件驱动智能决策系统:从事件接入到规则引擎落地实践 简介:这是一份关于基于事件的智能决策系统的PPT解决方案,面向人工智能、机器学习及数据驱动的决策分析人员,帮助理解如何利用事件驱动架构构建实时智能决策闭环。资源为单文件PPT演示文稿,大小约155KB,内容精炼&#x… · 2026/9/25 6:51:49
Substrate区块链开发框架入门:核心架构、Pallet模块化与Runtime升级实战 1. 从零认识 Substrate:它到底是什么,能解决什么问题第一次听到 Substrate 这个词,很多人会以为是某个前端框架或者构建工具。其实不是。Substrate 是一个用于构建区块链的开发框架,由 Parity Technologies 团队打造,最… · 2026/9/25 7:56:18
Win10文件内容搜索失效原因与实战解决方案 1. 这不是“搜索”,而是“内容索引”——Win10文件内容查找的本质认知很多人一上来就点开资源管理器右上角那个放大镜,输入几个字,然后纳闷:“为什么搜不到?我明明在Word里写了‘项目预算表’,可搜出来全是… · 2026/9/25 7:56:11
node-fetch 完整指南:在 Node.js 中引入标准 Fetch API 后端 【免费下载链接】node-fetch A light-weight module that brings the Fetch API to Node.js 项目地址: https://gitcode.com/gh_mirrors/no/node-fetch 点击查看 免费下载 node-fetch 是一个轻量级模块,把浏览器原生的 window.fetch API 移植到 No… · 2026/9/25 7:56:11
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37