ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

使用 CSMSC 数据集从零训练 FastSpeech2 中文语音合成模型:PaddleSpeech 完整实战指南

使用 CSMSC 数据集从零训练 FastSpeech2 中文语音合成模型:PaddleSpeech 完整实战指南 人工智能语音音频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/tts3用例为主线系统讲解如何用中文标准普通话语音库 CSMSC 完成 FastSpeech2 声学模型的预处理、训练、合成与推理全流程并结合仓库源码与配置文件深入剖析每个环节的底层原理。读者按照本文操作可以完整跑通数据准备 → 特征提取 → 模型训练 → 多声码器合成 → 静态图推理的 TTS 训练闭环并能基于预训练模型直接进行中文语音合成。一、用例概览FastSpeech2 CSMSC Parallel WaveGAN本用例examples/csmsc/tts3/README_cn.md的核心目标是使用 Chinese Standard Mandarin Speech Copus即 CSMSC/BZNSYP 数据集训练 FastSpeech2 非自回归声学模型并配合 GAN 类神经声码器完成从文本到波形的端到端合成。整个用例由以下部分组成声学模型FastSpeech2训练脚本位于 paddlespeech/t2s/exps/fastspeech2/核心模型定义在 paddlespeech/t2s/models/fastspeech2/BIN_DIR 即指向该目录声码器Vocoder默认使用 Parallel WaveGANexamples/csmsc/voc1 训练同时支持 multi band melgan、style melgan、hifigan、wavernn 等多种声码器切换数据集CSMSCBZNSYP约 12 小时中文女声录音辅助工具MFAMontreal-Forced-Aligner用于生成音素级时长对齐。二、环境准备与数据获取2.1 环境初始化运行任何脚本前先执行用例目录下的path.shexamples/csmsc/tts3/path.sh它会完成关键环境变量设置source path.sh该脚本的核心逻辑是export MAIN_ROOTrealpath ${PWD}/../../../ # 指向仓库根目录 export PATH${MAIN_ROOT}:${MAIN_ROOT}/utils:${PATH} export LC_ALLC export PYTHONPATH${MAIN_ROOT}:${PYTHONPATH} MODELfastspeech2 export BIN_DIR${MAIN_ROOT}/paddlespeech/t2s/exps/${MODEL}其中BIN_DIR被解析为paddlespeech/t2s/exps/fastspeech2后续preprocess.py、normalize.py、train.py等脚本都从这里调用MAIN_ROOT/utils下的通用工具如gen_duration_from_textgrid.py、compute_statistics.py、parse_options.sh也因此进入 PATH。2.2 下载数据集从 CSMSC 官方网站下载数据集解压后假设路径为~/datasets/BZNSYP。数据集目录中应包含Wave/波形与ProsodyLabeling/音素标注等子目录。2.3 获取 MFA 对齐结果FastSpeech2 训练需要音素级时长duration作为监督信号本用例使用 MFAMontreal-Forced-Aligner对音频 音素标注进行强制对齐得到。可以直接下载社区提供的对齐结果baker_alignment_tone.tar.gz并解压假设解压目录为./baker_alignment_tone内含每个话语对应的 TextGrid 文件也可以参考仓库中的 examples/other/mfa 用例使用你自己的音频与词典训练/运行 MFA 获得对齐结果。三、一键运行run.sh 的阶段划分用例目录下的 run.sh 是总入口一条命令即可跑完整条流水线./run.sh默认配置为gpus0,1双卡、conf_pathconf/default.yaml、train_output_pathexp/default、ckpt_namesnapshot_iter_153.pdz。脚本通过 utils/parse_options.sh 解析命令行参数因此可以精确控制执行范围例如只做数据预处理./run.sh --stage 0 --stop-stage 0run.sh 共划分 11 个阶段stage 010各阶段职责如下stage执行内容调用的脚本0数据预处理MFA 时长提取 → 特征提取 → 统计量 → 归一化local/preprocess.sh1训练 FastSpeech2 模型local/train.sh2从 metadata.jsonl 合成波形默认 pwganlocal/synthesize.sh3从文本文件端到端合成波形默认 pwganlocal/synthesize_e2e.sh4使用静态模型Paddle Inference推理local/inference.sh5导出 ONNX 模型fastspeech2 pwganlocal/paddle2onnx.sh6使用 ONNX Runtime 推理local/ort_predict.sh7导出 Paddle-Lite 模型local/export2lite.sh8Paddle-Lite 推理local/lite_predict.sh9动态离线量化PTQ dynamic8bitlocal/PTQ_dynamic.sh10静态离线量化PTQ staticlocal/PTQ_static.sh注意stage 5 需要静态模型先存在于${train_output_path}/inferencestage 7 需在 stage 3 之后运行stage 3 会生成静态模型stage 510 属于部署扩展链路与训练主流程相互独立。四、数据预处理从 MFA 对齐到 dump 特征库4.1 预处理流水线local/preprocess.sh 内部也按 stage 组织接收配置路径作为第一个参数./local/preprocess.sh ${conf_path}它依次完成四步生成时长文件调用utils/gen_duration_from_textgrid.py从./baker_alignment_tone的 MFA TextGrid 结果中解析出每个音素的持续时间输出durations.txt特征提取调用${BIN_DIR}/preprocess.py参数为--datasetbaker、--rootdir~/datasets/BZNSYP/、--dumpdirdump、--dur-filedurations.txt、--config${conf_path}、--num-cpu20、--cut-silTrue。其中--cut-silTrue表示裁剪静音段--num-cpu20并行加速提取计算统计量对dump/train/raw/metadata.jsonl分别针对speech、pitch、energy三个字段调用utils/compute_statistics.py得到speech_stats.npy、pitch_stats.npy、energy_stats.npy归一化与 ID 映射调用${BIN_DIR}/normalize.py对 train/dev/test 三部分分别处理将梅尔谱、音高、能量按训练集统计量做均值方差归一化并将音素/说话人文本映射为整数 ID输出phone_id_map.txt与speaker_id_map.txt。注意 dev/test 必须使用 train 的统计量避免信息泄漏。4.2 dump 目录结构预处理完成后当前目录下会生成dump文件夹结构如下dump ├── dev │ ├── norm │ └── raw ├── phone_id_map.txt ├── speaker_id_map.txt ├── test │ ├── norm │ └── raw └── train ├── energy_stats.npy ├── norm ├── pitch_stats.npy ├── raw └── speech_stats.npy数据集被划分为train、dev、test三部分每部分含raw原始特征与norm归一化特征两个子文件夹。用于归一化的统计数据dump/train/*_stats.npy仅由训练集计算。每个子文件夹中还包含一个metadata.jsonlJSONL 表格文件逐行记录音素、文本长度、语音长度、持续时间、语音特征路径、音调特征路径、能量特征路径、说话人以及话语 id。训练时 train.py 通过jsonlines读取该文件并加载speech、pitch、energy三个字段对应converters {speech: np.load, pitch: np.load, energy: np.load}这正是后续 DataTable 数据集与 DataLoader 的数据来源。五、模型训练train.sh 与 train.py5.1 启动训练CUDA_VISIBLE_DEVICES${gpus} ./local/train.sh ${conf_path} ${train_output_path}local/train.sh 的调用等价于python3 ${BIN_DIR}/train.py \ --train-metadatadump/train/norm/metadata.jsonl \ --dev-metadatadump/dev/norm/metadata.jsonl \ --config${config_path} \ --output-dir${train_output_path} \ --ngpu1 \ --phones-dictdump/phone_id_map.txt即使用归一化后的 train/dev 元数据、单卡训练。train.py的完整参数如下usage: train.py [-h] [--config CONFIG] [--train-metadata TRAIN_METADATA] [--dev-metadata DEV_METADATA] [--output-dir OUTPUT_DIR] [--ngpu NGPU] [--phones-dict PHONES_DICT] [--speaker-dict SPEAKER_DICT] [--voice-cloning VOICE_CLONING] Train a FastSpeech2 model. optional arguments: -h, --help show this help message and exit --config CONFIG fastspeech2 config file. --train-metadata TRAIN_METADATA training data. --dev-metadata DEV_METADATA dev data. --output-dir OUTPUT_DIR output dir. --ngpu NGPU if ngpu0, use cpu. --phones-dict PHONES_DICT phone vocabulary file. --speaker-dict SPEAKER_DICT speaker id map file for multiple speaker model. --voice-cloning VOICE_CLONING whether training voice cloning model.参数要点--configyaml 格式配置文件本用例为 conf/default.yaml另有 conf/conformer.yaml 与 conf/cnndecoder.yaml 变体--train-metadata、--dev-metadata指向dump/train/norm/metadata.jsonl、dump/dev/norm/metadata.jsonl--output-dir结果保存目录checkpoint 存放在其中的checkpoints/子目录--ngpuGPU 数量ngpu0时使用 CPU--phones-dict音素词汇表dump/phone_id_map.txt--speaker-dict多说话人模型的说话人 ID 映射文件单说话人训练可省略--voice-cloning是否训练声音克隆模型。从源码看train.py 会依据ngpu决定设备gpu/xpu/cpu按--speaker-dict与--voice-cloning分支选择fastspeech2_multi_spk_batch_fn或fastspeech2_single_spk_batch_fn作为 collate 函数并分别扩展spk_id/spk_emb字段随后构建DataTable数据集与DistributedBatchSamplerDataLoader进入 Trainer 训练循环。5.2 配置文件 default.yaml 详解conf/default.yaml 分为特征提取、数据、模型、更新器、优化器、训练、其他七个部分核心参数如下特征提取设置采样率 24kHz参数默认值说明fs24000采样率n_fft2048FFT 大小样本数n_shift300帧移样本数约 12.5mswin_length1200窗长样本数约 50ms为 null 时等于 n_fftwindowhann窗函数fmin/fmax80 / 7600Mel 滤波器组最低/最高频率Hzn_mels80Mel 滤波器组数量f0min/f0max80 / 400基频提取范围仅使用 pitch 特征的模型需要如 FastSpeech2数据设置batch_size: 64num_workers: 4。模型设置FastSpeech2 结构超参参数默认值说明adim384attention 维度aheads2attention 头数elayers/eunits4 / 1536编码器层数 / FFN 单元数dlayers/dunits4 / 1536解码器层数 / FFN 单元数positionwise_layer_typeconv1d逐位置层类型卷积positionwise_conv_kernel_size3逐位置卷积核大小duration_predictor_layers/_chans/_kernel_size2 / 256 / 3时长预测器层数、通道数、卷积核大小postnet_layers/_filts/_chans5 / 5 / 256PostNet 层数、卷积核、通道数use_scaled_pos_encTrue是否使用缩放位置编码encoder/decoder_normalize_beforeTrue是否在输入前做 LayerNormreduction_factor1缩减因子init_typexavier_uniform初始化方式transformer_*_dropout_rate0.2编码器/解码器各子层 dropoutpitch_predictor_layers/_chans/_kernel_size5 / 256 / 5音高预测器结构pitch_predictor_dropout0.5音高预测器 dropoutpitch_embed_kernel_size/_dropout1 / 0.0音高嵌入卷积核与 dropoutstop_gradient_from_pitch_predictorTrue是否阻断音高预测器到编码器的梯度energy_predictor_layers/_chans/_kernel_size2 / 256 / 3能量预测器结构energy_predictor_dropout0.5能量预测器 dropoutenergy_embed_kernel_size/_dropout1 / 0.0能量嵌入卷积核与 dropoutstop_gradient_from_energy_predictorFalse是否阻断能量预测器到编码器的梯度训练与优化设置updater.use_masking: True损失计算时对 padding 部分做掩码optimizer: adamlearning_rate: 0.001max_epoch: 1000、num_snapshots: 5保留最近 5 个快照seed: 10086多进程训练必须固定随机种子。FastSpeech2 相比 FastSpeech 的核心改进正是引入音高pitch与能量energy预测器并将二者作为条件信息注入解码器从而缓解一对多映射导致的合成语音韵律不稳定问题——上述配置中的pitch_predictor_*与energy_predictor_*系列参数即对应这两个预测分支。六、语音合成声学模型 神经声码器6.1 从 metadata 合成test 集评测CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize.sh ${conf_path} ${train_output_path} ${ckpt_name} 0local/synthesize.sh 调用${BIN_DIR}/../synthesize.py即 paddlespeech/t2s/exps/synthesize.py从dump/test/norm/metadata.jsonl合成测试集波形输出到${train_output_path}/test。脚本中最后一个位置参数0用于选择声码器取值范围0-4分别对应参数声码器模型0pwganParallel WaveGAN1multi band melgan2style melgan3hifigan4wavernnsynthesize.sh 为每个声码器都预置了对应的配置文件与预训练 checkpoint 路径如mb_melgan_csmsc_ckpt_0.1.1、hifigan_csmsc_ckpt_0.1.1、wavernn_csmsc_ckpt_0.2.0等。合成前需要先解压声码器预训练模型默认 pwganunzip pwg_baker_ckpt_0.4.zipParallel WaveGAN 检查点包含三个文件pwg_baker_ckpt_0.4 ├── pwg_default.yaml # 训练 parallel wavegan 的默认配置 ├── pwg_snapshot_iter_400000.pdz # parallel wavegan 的模型参数 └── pwg_stats.npy # 训练时用于归一化谱图的统计数据synthesize.py的完整参数如下usage: synthesize.py [-h] [--am {speedyspeech_csmsc,fastspeech2_csmsc,fastspeech2_ljspeech,fastspeech2_aishell3,fastspeech2_vctk,tacotron2_csmsc,tacotron2_ljspeech,tacotron2_aishell3}] [--am_config AM_CONFIG] [--am_ckpt AM_CKPT] [--am_stat AM_STAT] [--phones_dict PHONES_DICT] [--tones_dict TONES_DICT] [--speaker_dict SPEAKER_DICT] [--voice-cloning VOICE_CLONING] [--voc {pwgan_csmsc,pwgan_ljspeech,pwgan_aishell3,pwgan_vctk,mb_melgan_csmsc,wavernn_csmsc,hifigan_csmsc,hifigan_ljspeech,hifigan_aishell3,hifigan_vctk,style_melgan_csmsc}] [--voc_config VOC_CONFIG] [--voc_ckpt VOC_CKPT] [--voc_stat VOC_STAT] [--ngpu NGPU] [--test_metadata TEST_METADATA] [--output_dir OUTPUT_DIR] Synthesize with acoustic model vocoder optional arguments: -h, --help show this help message and exit --am {speedyspeech_csmsc,fastspeech2_csmsc,fastspeech2_ljspeech,fastspeech2_aishell3,fastspeech2_vctk,tacotron2_csmsc,tacotron2_ljspeech,tacotron2_aishell3} Choose acoustic model type of tts task. --am_config AM_CONFIG Config of acoustic model. --am_ckpt AM_CKPT Checkpoint file of acoustic model. --am_stat AM_STAT mean and standard deviation used to normalize spectrogram when training acoustic model. --phones_dict PHONES_DICT phone vocabulary file. --tones_dict TONES_DICT tone vocabulary file. --speaker_dict SPEAKER_DICT speaker id map file. --voice-cloning VOICE_CLONING whether training voice cloning model. --voc {pwgan_csmsc,pwgan_ljspeech,pwgan_aishell3,pwgan_vctk,mb_melgan_csmsc,wavernn_csmsc,hifigan_csmsc,hifigan_ljspeech,hifigan_aishell3,hifigan_vctk,style_melgan_csmsc} Choose vocoder type of tts task. --voc_config VOC_CONFIG Config of voc. --voc_ckpt VOC_CKPT Checkpoint file of voc. --voc_stat VOC_STAT mean and standard deviation used to normalize spectrogram when training voc. --ngpu NGPU if ngpu 0, use cpu. --test_metadata TEST_METADATA test metadata. --output_dir OUTPUT_DIR output dir.6.2 从文本端到端合成CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize_e2e.sh ${conf_path} ${train_output_path} ${ckpt_name} 0local/synthesize_e2e.sh 调用${BIN_DIR}/../synthesize_e2e.py直接从纯文本文件合成波形。最后一个位置参数控制声码器取值范围为{0,1,3,4}分别对应pwgan、multi band melgan、hifigan、wavernnstyle melgan 因动态图转静态图尚未就绪暂不支持端到端合成脚本中对应分支被注释。默认文本为${BIN_DIR}/../../assets/sentences.txt即 paddlespeech/t2s/assets/sentences.txt包含 16 句中文示例文本输出目录为${train_output_path}/test_e2e。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 optional arguments: -h, --help show this help message and exit --am {speedyspeech_csmsc,speedyspeech_aishell3,fastspeech2_csmsc,fastspeech2_ljspeech,fastspeech2_aishell3,fastspeech2_vctk,tacotron2_csmsc,tacotron2_ljspeech} Choose acoustic model type of tts task. --am_config AM_CONFIG Config of acoustic model. --am_ckpt AM_CKPT Checkpoint file of acoustic model. --am_stat AM_STAT mean and standard deviation used to normalize spectrogram when training acoustic model. --phones_dict PHONES_DICT phone vocabulary file. --tones_dict TONES_DICT tone vocabulary file. --speaker_dict SPEAKER_DICT speaker id map file. --spk_id SPK_ID spk id for multi speaker acoustic model --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} Choose vocoder type of tts task. --voc_config VOC_CONFIG Config of voc. --voc_ckpt VOC_CKPT Checkpoint file of voc. --voc_stat VOC_STAT mean and standard deviation used to normalize spectrogram when training voc. --lang LANG Choose model language. zh or en --inference_dir INFERENCE_DIR dir to save inference models --ngpu NGPU if ngpu 0, use cpu. --text TEXT text to synthesize, a utt_id sentence pair per line. --output_dir OUTPUT_DIR output dir.该脚本关键参数说明--am声学模型命名格式为{model_name}_{dataset}如fastspeech2_csmsc--am_config、--am_ckpt、--am_stat、--phones_dict对应 fastspeech2 预训练模型中的 4 个文件配置、权重、统计量、音素表--voc声码器命名格式同样为{model_name}_{dataset}--voc_config、--voc_ckpt、--voc_stat对应 parallel wavegan 预训练模型中的 3 个文件--lang取zh或en--text为待合成文本文件每行格式为utt_id sentence--output_dir为合成音频输出目录--ngpu为 GPU 数ngpu0时使用 CPU。6.3 声码器下载与选择端到端合成前同样需要解压声码器权重。synthesize_e2e.sh 中为每种声码器预留了对应的检查点目录与参数pwgan 使用pwg_baker_ckpt_0.4。合成时的内存控制通过两个 FLAGS 完成FLAGS_allocator_strategynaive_best_fit \ FLAGS_fraction_of_gpu_memory_to_use0.01 \naive_best_fit分配策略配合仅使用 1% GPU 显存的设置可在显存受限环境下运行推理。七、静态图推理合成stage 2/3之后${train_output_path}/inference下会生成 fastspeech2 与 pwgan 的静态图模型。接下来可进行 Paddle 静态图推理CUDA_VISIBLE_DEVICES${gpus} ./local/inference.sh ${train_output_path}local/inference.sh 调用${BIN_DIR}/../inference.py为 fastspeech2 pwgan 提供静态图推理示例核心命令为python3 ${BIN_DIR}/../inference.py \ --inference_dir${train_output_path}/inference \ --amfastspeech2_csmsc \ --vocpwgan_csmsc \ --text${BIN_DIR}/../../assets/sentences.txt \ --output_dir${train_output_path}/pd_infer_out \ --phones_dictdump/phone_id_map.txt推理输出保存到${train_output_path}/pd_infer_out。该脚本同样支持切换 mb_melgan、hifigan、wavernn 等声码器。静态图推理为后续导出 ONNX、Paddle-Lite 模型及部署做好了铺垫。八、预训练模型与评测指标8.1 预训练模型清单仓库提供两种结构的预训练 FastSpeech2 模型音频边缘无空白fastspeech2_nosil_baker_ckpt_0.4.zip基于 default 配置训练fastspeech2_conformer_baker_ckpt_0.5.zip基于 conformer 配置训练。同时提供静态图版本fastspeech2_nosil_baker_static_0.4.zip可直接用于部署推理。8.2 评测指标以下为官方发布的评测指标2 卡 × 76000 stepModelStepeval/losseval/l1_losseval/duration_losseval/pitch_losseval/energy_lossdefault2(gpu) x 760001.09910.591320.0358150.319150.15287conformer2(gpu) x 760001.06750.561030.0358690.315530.15509可以看到 conformer 配置在总 loss 与 l1_loss 上略优于 default 配置。损失项与 FastSpeech2 结构一一对应duration_loss来自时长预测器、pitch_loss来自音高预测器、energy_loss来自能量预测器、l1_loss为梅尔谱重建损失。8.3 检查点文件结构FastSpeech2 检查点fastspeech2_nosil_baker_ckpt_0.4解压后包含fastspeech2_nosil_baker_ckpt_0.4 ├── default.yaml # 训练 fastspeech2 的默认配置 ├── phone_id_map.txt # 训练 fastspeech2 时的音素词汇文件 ├── snapshot_iter_76000.pdz # 模型参数和优化器状态 └── speech_stats.npy # 训练时用于归一化频谱图的统计数据8.4 使用预训练模型快速合成下载并解压fastspeech2_nosil_baker_ckpt_0.4.zip与pwg_baker_ckpt_0.4.zip后可通过以下脚本直接为仓库自带的paddlespeech/t2s/assets/sentences.txt合成语音source path.sh FLAGS_allocator_strategynaive_best_fit \ FLAGS_fraction_of_gpu_memory_to_use0.01 \ python3 ${BIN_DIR}/../synthesize_e2e.py \ --amfastspeech2_csmsc \ --am_configfastspeech2_nosil_baker_ckpt_0.4/default.yaml \ --am_ckptfastspeech2_nosil_baker_ckpt_0.4/snapshot_iter_76000.pdz \ --am_statfastspeech2_nosil_baker_ckpt_0.4/speech_stats.npy \ --vocpwgan_csmsc \ --voc_configpwg_baker_ckpt_0.4/pwg_default.yaml \ --voc_ckptpwg_baker_ckpt_0.4/pwg_snapshot_iter_400000.pdz \ --voc_statpwg_baker_ckpt_0.4/pwg_stats.npy \ --langzh \ --text${BIN_DIR}/../../assets/sentences.txt \ --output_direxp/default/test_e2e \ --inference_direxp/default/inference \ --phones_dictfastspeech2_nosil_baker_ckpt_0.4/phone_id_map.txt注意运行前需先source path.sh使BIN_DIR、MAIN_ROOT生效。生成的音频将保存在exp/default/test_e2e目录下。九、模型导出与部署扩展训练主流程之外run.sh 还完整覆盖了从 Paddle 静态图到多种部署格式的导出链路ONNX 导出stage 5pip install paddle2onnx --upgrade后执行./local/paddle2onnx.sh ${train_output_path} inference inference_onnx fastspeech2_csmsc导出声学模型再导出pwgan_csmsc声码器。脚本注释建议考虑速度与质量的平衡部署场景推荐使用 hifigan 声码器ONNX Runtime 推理stage 6./local/ort_predict.sh ${train_output_path}Paddle-Lite 导出与推理stage 7-8./local/export2lite.sh导出 x86 平台的 Paddle-Lite 模型./local/lite_predict.sh执行推理需使用支持 TTS 模型的 Paddle-Lite 版本离线量化stage 9-10./local/PTQ_dynamic.sh ${train_output_path} fastspeech2_csmsc 8做 8bit 动态量化./local/PTQ_static.sh做静态量化用于压缩模型体积、加速端侧推理。由此可以看到examples/csmsc/tts3不仅是一个训练用例更是一套覆盖训练 → 合成 → 静态图推理 → 多种部署格式导出与量化的完整中文 TTS 工程化参考实现。十、小结本文以 examples/csmsc/tts3/README_cn.md 为主线完整还原了使用 CSMSC 数据集训练 FastSpeech2 中文语音合成模型的全部流程从数据集与 MFA 对齐准备、run.sh的阶段化编排到dump特征库构建、train.py训练、四种以上声码器的灵活切换合成、静态图推理再到预训练模型复现与 ONNX/Paddle-Lite 部署导出。配合 conf/default.yaml 的逐参数解读与 train.py 的源码级调用链分析读者既能照搬命令行完成实战也能深入理解 FastSpeech2 在 PaddleSpeech 中的工程实现细节。该用例与 examples/csmsc/voc1Parallel WaveGAN 训练、examples/other/mfaMFA 对齐共同构成了一整套可复现的中文 TTS 开源训练方案。赞分享人工智能语音音频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点击查看免费下载相关推荐Unreal Engine动画工作流加速UnrealEditorPythonScripts批量处理技巧Unreal Engine动画工作流加速UnrealEditorPythonScripts批量处理技巧 在Unreal Engine开发中动画资源的管理和优人工智能语音音频NLP媒体生成TQVaultAE终极指南告别泰坦之旅背包烦恼开启无限仓库新时代TQVaultAE终极指南告别泰坦之旅背包烦恼开启无限仓库新时代 还在为《泰坦之旅周年版》的背包空间不足而烦恼吗TQVaultAE作为专为泰坦之旅玩家打造人工智能语音音频NLP媒体生成Telegraf puppetagent 输入插件基于 last_run_summary.yaml 的 Puppet 运行监控完整指南Telegraf puppetagent 输入插件基于 last_run_summary.yaml 的 Puppet 运行监控完整指南 Telegraf 的人工智能语音音频NLP媒体生成上一篇awesome-deepseek-integration 实践篇在 Neovim 中用 avante.nvim 接入 DeepSeek API下一篇React-Dates与Redux集成终极指南高效状态管理最佳实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表