尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

PaddleSpeech LibriSpeech DeepSpeech2 非流式 ASR:RESULTS.md 基准结果解读与完整复现指南

发布时间:2026/9/25 5:06:14

资讯中心
01
ARTICLE

PaddleSpeech LibriSpeech DeepSpeech2 非流式 ASR:RESULTS.md 基准结果解读与完整复现指南

PaddleSpeech LibriSpeech DeepSpeech2 非流式 ASR:RESULTS.md 基准结果解读与完整复现指南
人工智能语音音频【免费下载链接】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/librispeech/asr0 示例LibriSpeech 上的 DeepSpeech2 离线/在线 ASR展开核心围绕 RESULTS.md 中记录的非流式Non-StreamingDeepSpeech2 基准结果结合run.sh全流程脚本与deepspeech2.yaml等配置文件讲解如何从数据处理、模型训练、Top-k 平均、WER 评测到静态图导出与单音频推理完整复现这些结果。读完本文你将掌握 PaddleSpeech 中 DeepSpeech2 示例从零到一的执行路径、各配置项的实际含义以及不同版本与配置U2 Data pipeline、SpecAugment、fbank161 特征对 test-clean WER 的影响。RESULTS.md 中的 DeepSpeech2 非流式基准结果RESULTS.md 是本示例的核心结果档案它记录了 DeepSpeech2 非流式模型在 LibriSpeech test-clean 测试集上、横跨多个 PaddleSpeech 发布版本的评测数据ModelParamsreleaseConfigTest setLossWERDeepSpeech2113.96Mr1.0.1conf/deepspeech2.yaml U2 Data pipline and spec aug fbank161test-clean10.760696220397950.046700DeepSpeech242.96M2.2.0conf/deepspeech2.yaml spec_augtest-clean14.491908070.067283DeepSpeech242.96M2.1.0conf/deepspeech2.yamltest-clean15.1844673156738280.072154DeepSpeech242.96M2.0.0conf/deepspeech2.yamltest-clean-0.073973DeepSpeech242.96M1.8.5-test-clean-0.074939对这张结果表可以从三个维度解读其含义版本演进带来的 WER 提升从 1.8.5 的 7.49% 逐步下降到 2.2.0 的 6.73%说明 PaddleSpeech 在数据 pipeline、预处理与训练细节上持续优化了 DeepSpeech2 在 LibriSpeech 上的表现。SpecAugment 的显著增益2.1.0无 SpecAugmentWER 7.22%与 2.2.0配置 spec_augWER 6.73%之间的差异主要由训练期频谱增强带来。这一增强在 conf/preprocess.yaml 中体现为time_warp、freq_mask、time_mask三个级联处理步骤即 SpecAugment 的标准实现。r1.0.1 版本的旗舰配置参数规模最大113.96M对应双向 RNN 与更大容量网络、配合 U2 Data pipeline、SpecAugment 与 161 维 fbank 特征fbank161取得了表中最低的 WER 4.67%。这也是当前仓库 conf/deepspeech2.yaml 所沿用的数据处理与特征设定方向。需要说明表格中的 Loss 与 WER 均为对应发布版本在 test-clean 上的实测值不同版本间因模型结构、预处理与训练细节差异数值不可直接横向等价对比但可作为复现时的参照基准。示例目录结构与执行骨架asr0示例的完整文件布局如下run.sh总控脚本通过stage/stop_stage控制执行阶段path.sh环境变量初始化MAIN_ROOT、PYTHONPATH、BIN_DIR等local/data.sh、local/train.sh、local/test.sh、local/export.sh、local/test_wav.sh各阶段实现脚本conf/deepspeech2.yaml离线模型配置同目录还有deepspeech2_online.yaml对应在线模型conf/preprocess.yaml特征提取与增强配置conf/tuning/decode.yaml解码beam search 语言模型融合配置。run.sh定义了 7 个阶段README.md 给出了每个阶段的职责对照StageFunction0处理数据下载数据集、计算训练集 CMVN、生成词表、生成 train/dev/test 的 manifest 文件1训练模型2对 top-k 个模型参数求平均得到最终模型k1 表示直接选最优模型3测试最终模型性能4导出静态图模型5测试静态图模型6对单个音频文件做推理脚本支持任意阶段区间组合例如只跑数据准备bash run.sh --stage 0 --stop_stage 0或连贯执行 stage 2 与 stage 3bash run.sh --stage 2 --stop_stage 3run.sh中可覆盖的本地变量包括gpusGPU 列表置空表示仅用 CPU、stage/stop_stage起止阶段、conf_path模型配置路径、decode_conf_path解码配置路径、avg_numTop-k 平均的 k 值、audio_filestage 6 推理的音频路径。例如bash run.sh --gpus 0,1 --avg_num 1所有脚本执行前必须先加载环境source path.sh source ${MAIN_ROOT}/utils/parse_options.sh其中parse_options.sh位于 utils/parse_options.sh它为 shell 脚本提供--variable value形式的参数解析能力run.sh中的gpus0,1,2,3等默认值均可通过命令行覆盖。Stage 0数据下载、CMVN、词表与 manifest 生成数据准备由local/data.sh完成其内部按子阶段依次执行下载并生成原始 manifest调用 dataset/librispeech/librispeech.py以--manifest_prefixdata/manifest输出各子集 manifest再通过拼接得到manifest.train.rawtrain-clean-100 train-clean-360 train-other-500、manifest.dev.rawdev-clean dev-other与manifest.test.rawtest-clean test-other计算 CMVN 统计量调用 utils/compute_mean_std.py抽取 2000 个样本计算 161 维 fbank 的均值与标准差输出data/mean_std.json作为后续cmvn_json归一化的依据构建词表调用 utils/build_vocab.py按字符--unit_type char统计训练集得到data/lang_char/vocab.txt格式化 manifest调用 utils/format_data.py将 token 化、CMVN 归一化信息写入最终 manifest。数据处理完成后data/目录结构如下data/ |-- dev.meta |-- lang_char | -- vocab.txt |-- manifest.dev |-- manifest.dev.raw |-- manifest.test |-- manifest.test.raw |-- manifest.train |-- manifest.train.raw |-- mean_std.json |-- test.meta -- train.meta若只想单独执行数据准备可直接运行source path.sh bash ./local/data.shStage 1DeepSpeech2 模型训练训练入口为 local/train.sh它按CUDA_VISIBLE_DEVICES中的 GPU 数量决定单机单卡还是分布式训练无 GPU 时直接调用python3 -u ${BIN_DIR}/train.pyBIN_DIR由 path.sh 指向paddlespeech/s2t/exps/deepspeech2/bin多卡时通过python3 -m paddle.distributed.launch --gpus...启动并支持--ips传入多机地址列表。脚本同时设置了两个重要的运行环境变量FLAGS_cudnn_deterministicTrue当 seed 非 0 时启用保证可复现与FLAGS_allocator_strategynaive_best_fit规避 GPU 显存不足时可能导致的训练挂起。训练所用模型配置集中在 conf/deepspeech2.yaml可划分为四大部分Datatrain_manifest/dev_manifest/test_manifest指向 manifest 文件min_input_len/max_input_len30 秒上限、min_output_len/max_output_len、min_output_input_ratio/max_output_input_ratio用于过滤过长或比例失衡的样本。Dataloadervocab_filepath指向词表unit_type: char表明以字符为建模单元preprocess_config: conf/preprocess.yaml挂接特征处理链feat_dim: 161对应 161 维 fbank 特征window_ms: 25.0/stride_ms: 10.0是经典的 25ms 窗长、10ms 帧移batch_size: 64当输入超过maxlen_in: 512或输出超过maxlen_out: 150时自动缩减 batchnum_workers: 8控制数据加载线程数。Network Architecturenum_conv_layers: 2两层卷积下采样、num_rnn_layers: 55 层 RNN、rnn_layer_size: 1024隐层 1024、rnn_direction: bidirect双向、num_fc_layers: 0、use_gru: False使用 LSTM、blank_id: 0。这些参数与模型实现 paddlespeech/s2t/models/ds2/deepspeech2.py 中DeepSpeech2Model的构造参数一一对应——实现里rnn_direction bidirect时每层输出维度翻倍为2 * rnn_size这也是 113.96M 与 42.96M 参数量的主要来源之一。Trainingn_epoch: 15、accum_grad: 1、lr: 5.0e-4、lr_decay: 0.93指数衰减、weight_decay: 1.0e-6、global_grad_clip: 5.0checkpoint下kbest_n: 50与latest_n: 5控制保留的最优/最新 checkpoint 数量。执行训练stage 0 1bash run.sh --stage 0 --stop_stage 1仅 CPU 环境的等价命令source path.sh bash ./local/data.sh CUDA_VISIBLE_DEVICES ./local/train.sh conf/deepspeech2.yaml deepspeech2Stage 2Top-k 模型平均训练过程中每个 epoch 都会保存 checkpoint保存在exp/deepspeech2/checkpoints/下。为获得用于测试与推理的最终模型既可以选择验证集 loss 最低的最优模型也可以对 top-k 个模型参数做平均avg.sh best exp/deepspeech2/checkpoints 1avg.sh位于 utils/avg.sh在 path.sh 中已被加入PATH。avg_num越大平均的模型越多avg_num1等价于直接选取最优模型。平均后的模型路径形如exp/deepspeech2/checkpoints/avg_5。Stage 3WER 评测test-clean评测由 local/test.sh 完成流程为下载英文语言模型 → 格式化参考文本 → 调用test.py解码 → 格式化假设文本 → 用 utils/compute-wer.py 计算字符级 WERpython3 ${MAIN_ROOT}/utils/compute-wer.py --char1 --v1 \ data/manifest.test-clean.text ${ckpt_prefix}.rsl.text ${ckpt_prefix}.error解码行为由 conf/tuning/decode.yaml 控制其关键参数即 RESULTS.md 中 WER 数值背后的推理设定decoding_method: ctc_beam_search使用 CTC beam search 而非贪心解码beam_size: 500搜索束宽 500lang_model_path指向 KenLM 格式英文语言模型由local/download_lm_en.sh下载alpha: 1.9/beta: 0.3语言模型对数概率的插值权重与词惩罚cutoff_prob: 1.0/cutoff_top_n: 40束剪枝策略num_proc_bsearch: 8beam search 并行进程数error_rate_type: wer评测指标为 WER。完整跑通训练与评测的命令bash run.sh --stage 0 --stop_stage 3test.sh还内置了 stage 101 分支通过 utils/format_rsl.py 生成 sclite 格式文件并调用sclite工具做细粒度错误分析。Stage 4/5静态图导出与离线评测如果需要将动态图模型转换为可供部署的静态图Paddle 的jit格式使用 stage 4source path.sh ./local/export.sh deepspeech2.yaml exp/deepspeech2/checkpoints/avg_1 exp/deepspeech2/checkpoints/avg_1.jit offline其内部调用 paddlespeech/s2t/exps/deepspeech2/bin/export.py底层通过DeepSpeech2ExportTester见 paddlespeech/s2t/exps/deepspeech2/model.py完成动态图转静态图并执行paddle.jit.save。导出的静态图可继续用 stage 5 做一致性评测CUDA_VISIBLE_DEVICES ./local/test_export.sh conf/deepspeech2.yaml exp/deepspeech2/checkpoints/avg_1.jit offlineStage 6单音频文件推理训练完毕后可对单个 16kHz 采样率的 wav 文件做端到端识别CUDA_VISIBLE_DEVICES ./local/test_wav.sh conf/deepspeech2.yaml conf/tuning/decode.yaml exp/deepspeech2/checkpoints/avg_1 data/demo_002_en.wavtest_wav.sh会自动下载演示音频demo_002_en.wav与语言模型再调用test_wav.py完成特征提取、CTC beam search 解码与结果输出适合快速验证训练所得模型的实际效果。从源码看 fbank161 特征与 SpecAugment 的实现RESULTS.md 中 r1.0.1 条目特别标注了 U2 Data pipline and spec aug fbank161这三项在配置中的落点分别是fbank161conf/preprocess.yaml 中fbank_kaldi处理器设置fs: 16000、n_mels: 161、n_shift: 160即 10ms、win_length: 400即 25ms、dither: 0.1输出与feat_dim: 161严格对应随后通过cmvn_json读取data/mean_std.json做全局均值方差归一化SpecAugment同一配置中以time_warpmax_time_warp: 5PIL 模式、freq_maskF: 30n_mask: 2replace_with_zero: false即用均值填充与time_maskT: 40n_mask: 2三个级联变换实现这也是 2.2.0 相对 2.1.0 在 test-clean 上 WER 下降的直接原因U2 Data pipeline指沿用 U2 系列模型的 manifest/CMVN/词表数据处理链即data.sh中compute_mean_std.py → build_vocab.py → format_data.py的标准流程。模型结构侧deepspeech2.py 中DeepSpeech2Model以Conv2dSubsampling4Pure对 161 维特征做 4 倍时间下采样随后进入多层双向 LSTMrnn_directionbidirect时每层输出宽度为2 * rnn_size再经全连接层映射到词表维度输出 CTC 概率与deepspeech2.yaml中的网络参数逐项对应。复现结果时的注意事项版本对齐RESULTS.md 中 4.67% 的最优结果对应 r1.0.1 的 113.96M 大参数模型若使用当前仓库默认配置42.96M 量级合理参照目标是 2.2.0 的 6.73%数据完整性LibriSpeech 需下载全部 7 个子集--full_downloadTruetest-clean 结果依赖完整 manifest语言模型评测前必须成功执行local/download_lm_en.sh否则 beam search 无法进行语言模型融合WER 会明显偏高硬件前提deepspeech2.yaml的batch_size: 64、5 层双向 1024 隐层在单卡上较吃显存可通过减小 batch_size 或改用 conf/deepspeech2_online.yaml 的在线模型配置适配资源seed 与确定性train.sh默认seed0不设置确定性标志如需严格复现可显式传入非 0 seed 以启用FLAGS_cudnn_deterministic。通过上述 7 个 stage 的完整链路你可以基于 examples/librispeech/asr0 从零复现 RESULTS.md 中记录的 test-clean WER并将最终模型导出为可供部署的静态图。赞分享人工智能语音音频【免费下载链接】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点击查看免费下载相关推荐一文读懂 GeoJSON.io把散落的地图数据变成一张可用地图一文读懂 GeoJSON.io把散落的地图数据变成一张可用地图 GeoJSON.io 是一个运行在浏览器里的地理数据编辑工具它的核心价值是把创建、查看、人工智能语音音频深度解析tchMaterial-parser如何重塑教育资源获取体验深度解析tchMaterial parser如何重塑教育资源获取体验 在数字化教育浪潮中国家中小学智慧教育平台已成为师生获取优质教育资源的重要渠道。然而网人工智能语音音频PaddleSpeech DeepSpeech2 模型深度解析流式/非流式架构、数据准备与训练评测全流程PaddleSpeech DeepSpeech2 模型深度解析流式/非流式架构、数据准备与训练评测全流程 本文以 PaddleSpeech 官方模型文档为核心人工智能语音音频上一篇告别混乱代码.NET开发者必备的Visual Studio JS美化方案下一篇python-mini-projects 之 Telegram Bot 实战基于 python-telegram-bot 的简单聊天机器人从安装到运行创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。