人工智能语音音频NLP媒体生成【免费下载链接】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/paddlepaddle/PaddleSpeech点击查看免费下载本篇以 PaddleSpeech 仓库中examples/csmsc/voc3示例为主线系统讲解如何在 CSMSCBaker中文普通话语音数据集上完成多波段 MelGANMulti-Band MelGAN神经声码器的全流程工程实践基于 MFA 对齐结果的静音切除与特征预处理、GAN 声码器训练、从metadata.jsonl与文本文件两种方式的语音合成以及借鉴 HiFi-GAN 思想的 ground truth 对齐梅尔谱微调方案。读完后你可以完整复现数据准备 → 训练 → 合成 → 微调 → 静态模型导出的声码器开发链路并深入理解每一级脚本背后的参数含义与实现逻辑。1. 示例定位与整体流程examples/csmsc/voc3的目标是在 Chinese Standard Mandarin Speech CopusCSMSC/Baker 上训练 Multi Band MelGAN 声码器。该示例改编自 ParallelWaveGAN 的代码思路README 末尾 Acknowledgement 明确致谢并在 PaddleSpeech 的 GAN Vocoder 训练框架paddlespeech/t2s/exps/gan_vocoder/multi_band_melgan/上实现。run.sh 按 stage 划分了整个流水线支持--stage N --stop-stage M选择执行区间stage功能调用的脚本0数据预处理静音切除、提特征、统计量计算、归一化local/preprocess.sh1训练 Multi Band MelGANlocal/train.sh2从metadata.jsonl合成波形local/synthesize.sh3FastSpeech2 声码器端到端文本合成local/synthesize_e2e.sh4静态模型量化导出PTQlocal/PTQ_static.sh./run.sh --stage 0 --stop-stage 0 # 仅执行数据预处理path.sh 负责环境设置定位仓库根目录MAIN_ROOT将BIN_DIR指向paddlespeech/t2s/exps/gan_vocoder/multi_band_melgan训练脚本目录并配置PYTHONPATH。注意run.sh中默认gpus0,1、train_output_pathexp/default、ckpt_namesnapshot_iter_50000.pdz实际使用时需按本机 GPU 情况调整。2. 数据准备CSMSC 与 MFA 对齐结果预处理链路依赖两个外部输入CSMSC 数据集从官网下载后解压到~/datasets最终位于~/datasets/BZNSYPMFA 对齐结果PaddleSpeech 用 Montreal Forced AlignerMFA的词级时间戳来切除语音首尾静音--cut-silTrue。仓库提供现成的对齐包baker_alignment_tone.tar.gz下载地址见 README.md解压后置于当前目录的./baker_alignment_tone也可以参考仓库中 examples/other/mfa 示例自行训练 MFA 模型。3. 数据预处理从原始音频到归一化梅尔谱local/preprocess.sh接收配置路径作为第一个参数内部又分 4 个子 stage./local/preprocess.sh ${conf_path}stage 0由 MFA 对齐生成时长文件python3 ${MAIN_ROOT}/utils/gen_duration_from_textgrid.py \ --inputdir./baker_alignment_tone \ --outputdurations.txt \ --config${config_path}将 TextGrid 中的词级对齐转换为durations.txt供后续静音切除使用。stage 1特征抽取与静音切除python3 ${BIN_DIR}/../preprocess.py \ --rootdir~/datasets/BZNSYP/ \ --datasetbaker \ --dumpdirdump \ --dur-filedurations.txt \ --config${config_path} \ --cut-silTrue \ --num-cpu20stage 2统计量计算python3 ${MAIN_ROOT}/utils/compute_statistics.py \ --metadatadump/train/raw/metadata.jsonl \ --field-namefeatsstage 3归一化dev/test 必须复用 train 的统计量python3 ${BIN_DIR}/../normalize.py \ --metadatadump/train/raw/metadata.jsonl \ --dumpdirdump/train/norm \ --statsdump/train/feats_stats.npy \ --skip-wav-copy # 对 dump/dev、dump/test 重复同样的命令预处理完成后当前目录生成如下dump结构dump ├── dev │ ├── norm │ └── raw ├── test │ ├── norm │ └── raw └── train ├── norm ├── raw └── feats_stats.npy数据集被划分为train/dev/test三份各含raw每条语音的梅尔谱对数幅值与norm归一化后谱值两个子目录。归一化统计量仅从训练集计算保存在dump/train/feats_stats.npy。每个子目录下的metadata.jsonl是表格式文件记录每条语音的 id 与谱值文件路径。4. 训练 Multi Band MelGAN训练入口CUDA_VISIBLE_DEVICES${gpus} ./local/train.sh ${conf_path} ${train_output_path}local/train.sh 设置了FLAGS_cudnn_exhaustive_searchtrue与FLAGS_conv_workspace_size_limit4000两个飞桨环境变量加速卷积寻优、限制卷积 workspace 显存随后调用${BIN_DIR}/train.py参数如下usage: train.py [-h] [--config CONFIG] [--train-metadata TRAIN_METADATA] [--dev-metadata DEV_METADATA] [--output-dir OUTPUT_DIR] [--ngpu NGPU] Train a Multi-Band MelGAN model. optional arguments: -h, --help show this help message and exit --config CONFIG Multi-Band 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与dump/dev/norm中的metadata.jsonl--output-dir实验输出目录checkpoint 保存在其下的checkpoints/--ngpuGPU 数量为 0 时使用 CPU。4.1 核心配置参数详解conf/default.yamlconf/default.yaml 文件头注明该配置基于 full-band MelGAN 论文但采样率与 hop size 与论文不同24kHz vs 24kHz 的说明实为 16kHz vs 24kHz 的适配训练 100 万步约需 8GB 显存在 Titan V 上约 7 天收敛。各参数分组如下特征抽取参数默认值说明fs24000采样率Hzn_fft2048FFT 尺寸n_shift300hop size约 12.5mswin_length1200窗长50ms为 null 时等于n_fftwindowhann窗函数n_mels80梅尔维度fmin/fmax80 / 7600梅尔基计算的最小/最大频率Hz生成器multi-band 结构参数默认值说明in_channels80输入通道数等于n_melsout_channels4输出通道数multi-band 的关键波形被拆成 4 个子带分别预测再拼接还原kernel_size7首/末层卷积核大小channels384卷积层初始通道数upsample_scales[5, 5, 3]上采样尺度列表需满足prod(upsample_scales) × out_channels n_shift5×5×3×4 300stack_kernel_size3残差堆栈中膨胀卷积核大小stacks4残差堆栈组数use_weight_normTrue是否使用 weight normalizationuse_causal_convFalse是否使用因果卷积流式场景开启use_final_nonlinear_activationTrue是否使用末层非线性激活判别器多尺度判别器参数默认值说明scales3多尺度数量Multi-scale Discriminatordownsample_poolingAvgPool1D输入下采样池化类型kernel_size4, stride2, padding1kernel_sizes[5, 3]每个尺度内的卷积核大小列表channels16首层通道数max_downsample_channels512下采样层最大通道数downsample_scales[4, 4, 4]下采样尺度列表nonlinear_activationleakyrelunegative_slope0.2非线性激活损失函数同时使用多尺度 STFT 损失fft_sizes: [1024, 2048, 512]、对应hop_sizes与win_lengths与子带 STFT 损失subband_stft_loss_params中fft_sizes: [384, 683, 171]等——后者正是 Multi Band MelGAN 相对原版 MelGAN 的核心改进让损失函数与生成器的子带输出结构保持一致对抗损失系数lambda_adv: 2.5特征匹配损失默认关闭use_feat_match_loss: False。数据加载batch_size: 64batch_max_steps: 16200每批音频帧长必须能被n_shift300整除num_workers: 2。优化器与调度生成器与判别器均使用 Adamepsilon: 1.0e-7无 weight decay学习率1.0e-3在[100000, 200000, ..., 600000]六个 milestone 处按gamma: 0.5阶梯衰减。训练节奏discriminator_train_start_steps: 200000前 20 万步只训练生成器让 G 先学到基本结构后再引入对抗、train_max_steps: 1000000、save_interval_steps: 5000、eval_interval_steps: 1000、num_snapshots: 10、随机种子seed: 42。5. 语音合成5.1 从 metadata.jsonl 合成仅声码器CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize.sh ${conf_path} ${train_output_path} ${ckpt_name}local/synthesize.sh 调用${BIN_DIR}/../synthesize.py即paddlespeech/t2s/exps/gan_vocoder/synthesize.py并设置FLAGS_allocator_strategynaive_best_fit与FLAGS_fraction_of_gpu_memory_to_use0.01控制推理显存分配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.参数要点--config必须使用与训练时完全一致的声码器配置--checkpoint训练输出目录checkpoints/中选取的快照--test-metadata使用预处理目录中dev/norm脚本默认用dump/test/norm/metadata.jsonl下的metadata.jsonl--output-dir合成音频保存目录脚本默认为${train_output_path}/test--ngpuGPU 数量。官方预训练声码器可从 README.md 中的链接下载mb_melgan_csmsc_ckpt_0.1.1.zip并解压包含mb_melgan_csmsc_ckpt_0.1.1 ├── default.yaml # 训练时使用的默认配置 ├── feats_stats.npy # 训练时归一化谱值的统计量 └── snapshot_iter_1000000.pdz # 生成器参数5.2 端到端文本合成FastSpeech2 声码器PaddleSpeech 选用 FastSpeech2 作为声学模型可参考 examples/csmsc/tts3。端到端合成入口CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize_e2e.sh ${conf_path} ${train_output_path} ${ckpt_name}local/synthesize_e2e.sh 调用${BIN_DIR}/../../synthesize_e2e.py即paddlespeech/t2s/exps/synthesize_e2e.py其完整参数为usage: synthesize_e2e.py [-h] [--am {speedyspeech_csmsc,speedyspeech_aishell3,fastspeech2_csmsc,fastspeech2_ljspeech,fastspeech2_aishell3,fastspeech2_vctk,tacotron2_csmsc,tacotron2_ljspeech}] [--am_config AM_CONFIG] [--am_ckpt AM_CKPT] [--am_stat AM_STAT] [--phones_dict PHONES_DICT] [--tones_dict TONES_DICT] [--speaker_dict SPEAKER_DICT] [--spk_id SPK_ID] [--voc {pwgan_csmsc,pwgan_ljspeech,pwgan_aishell3,pwgan_vctk,mb_melgan_csmsc,style_melgan_csmsc,hifigan_csmsc,hifigan_ljspeech,hifigan_aishell3,hifigan_vctk,wavernn_csmsc}] [--voc_config VOC_CONFIG] [--voc_ckpt VOC_CKPT] [--voc_stat VOC_STAT] [--lang LANG] [--inference_dir INFERENCE_DIR] [--ngpu NGPU] [--text TEXT] [--output_dir OUTPUT_DIR] Synthesize with acoustic model vocoder参数与预训练模型文件的对应关系脚本实际使用--am声学模型类型格式{model_name}_{dataset}脚本使用fastspeech2_csmsc--am_config/--am_ckpt/--am_stat/--phones_dict分别对应 FastSpeech2 预训练模型fastspeech2_nosil_baker_ckpt_0.4中的default.yaml、snapshot_iter_76000.pdz、speech_stats.npy与phone_id_map.txt--voc声码器类型格式{model_name}_{dataset}此处为mb_melgan_csmsc--voc_config/--voc_ckpt/--voc_stat分别对应当前示例的conf/default.yaml、训练输出的 checkpoint以及dump/train/feats_stats.npy声码器归一化统计量--langzh或en--text待合成文本每行utt_id sentence格式脚本默认使用paddlespeech/t2s/exps/assets/sentences.txt--output_dir合成音频输出目录脚本默认为${train_output_path}/test_e2e--inference_dir推理模型保存目录脚本默认为${train_output_path}/inference--ngpuGPU 数量。FastSpeech2 预训练模型包结构fastspeech2_nosil_baker_ckpt_0.4 ├── default.yaml # fastspeech2 训练配置 ├── phone_id_map.txt # 音节phone词表 ├── snapshot_iter_76000.pdz # 模型参数与优化器状态 └── speech_stats.npy # fastspeech2 训练时的谱值归一化统计量注意端到端推理时涉及两套独立的归一化统计量--am_stat用于声学模型输出的梅尔谱归一化还原--voc_stat用于声码器输入的归一化两者不可混用。6. 微调借鉴 HiFi-GAN 用 GT 对齐梅尔谱训练声码器README 指出Multi-Band MelGAN 的输入不含噪声项直接训练时音质有限README 引用了 espnet 相关 issue 的讨论因此参考 HiFi-GAN 的做法使用FastSpeech2 预测的梅尔谱ground truth alignment mel对声码器进行微调。要点有二梅尔谱长度必须与波形对齐因此需用 ground truth 对齐即durations.txt生成梅尔谱既然是微调归一化仍须使用训练阶段计算的统计量dump/train/feats_stats.npy而非重新计算。finetune.sh 完成六步source path生成 GT 对齐梅尔谱调用paddlespeech/t2s/exps/fastspeech2/gen_gta_mel.py输入 FastSpeech2 的配置、checkpoint、统计量、durations.txt与 Baker 数据集输出到dump_finetune链接波形utils/link_wav.py将dump中的*_wave.npy软链接到dump_finetune微调只更换梅尔谱波形复用训练阶段的复制统计量cp dump/train/feats_stats.npy dump_finetune/train/归一化用复制的统计量对dump_finetune下 train/dev/test 重新执行normalize.py微调训练调用train.py配置为 conf/finetune.yaml输出目录exp/finetune。微调前的前置条件预训练模型需位于exp/finetune/checkpoints中且存在records.jsonl索引该模型exp/finetune/checkpoints ├── records.jsonl └── snapshot_iter_1000000.pdzrecords.jsonl内容形如需将path改为你自己的 checkpoint 路径{time: 2021-11-21 15:11:20.337311, path: ~/PaddleSpeech/examples/csmsc/voc3/exp/finetune/checkpoints/snapshot_iter_1000000.pdz, iteration: 1000000}执行./finetune.sh默认使用conf/finetune.yaml、dump 目录dump_finetune、实验目录exp/finetune。对比两个配置文件可以发现finetune.yaml与default.yaml的网络结构、损失与优化器设置完全一致差异仅在于训练节奏train_max_steps从 1000000 提升到2000000save_interval_steps从 5000 收紧为 1000微调后期更频繁保存。README 同时留下 TODO 提示finetune.yaml的超参尚不充分建议使用更小的learning_rate并设置更多milestones。7. 预训练模型与评估指标README 提供的模型资产分为几类训练好的动态模型mb_melgan_csmsc_ckpt_0.1.1.zip声码器、fastspeech2_nosil_baker_ckpt_0.4.zip声学模型微调后的模型mb_melgan_baker_finetune_ckpt_0.5.zip静态inference 导出模型mb_melgan_csmsc_static_0.1.1.zip、fastspeech2_nosil_baker_static_0.4.zipPIR 静态模型mb_melgan_csmsc_static_pir_0.1.1.zip运行需设置FLAGS_enable_pir_api1且仅兼容 paddlepaddle 3.0.0b2ONNX 模型mb_melgan_csmsc_onnx_0.2.0.zip、fastspeech2_csmsc_onnx_0.2.0.zipPaddle-Lite 移动端模型mb_melgan_csmsc_pdlite_1.3.0.zip、fastspeech2_csmsc_pdlite_1.3.0.zip。README 给出的开发集评估指标1 张 GPU × 100 万步ModelStepeval/generator_losseval/log_stft_magnitude_losseval/spectral_convergence_losseval/sub_log_stft_magnitude_losseval/sub_spectral_convergence_lossdefault1(gpu) x 10000002.48510.717780.27610.663340.2777finetune1(gpu) x 10000003.1969670.9778040.7784840.8895760.7767568. 小结examples/csmsc/voc3提供了一个可完整复现的多波段 MelGAN 声码器工程样例预处理以 MFA 对齐切除静音通过preprocess.pycompute_statistics.pynormalize.py三步生成 train/dev/test 的 raw/norm 梅尔谱与统一统计量训练由paddlespeech/t2s/exps/gan_vocoder/multi_band_melgan/train.py驱动核心设计是 4 子带输出的生成器上采样 5×5×3×4300 恰好等于 hop size、多尺度判别器与多尺度 STFT 子带 STFT双损失判别器延迟 20 万步加入对抗合成提供从metadata.jsonl直接过声码器以及 FastSpeech2 声码器端到端文本合成两条路径两者分别依赖feats_stats.npy与speech_stats.npy两套归一化统计量微调借鉴 HiFi-GAN 思路用 GT 对齐的梅尔谱继续训练声码器以弥补无噪声输入的音质短板微调流程通过finetune.sh一键串联生成 GT 梅尔谱 → 链接波形 → 复制统计量 → 归一化 → 训练。相关入口文件可进一步深入阅读run.sh、finetune.sh、conf/default.yaml、conf/finetune.yaml 以及paddlespeech/t2s/exps/gan_vocoder/multi_band_melgan/下的训练与推理实现。赞分享人工智能语音音频NLP媒体生成【免费下载链接】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/paddlepaddle/PaddleSpeech点击查看免费下载相关推荐PaddleSpeech Multi-Band MelGAN 神经声码器训练模块源码解析与 CSMSC 实战PaddleSpeech Multi Band MelGAN 神经声码器训练模块源码解析与 CSMSC 实战 本篇文章聚焦飞桨 PaddleSpeech 中人工智能语音音频NLP媒体生成PaddleSpeech WaveFlow 声码器训练模块源码级解析从数据预处理到分布式训练与波形合成PaddleSpeech WaveFlow 声码器训练模块源码级解析从数据预处理到分布式训练与波形合成 WaveFlow 是 PaddleSpeech 中基于人工智能语音音频NLP媒体生成ASP.NET Core WsFederation 认证中间件从仓库构建测试到源码级解析ASP.NET Core WsFederation 认证中间件从仓库构建测试到源码级解析 本文以 src/Security/Authentication/Ws人工智能语音音频上一篇Dagger TypeScript SDK 中的 ClientCurrentWorkspaceOptscurrentWorkspace 调用的迁移检查开关详解下一篇FanControl终极指南5分钟掌握Windows风扇智能控制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
基于微信小程序的智能社区服务系统:SSM架构部署与实现解析 简介:面向高校计算机相关专业学生及微信小程序开发者,是一套可本地化运行的智能社区服务系统毕业设计/课程设计项目。系统基于SSM框架与MySQL数据库,小程序端采用微信开发者工具开发,涵盖用户注册登录、房屋信息查看、家政预约、报… · 2026/9/25 10:08:51
BlockNote 标题块导出为 Markdown:六级标题(H6)快照剖析与转换链路解析 前端富文本UI组件AI 应用 【免费下载链接】BlockNote A React Rich Text Editor thats block-based (Notion style) and extensible. Built on top of Prosemirror and Tiptap. 项目地址: https://gitcode.com/gh_mirrors/bl/BlockNote 点击查看 免费下载 一、快照… · 2026/9/25 10:41:52
湖南不锈钢全屋定制新兴品牌哪家有潜力?固家科技行业全景分析 什么是不锈钢全屋定制
不锈钢全屋定制的核心属性与基础常识全屋定制是基于消费者家居空间尺寸、个性化风格需求提供整体家居柜类解决方案的定制模式,而不锈钢全屋定制,就是以食品级304不锈钢为核心柜体材质,搭配特殊填充工艺与定制化生产&… · 2026/9/25 10:41:34
广东省高强度水泥毯正规源头厂家实力参考,成立多年信誉度高 为什么渠道衬砌、护坡工程要选对柔性混凝土材料?先搞懂核心原理在水利、市政、环保类工程里,渠道衬砌、河道护坡、应急抢修这些场景,常被传统现浇混凝土的麻烦绊住手脚。很多人不知道,传统混凝土从支模板、搅拌运输到养护拆模,动… · 2026/9/25 10:41:34
湖北口碑好的新款食用菌灭菌柜、半自动食用菌灭菌柜制造厂家避坑挑选指南 湖北长喜食用菌机械制造有限公司,坐落在湖北随州中国香菇之乡的随县殷店工业园,从2008年创始人扎根本地解决菇农实际生产痛点起步,十余年来专注食用菌全流程机械的研发与制造,是深耕本地、贴近菇农实际需求的食用菌机械智造领域的… · 2026/9/25 10:41:03
封闭煤棚网架加工厂选型 徐州玖盛发钢结构有限公司选择指南 徐州玖盛发:专业封闭煤棚网架加工厂,一站式解决煤棚封闭工程加工安装难题做煤棚封闭改造工程,选对网架加工厂是项目落地的核心——徐州玖盛发钢结构有限公司是深耕网架行业十余年的一站式网架加工设计生产安装厂家,专注为电厂、水… · 2026/9/25 10:41:03
创维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