人工智能语音音频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/ted_en_zh/st0 示例展开系统讲解如何基于 TED En-Zh英中双语语料训练端到端语音翻译Speech Translation, ST模型。该示例采用 Transformer 编码器-解码器架构并通过ASR 多任务学习MTL策略联合优化语音识别与翻译目标是理解 PaddleSpeechu2_st实验体系数据管线、Noam 调度训练、Top-k 模型平均、全句解码与 Char-BLEU 评测的典型入门案例。读完本文你将掌握数据集预处理三步走、多卡训练命令、模型平均与测试评估的完整操作并能读懂transformer_mtl_noam.yaml等核心配置文件的每个关键参数。一、示例概览与整体流程examples/ted_en_zh/st0目录中核心驱动脚本是run.sh它把整个实验流程拆分为 4 个可独立执行的阶段stage每个阶段职责如下表Stage功能0数据处理计算训练集 CMVN、生成词表、生成 train/dev/test 三个数据集的 manifest 文件1模型训练2对 Top-k 个模型参数做平均得到最终模型k1 表示直接选最优模型3测试最终模型性能run.sh通过stage与stop_stage两个变量控制执行区间既可一次跑完 03 全流程也可只跑其中一段。例如# 只执行 stage 2 和 stage 3模型平均 测试 bash run.sh --stage 2 --stop_stage 3 # 只执行 stage 0数据处理 bash run.sh --stage 0 --stop_stage 0从 run.sh 源码看脚本内部其实还预留了 stage 51 的模型导出export逻辑用于将平均后的模型导出为.jit静态图格式供推理服务使用感兴趣的读者可以自行延伸研究。此外local/data.sh内部还细化了 4 个内部 stage-1/0/1/2分别对应生成 raw manifest → 计算 CMVN → 构建词表 → 格式化 manifest下文会展开说明。二、环境准备path.sh 与 parse_options.sh所有实验脚本运行前都需要先加载环境变量脚本 path.shsource path.h注README 原文此处拼写为path.h实际文件名为path.sh应执行source path.sh。path.sh的核心作用以realpath计算仓库根目录并导出为MAIN_ROOT指向../../../即仓库根目录将MAIN_ROOT与MAIN_ROOT/utils加入PATH使avg.sh等公共工具可直接调用设置LC_ALLC与PYTHONIOENCODINGUTF-8避免中文语料在处理时触发 UnicodeDecodeError设置PYTHONPATH指向仓库根目录保证paddlespeech.s2t等包可被导入指定本次实验使用的模型族MODELu2_st并将可执行入口目录导出为BIN_DIR${MAIN_ROOT}/paddlespeech/s2t/exps/${MODEL}/bin——train.py、test.py均位于此目录。另一个必须 source 的公共脚本是参数解析工具source ${MAIN_ROOT}/utils/parse_options.sh它让所有 shell 脚本支持--variable value风格的命令行传参例如bash run.sh --gpus 0,1 --avg_num 5。这一机制贯穿 PaddleSpeech 全部 examples是理解各脚本魔法参数的关键。三、run.sh 的局部变量说明run.sh 顶部定义了一批局部变量含义如下变量含义默认值gpus使用的 GPU 编号置空gpus表示仅用 CPU0,1,2,3stage起始阶段编号0stop_stage结束阶段编号50conf_path模型配置文件路径conf/transformer_mtl_noam.yamldecode_conf_path解码配置文件路径conf/tuning/decode.yamldata_path数据集解压后的路径./TED_EnZhavg_numTop-k 平均的 k 值5ips多机训练时各节点 IP 列表逗号分隔单机为空空ckptcheckpoint 前缀名由conf_path文件名自动推导如transformer_mtl_noam动态其中ckpt由脚本自动生成ckpt$(basename ${conf_path} | awk -F. {print $1})因此除ckpt外其余局部变量都可通过命令行覆盖。例如bash run.sh --gpus 0,1 --avg_num 5训练产物统一存放在exp/${ckpt}/下例如exp/transformer_mtl_noam/checkpoints。四、Stage 0数据处理三步走Stage 0 对应run.sh中if [ ${stage} -le 0 ] [ ${stop_stage} -ge 0 ]; then # prepare data bash ./local/data.sh --data_dir ${data_path} || exit -1 fi单独运行可用bash run.sh --stage 0 --stop_stage 0或手动逐条执行source path.sh bash ./local/data.sh数据处理的实际逻辑在 local/data.sh 中其内部又分为 4 个阶段1. 生成 raw manifest内部 stage -1调用 dataset/ted_en_zh/ted_en_zh.py 从原始语料生成data/manifest.{train,dev,test}.raw。从该脚本源码可以看到数据集结构约定训练集音频位于train-split/train-segment文本标签为En-Zh/train.en-zhdev 集使用test-segment/tst2010测试集使用test-segment/tst2015文本文件每行以\t分隔audio_id、英文转写transcription与中文翻译translation三列音频小于 30000 字节的样本会被过滤保证数据质量。脚本逐行读取后用 soundfile 计算音频时长输出 JSON 格式 manifest每行一条记录包含音频路径、转写文本、翻译文本与时长。需要特别注意的是TED_En-Zh 数据集需要自行下载解压README 中给出网盘链接目录结构须符合上述约定否则脚本会报错退出。2. 计算 CMVN内部 stage 0python3 ${MAIN_ROOT}/utils/compute_mean_std.py \ --manifest_pathdata/manifest.train.raw \ --num_samples-1 \ --spectrum_typefbank \ --feat_dim80 \ --delta_deltafalse \ --sample_rate16000 \ --stride_ms10 \ --window_ms25 \ --use_dB_normalizationFalse \ --num_workers$(nproc) \ --output_pathdata/mean_std.json该步骤基于训练集统计 fbank 特征的均值与标准差输出data/mean_std.json供后续特征归一化cmvn_json使用。参数含义feat_dim80即 80 维 fbankstride_ms10帧移 10mswindow_ms25窗长 25msnum_samples-1表示使用全部样本。3. 构建词表内部 stage 1python3 ${MAIN_ROOT}/utils/build_vocab.py \ --unit_type spm \ --spm_vocab_size8000 \ --spm_mode unigram \ --spm_model_prefix data/lang_char/bpe_unigram_8000 \ --spm_character_coverage 1. \ --vocab_pathdata/lang_char/vocab.txt \ --text_keys text \ --manifest_pathsdata/manifest.train.raw词表采用 SentencePiece 子词单元SPMnbpe8000为子词数量bpemodeunigram指定 unigram 分词算法character_coverage1.0表示覆盖全部字符。产物包括 SPM 模型文件与data/lang_char/vocab.txt词表文件。4. 格式化 manifest内部 stage 2对 train/dev/test 三个集合并行执行利用与wait并发python3 ${MAIN_ROOT}/utils/format_data.py \ --cmvn_path data/mean_std.json \ --unit_type spm \ --spm_model_prefix data/lang_char/bpe_unigram_8000 \ --vocab_pathdata/lang_char/vocab.txt \ --manifest_pathdata/manifest.${set}.raw \ --output_pathdata/manifest.${set}format_data.py会把文本转成 token id、计算输入/输出长度过滤字段并嵌入 CMVN 信息最终生成可直接供训练使用的data/manifest.{train,dev,test}。根据 RESULTS.md处理后的数据集时长分布如下数据子集时长范围秒data/manifest.train0.942 ~ 60data/manifest.dev1.151 ~ 39data/manifest.test1.1 ~ 42.746五、Stage 1模型训练Stage 1 对应run.sh中if [ ${stage} -le 1 ] [ ${stop_stage} -ge 1 ]; then # train model, all ckpt under exp dir CUDA_VISIBLE_DEVICES${gpus} ./local/train.sh ${conf_path} ${ckpt} ${ips} fi训练入口为 local/train.sh其核心逻辑根据CUDA_VISIBLE_DEVICES中逗号数量计算ngpu若ngpu 0纯 CPU直接执行python3 -u ${BIN_DIR}/train.py否则通过python3 -m paddle.distributed.launch --gpus...启动多卡分布式训练--output exp/${ckpt_name}指定输出目录--seed 0固定随机种子种子非 0 时会开启FLAGS_cudnn_deterministic保证可复现注释特别提醒seed may break model convergence。常见的执行方式# 数据处理 训练GPU bash run.sh --stage 0 --stop_stage 1 # 或仅 CPU 手动执行 source path.sh bash ./local/data.sh CUDA_VISIBLE_DEVICES ./local/train.sh conf/transformer_mtl_noam.yaml transformer_mtl_noam训练完成后每个 epoch 的 checkpoint 都会保存在exp/transformer_mtl_noam/checkpoints/下。训练配置解读transformer_mtl_noam.yaml默认训练配置为 conf/transformer_mtl_noam.yaml它也是该示例与纯 Transformer 配置conf/transformer.yaml的关键差异所在。核心分段如下数据与 DataLoader参数值说明train_manifest/dev_manifest/test_manifestdata/manifest.train等各集合 manifest 路径min_input_len/max_input_len0.05 / 30.0秒输入音频时长过滤min_output_len/max_output_len0.0 / 400.0token输出序列长度过滤min_output_input_ratio/max_output_input_ratio0.01 / 20.0输出/输入长度比过滤vocab_filepathdata/lang_char/vocab.txt词表路径unit_type/spm_model_prefixspm/data/lang_char/bpe_unigram_8000子词单元类型与 SPM 模型batch_size16批大小maxlen_in/maxlen_out5 / 150超长样本自动降批的阈值raw_wav/spectrum_type/feat_dimTrue / fbank / 80直接读 wav 并在线提 80 维 fbankstride_ms/window_ms10.0 / 25.0帧移/窗长sortagrad/shuffle_methodTrue / batch_shuffle首轮按时长排序、批级洗牌num_workers2数据加载进程数网络结构Transformer Encoder-Decoderencoder: transformer encoder_conf: output_size: 256 # attention 维度 attention_heads: 4 linear_units: 2048 # FFN 隐层单元数 num_blocks: 12 # 编码器层数 dropout_rate: 0.1 positional_dropout_rate: 0.1 attention_dropout_rate: 0.0 input_layer: conv2d # 编码器输入层conv2d / conv2d6 / conv2d8 normalize_before: true decoder: transformer decoder_conf: attention_heads: 4 linear_units: 2048 num_blocks: 6 dropout_rate: 0.1 positional_dropout_rate: 0.1 self_attention_dropout_rate: 0.0 src_attention_dropout_rate: 0.0混合 CTC/Attention 多任务MTL——本示例核心model_conf: asr_weight: 0.5 # ASR 辅助任务损失权重 ctc_weight: 0.3 # CTC 损失权重 lsm_weight: 0.1 # label smoothing 权重 length_normalized_loss: false与 conf/transformer.yamlasr_weight: 0.0、ctc_weight: 0.0纯翻译模型相比transformer_mtl_noam.yaml通过asr_weight0.5引入英文转写ASR作为辅助任务、ctc_weight0.3引入 CTC 对齐损失使模型在解码中文翻译的同时保留对源语言语音的强建模能力——这正是 README 结果表中TransformerASR MTL名称的由来也是提升短句/低资源场景翻译质量的常用手段。训练策略n_epoch: 120 accum_grad: 2 # 梯度累积步数 global_grad_clip: 5.0 # 全局梯度裁剪 optim: adam optim_conf: lr: 2.5 # Noam 调度下的峰值学习率 weight_decay: 1.0e-06 scheduler: noam scheduler_conf: warmup_steps: 25000 # warmup 步数 lr_decay: 1.0 checkpoint: kbest_n: 50 # 保留验证最优的 50 个 latest_n: 5 # 保留最近 5 个scheduler: noam对应 README 中ckpt前缀transformer_mtl_noam的 noam 含义——Noam 学习率调度先线性 warmup 后按步数衰减warmup_steps25000是该调度的核心超参。六、Stage 2Top-k 模型平均训练完成后需要从多个 checkpoint 中挑选或合成最终模型。每个 epoch 都会保存 checkpoint因此既可以依据验证损失直接挑选最优模型也可以对 Top-k 个模型的参数做平均以提升鲁棒性。Stage 2 对应if [ ${stage} -le 2 ] [ ${stop_stage} -ge 2 ]; then # avg n best model avg.sh best exp/${ckpt}/checkpoints ${avg_num} fiavg.sh位于仓库根目录utils/下由path.sh的PATH导出无需写全路径。它支持两种选择策略avg.sh best exp/transformer_mtl_noam/checkpoints 5按验证指标挑选最好的 k 个模型求平均avg.sh latest exp/transformer_mtl_noam/checkpoints 5取最近保存的 k 个模型求平均。平均结果保存为exp/${ckpt}/checkpoints/avg_${avg_num}如avg_5。组合执行bash run.sh --stage 0 --stop_stage 2 # 或 CPU 手动执行 source path.sh bash ./local/data.sh CUDA_VISIBLE_DEVICES ./local/train.sh conf/transformer_mtl_noam.yaml transformer_mtl_noam avg.sh best exp/transformer_mtl_noam/checkpoints 5七、Stage 3模型测试与解码Stage 3 对平均后的模型做解码评估if [ ${stage} -le 3 ] [ ${stop_stage} -ge 3 ]; then # test ckpt avg_n CUDA_VISIBLE_DEVICES0 ./local/test.sh ${conf_path} ${decode_conf_path} exp/${ckpt}/checkpoints/${avg_ckpt} || exit -1 fi注意 run.sh 中测试使用的是decode_conf_pathconf/tuning/decode.yamlREADME 手工命令中直接写入了 decode 配置路径二者等价。测试入口 local/test.sh 会遍历fullsentence解码类型调用${BIN_DIR}/test.py生成结果文件${ckpt_prefix}.fullsentence.rsl。全流程运行bash run.sh --stage 0 --stop_stage 3 # 或 CPU 手动执行 source path.sh bash ./local/data.sh CUDA_VISIBLE_DEVICES ./local/train.sh conf/transformer_mtl_noam.yaml transformer_mtl_noam avg.sh latest exp/transformer_mtl_noam/checkpoints 5 CUDA_VISIBLE_DEVICES ./local/test.sh conf/transformer_mtl_noam.yaml conf/tuning/decode.yaml exp/transformer_mtl_noam/checkpoints/avg_5解码配置解读decode.yamlconf/tuning/decode.yaml 控制解码与评测行为参数值说明batch_size1解码批大小error_rate_typechar-bleu评测指标字符级 BLEUST 任务的常用指标decoding_methodfullsentence支持fullsentence/simultaneous流式/同声翻译beam_size10集束搜索宽度word_reward0.7集束搜索中词奖励maxlenratio0.3输出最大长度相对输入的比率decoding_chunk_size-10 表示整句解码0 表示按固定块大小解码0 仅用于训练num_decoding_left_chunks-1流式解码时左侧上下文块数simulate_streamingFalse是否模拟流式推理decoding_chunk_size与num_decoding_left_chunks的存在说明该配置同时兼容离线整句解码与流式simultaneous解码两种模式本示例默认走整句解码。参考性能已发布模型根据 README 与 RESULTS.mdTransformer 架构的参考结果如下模型ParamsConfigChar-BLEUTransformerASR MTL50.26Mconf/transformer_joint_noam.yaml17.38注结果表引用的transformer_joint_noam.yaml与目录内transformer_mtl_noam.yaml属同类 MTL 配置读者可对比二者差异理解多任务权重的调节空间。该数字为仓库记录的参考指标具体复现结果会随数据、随机种子与训练细节浮动。八、特征预处理与数据增强preprocess.yaml训练时在线特征提取由 conf/preprocess.yaml 定义transformer_mtl_noam.yaml中通过preprocess_config引用其 pipeline 依次为fbank_kaldi从 PCM 提取 kaldi 风格 fbankfs16000、n_mels80、n_shift16010ms 帧移、win_length40025ms 窗长、dither0.1cmvn_json加载data/mean_std.json做均值方差归一化time_warpSpecAugment 之一max_time_warp5时间轴随机扭曲freq_mask频域掩蔽F30、n_mask2time_mask时域掩蔽T40、n_mask2。后三个步骤合起来即 SpecAugment 数据增强通过随机遮蔽频谱区域提升模型泛化能力replace_with_zero: false表示用均值而非零值填充掩蔽区域inplace: true表示在原特征上直接修改。九、小结与扩展examples/ted_en_zh/st0展示了 PaddleSpeech 端到端语音翻译实验的标准范式数据管线raw manifest → CMVN → SPM 词表 → 格式化 manifest→ 分布式训练Noam 调度 CTC/Attention/ASR 多任务→ Top-k 平均 → 整句解码评测Char-BLEU。掌握该示例后你可以通过修改conf_path切换纯 Transformertransformer.yaml与 MTL 版本transformer_mtl_noam.yaml对比多任务学习对翻译质量的影响调整model_conf中的asr_weight/ctc_weight探索任务权重配比借助 local/export.shstage 51将平均模型导出为.jit静态图接入 PaddleSpeech 推理服务将该流程迁移到其他双语语料只需替换dataset/ted_en_zh/ted_en_zh.py对应的 manifest 生成脚本与数据目录结构。相关可深入阅读的仓库资源utils/compute_mean_std.py、utils/build_vocab.py、utils/format_data.py、paddlespeech/s2t/exps/u2_stBIN_DIR指向的训练/测试入口所在目录。赞分享人工智能语音音频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点击查看免费下载相关推荐Teable无代码数据库终极指南5分钟从零到精通的开源数据管理平台Teable无代码数据库终极指南5分钟从零到精通的开源数据管理平台 Teable是一款革命性的开源无代码数据库将电子表格的易用性与专业数据库的强大功能完美结人工智能语音音频CesiumJS 导出从场景截图到数据导出的保姆级教程CesiumJS 导出从场景截图到数据导出的保姆级教程 你用 CesiumJS 搭好的三维场景关浏览器就没了。这篇讲清 CesiumJS 导出的两条路场景人工智能语音音频NLP媒体生成easy-vibe 课程实战用 Jobs to Be Done 挖掘用户真正想完成的事从模糊想法到可验证的 AI 产品方向easy vibe 课程实战用 Jobs to Be Done 挖掘用户真正想完成的事从模糊想法到可验证的 AI 产品方向 本篇文章源自 easy vibe人工智能语音音频NLP媒体生成上一篇7B轻量AI终极工具Granite-4.0-H-Tiny企业级实测下一篇专业级NDS模拟器melonDS安卓版深度使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Spark电商用户行为分析系统:会话切分、漏斗转化与品类排行实战 简介:这份Spark电商用户行为分析系统源码与完整文档,面向计算机相关专业的毕业生、课程设计参与者及希望积累大数据实战经验的学习者,可直接用于毕业设计、课程作业或项目实践。系统基于Spark分布式计算架构,支持实时分析与离线计… · 2026/9/25 1:47:45
FlexGen 仓库中的 Performer 高效注意力微调实战:基于 Flax/JAX 的掩码语言模型训练指南 推理引擎大模型 【免费下载链接】FlexGen Running large language models on a single GPU for throughput-oriented scenarios. 项目地址: https://gitcode.com/gh_mirrors/fl/FlexGen 点击查看 免费下载 导读
本文围绕 FlexGen 仓库内置的 Hugging Face Transfo… · 2026/9/25 1:47:45
KITTI数据集适配LIO-SAM:参数调整与代码修改实战指南 简介:这份资源是面向SLAM算法学习者与自动驾驶感知研究者的LIO-SAM修改版工程包,针对KITTI数据集做了专门适配,可解决原始LIO-SAM在KITTI数据格式、传感器同步与城市道路场景下定位漂移等问题。压缩包共44个文件、约76.06MB,包含c… · 2026/9/25 1:47:45
南京企业展厅一体化省心服务商合作案例盘点 苏州市墨堂展览设计有限公司,是扎根江浙沪、聚焦50-200万预算中型企业展厅的一体化服务商,核心为新能源、储能、智能制造、芯片半导体等技术型工业企业提供从前期策划到落地交付的全链条展厅服务。墨堂设计成立于2018年,团队配备展厅策划、空… · 2026/9/25 2:16:08
AIMLInterviews 目标检测指南:两阶段与单阶段检测器原理、架构对比与 mAP 评估体系详解 示例工程教程人工智能 【免费下载链接】AIMLInterviews This repo is meant to serve as a guide for Machine Learning/AI technical interviews. 项目地址: https://gitcode.com/gh_mirrors/ma/AIMLInterviews 点击查看 免费下载 本指南是 AIMLInterviews 项目 … · 2026/9/25 2:15:49
RocketRide Fingerprinter 节点深度解析:确定性内容指纹、去重与索引前身份验证 【免费下载链接】rocketride-server High-performance AI pipeline engine with a C core and 50 Python-extensible nodes. Build, debug, and scale LLM workflows with 13 model providers, 8 vector databases, and agent orchestration, all from your IDE. Includes VS C… · 2026/9/25 2:15:49
创维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