首页/新闻资讯/正文详情

PaddleSpeech 语音识别(ASR)Demo 实战:命令行与 Python API 快速实现语音转文本

发布时间:2026/9/23 1:33:14 来源:云帆数科 栏目:资讯中心
PaddleSpeech 语音识别(ASR)Demo 实战:命令行与 Python API 快速实现语音转文本
PaddleSpeech 语音识别ASRDemo 实战命令行与 Python API 快速实现语音转文本【免费下载链接】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导读语音识别Automatic Speech Recognition, ASR是用计算机程序将语音自动转录为文本的技术也是语音交互、字幕生成、会议转写等应用的核心环节。本篇文章基于 PaddleSpeech 仓库中的 speech_recognition Demo 文档完整讲解如何通过一条paddlespeech asr命令或几行 Python 代码把给定的 WAV 音频文件快速转成文本并覆盖中文、英文、中英混合Code-Switch以及语音识别 标点恢复组合流水线等实战场景。读完本文你将掌握 ASRExecutor 的完整调用方式、全部命令行参数的含义与底层实现、预训练模型的选择策略以及音频输入格式与采样率的处理细节。一、Demo 概览与能力边界PaddleSpeech 是一个开源的语音处理工具包提供自监督学习模型、流式/非流式 ASR含标点恢复、流式 TTS、说话人验证、语音翻译与关键词唤醒等能力。本 Demo 聚焦于其中最基本的离线语音识别能力输入单个.wav音频文件要求采样率与模型一致默认 16k输出识别出的文本字符串调用方式命令行paddlespeech asr或 Python 中实例化ASRExecutor。Demo 的核心执行逻辑集中在 paddlespeech/cli/asr/infer.py 中的ASRExecutor类它继承自 paddlespeech/cli/executor.py 的BaseExecutor遵循统一的参数解析 → 模型初始化 → 输入校验 → 预处理 → 推理 → 后处理流水线。命令行入口由 paddlespeech/cli/entry.py 负责分发将paddlespeech asr ...解析并路由到ASRExecutor.execute()。二、环境安装三种方式任选Demo 文档要求先完成 PaddleSpeech 的安装详细步骤见 安装文档。安装方式按难度分为三档方式功能支持系统简单使用 PaddleSpeech 命令行功能在 AI Studio 上体验Linux、Mac不支持 M1、Windows中等支持主要功能如使用 examples 中的模型、训练自己的模型Linux、Mac不支持训练、Windows不支持训练困难全部功能含结合 Kaldi 的 CTC 解码、语言模型训练、强制对齐等Ubuntu简单方式的核心步骤以 conda 环境为例conda install -y -c conda-forge sox libsndfile bzip2 pip install pytest-runner -i https://pypi.tuna.tsinghua.edu.cn/simple pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple pip install paddlespeech -i https://pypi.tuna.tsinghua.edu.cn/simple两个常见注意事项官方文档明确说明若下载nltk_data失败多半是网络原因可手动下载官方提供的 nltk_data 压缩包解压到${HOME}目录若提示paddlespeech-ctcdecoders这个 Python 包没有找到无需担心该包是非必须的仅影响 DeepSpeech2 系列模型的解码不影响其他模型推理。三、准备输入WAV 文件与采样率约定本 Demo 的输入必须是一个.wav文件且采样率必须与所选模型保持一致预训练模型采样率统一为 16ksample_rate参数可选 8000 或 16000。Demo 文档提供了三个示例音频可以直接下载wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav https://paddlespeech.cdn.bcebos.com/PaddleAudio/ch_zh_mix.wav这三个文件分别用于中文、英文、中英混合Code-Switch识别演示。如果输入音频采样率与模型不一致程序会给出提示并询问是否自动重采样——详见后文--yes参数的说明。四、命令行快速上手推荐安装完成后直接使用paddlespeech asr即可完成识别。Demo 文档给出了四类典型用法# 中文使用默认模型 conformer_wenetspeech paddlespeech asr --input ./zh.wav -v # 英文 paddlespeech asr --model transformer_librispeech --lang en --input ./en.wav -v # 中英混合Code-Switch paddlespeech asr --model conformer_talcs --lang zh_en --codeswitch True --input ./ch_zh_mix.wav -v # 中文 ASR 标点恢复管道组合 paddlespeech asr --input ./zh.wav -v | paddlespeech text --task punc -v其中-v用于显示 logger 日志信息如果不想看到日志去掉-v即可。最后一条命令把 ASR 的输出通过管道交给paddlespeech text --task punc标点恢复任务做二次处理一次性得到带标点的完整文本这正是 PaddleSpeech 命令行可以自由组合任务的一大优势。4.1 查看帮助paddlespeech asr --help4.2 命令行参数详解Demo 文档列出的核心参数如下结合 infer.py 中的 argparse 定义 可确认它们的默认值与可选范围参数必填默认值说明--input是无用于识别的音频文件.wav--model否conformer_wenetspeechASR 模型类型可选值来自预训练模型注册表--lang否zh模型语言可选zh/en/zh_en--codeswitch否False是否启用中英语言转换仅zh_en模型可用--sample_rate否16000模型音频采样率可选8000/16000--config否NoneASR 任务配置文件为None时使用预训练模型自带默认配置--ckpt_path否None模型参数文件为None时自动下载预训练权重--yes否False设置后默认同意程序的所有请求包括自动转换输入音频采样率不再交互询问--device否当前 paddlepaddle 默认 device执行推理的设备CPU/GPU--verbose否关闭设置后显示 logger 信息除文档列出的参数外从源码还可以看到三个额外的实用参数--decode_method解码方式可选ctc_greedy_search、ctc_prefix_beam_search、attention、attention_rescoring默认attention_rescoring仅 transformer/conformer 类模型支持见 infer.py--rtf打印实时率Real-time FactorRTF 任务耗时 / 音频时长用于评估推理速度见 infer.py-d/--job_dump_result将批量任务结果保存到*.job.done文件见 executor.py。4.3 输出示例# 中文 [2021-12-08 13:12:34,063] [ INFO] [utils.py] [L225] - ASR Result: 我认为跑步最重要的就是给我带来了身体健康 # 英文 [2022-01-12 11:51:10,815] [ INFO] - ASR Result: i knocked at the door on the ancient side of the building五、Python API 调用不想用命令行时可以用几行 Python 代码完成同样的识别。Demo 文档给出的示例import paddle from paddlespeech.cli.asr import ASRExecutor asr_executor ASRExecutor() text asr_executor( modelconformer_wenetspeech, langzh, sample_rate16000, configNone, # Set config and ckpt_path to None to use pretrained model. ckpt_pathNone, audio_file./zh.wav, force_yesFalse, devicepaddle.get_device()) print(ASR Result: \n{}.format(text))输出ASR Result: 我认为跑步最重要的就是给我带来了身体健康从源码看ASRExecutor.__call__()infer.py的完整调用链为paddle.set_device(device)设置推理设备_init_from_path(...)根据model lang codeswitch sample_rate拼接出资源 tag如conformer_wenetspeech-zh-16k从预训练模型注册表加载配置与权重若指定了config/ckpt_path则加载本地文件ckpt_path会自动补.pdparams后缀_check(...)校验音频文件存在性、格式、时长默认单次输入时长上限 50 秒与采样率若采样率不匹配且force_yesFalse会进入交互式询问Y/Npreprocess(...)用soundfile读取音频PCM16必要时做 16bit↔32bit 转换与librosa.resample重采样再按preprocess_config提取 FBank 特征infer(...)在paddle.no_grad()下执行模型解码DeepSpeech2 走 CTC 解码器conformer/transformer 走 attention_rescoring 等解码方法postprocess(...)返回识别文本。六、预训练模型一览下表是 Demo 文档列出的、可被命令行与 Python API 直接使用的预训练模型。模型的下载地址、MD5、配置路径与权重路径等元数据均注册在 paddlespeech/resource/pretrained_models.py 的asr_dynamic_pretrained_models字典中首次使用时按需自动下载到本地模型目录。模型语言转换Code-Switch语言采样率conformer_wenetspeechFalsezh16kconformer_online_multicnFalsezh16kconformer_aishellFalsezh16kconformer_online_aishellFalsezh16ktransformer_librispeechFalseen16kdeepspeech2online_wenetspeechFalsezh16kdeepspeech2offline_aishellFalsezh16kdeepspeech2online_aishellFalsezh16kdeepspeech2offline_librispeechFalseen16kconformer_talcsTruezh_en16k6.1 模型选择建议中文首选conformer_wenetspeechDemo 默认模型基于大规模中文语料 WenetSpeech 训练英文transformer_librispeech基于 LibriSpeech 训练对应--lang en中英混合/语码转换conformer_talcs对应--lang zh_en --codeswitch True。注意源码中有一个约束codeswitch为True时lang必须是zh_en否则会抛出codeswitch is true only in zh_en model异常见 infer.py在线流式场景名称中含online的模型如conformer_online_multicn、conformer_online_aishell适合流式识别需求。6.2 使用本地配置与权重如果你有自己的模型可通过--config和--ckpt_path指定本地文件此时程序不会自动下载预训练模型paddlespeech asr --config ./model.yaml --ckpt_path ./checkpoint --input ./test.wav -v注意ckpt_path传入的是去掉.pdparams后缀的路径前缀源码会自动补全后缀见 infer.py。七、进阶玩法与常见问题7.1 批量识别paddlespeech asr支持传入.job/.txt/.scp格式的批量任务文件。文件每行格式为id 音频路径程序会逐条识别并按行输出id 结果配合-d参数可将结果落盘到*.job.done文件见 executor.py。也可以把音频路径通过标准输入管道传入。7.2 采样率不匹配怎么办如果输入 WAV 采样率不是模型要求的 16k/8k_check()会打印警告并询问是否自动重采样命令行加--yes或-y可跳过交互询问直接自动重采样Python API 设置force_yesTrue同理若不想依赖自动重采样官方建议用 sox 预先转换sox input.xx --rate 16k --bits 16 --channels 1 output.wav8k 时把--rate换成 8000。7.3 音频时长限制从源码看默认单条音频的最大时长上限约为 50 秒self.max_len 50且会随 transformer 类模型的位置编码与下采样配置动态计算超时会提示Please input audio file less then {max_len} seconds见 infer.py 与 infer.py。因此长音频建议先切片再识别。7.4 ASR 标点恢复中文 ASR 的裸输出通常没有标点PaddleSpeech 提供了独立的标点恢复任务paddlespeech text --task punc其实现位于 paddlespeech/cli/text/infer.py。管道组合一行即可拿到带标点的文本paddlespeech asr --input ./zh.wav -v | paddlespeech text --task punc -v7.5 观察推理性能加上--rtf参数即可输出样本数与平均 RTF任务耗时 / 音频时长用于评估模型在目标设备上的实时性实现见 executor.pypaddlespeech asr --input ./zh.wav --rtf -v八、小结本 Demo 展示了 PaddleSpeech 语音识别能力的最小可用闭环一条命令或几行 Python 代码即可完成从 WAV 音频到文本的转录支持中文、英文、中英混合三种语言场景并可无缝衔接标点恢复、批量识别等进阶能力。其背后由ASRExecutor统一管理模型加载、音频校验、特征提取与解码推理预训练模型则通过 pretrained_models.py 集中注册、按需下载。如果想要更进一步如自行训练 ASR 模型、部署流式识别服务或接入 C 推理可以继续阅读仓库中的 examples 目录、流式 ASR 服务 Demo 与 runtime 工程。【免费下载链接】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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

GB/T 14710-2009环境试验:从合规负担到有源医疗器械可靠性设计的关键
GB/T 14710-2009环境试验:从合规负担到有源医疗器械可靠性设计的关键

前阵子,一位做监护仪的工程师找我聊检测报告的事。他们产品在注册送检时被打回,原因是“湿热试验后,外壳对地漏电流超标”。样机在车间里通电老化两天,一切正常,偏偏进了恒温恒湿箱就出问题。他问我是不是检测机构操作… · 2026/9/23 1:33:14

毕业生求职简历模板一文搞懂:项目经验怎么写才不露馅
毕业生求职简历模板一文搞懂:项目经验怎么写才不露馅

毕业生求职简历模板一文搞懂:项目经验怎么写才不露馅 复制来的代码跑不通,报错满屏红字却不知从哪下手,这是大多数应届生写简历项目经历时的真实写照。你照着网上模板把“高并发”、“微服务”塞进简历,面试官一问底层原理,瞬间哑火。今天咱们不聊虚的,… · 2026/9/23 1:33:08

基于深度学习的故障检测算法包实战:从tfevents日志到工业设备预测性维护
基于深度学习的故障检测算法包实战:从tfevents日志到工业设备预测性维护

简介:这份资源是面向人工智能与工业智能运维方向学习者的深度学习故障检测实战项目包,适合具备Python基础、希望掌握设备异常识别与预测维护技能的开发者与高校学生。项目以传感器时序数据为对象,覆盖数据预处理、模型定义、训练脚本、验证测… · 2026/9/23 1:33:08

恶搞情侣头像生成器源码解析:从入门到精通的避坑指南
恶搞情侣头像生成器源码解析:从入门到精通的避坑指南

恶搞情侣头像生成器源码解析:从入门到精通的避坑指南 报错一堆看不懂 StackTrace,这是很多开发者接手“恶搞情侣头像”这类趣味项目时的第一反应。别慌,这种基于 Canvas 或 SVG… · 2026/9/23 2:28:05

9类道路车辆YOLO检测数据集:解决自行车/电单车漏检难题
9类道路车辆YOLO检测数据集:解决自行车/电单车漏检难题

简介:本资源是面向智能交通与计算机视觉初学者及科研人员的道路车辆目标检测数据集,专为YOLO系列算法训练优化,适用于交通违规识别、车流统计、边缘端部署等实际落地场景。数据集共2534张监控视角高清图像,配套1999个YOLO格式txt标… · 2026/9/23 2:27:59

三维地质建模核心技术:从数据清洗到储量估算
三维地质建模核心技术:从数据清洗到储量估算

1. 项目概述三维地质建模是地质勘探与资源开发领域的核心技术,它通过将离散的地质数据转化为可视化的三维数字模型,为矿产勘查、储量评估和矿山设计提供科学依据。这个完整的工作流程从原始数据清洗开始,历经复杂构造建模、矿体圈定&#xff… · 2026/9/23 2:27:52

2026最新松花江地图实战:搞定版本升级API变更
2026最新松花江地图实战:搞定版本升级API变更

2026最新松花江地图实战:搞定版本升级API变更 版本升级后 API 全变了,这是很多开发者在面对地理信息库更新时最头疼的问题。如果你还在用去年的代码去调用松花江流域的地理数据,现在大概率已经报错了。2026最新版本的地理数据接口对坐标系… · 2026/9/23 2:27:52

3个面试必问坑:深入解析“取而代之”底层逻辑
3个面试必问坑:深入解析“取而代之”底层逻辑

3个面试必问坑:深入解析“取而代之”底层逻辑 看了一堆教程还是不会写项目?这是大多数应届生和初级工程师最真实的写照。很多人背下了八股文,却在手写代码或分析源码时卡壳,尤其是面对像“取而代之”这种看似简单实则涉及底层替换逻辑的问题时,更是手足… · 2026/9/23 2:27:52

荧光标记技术突破:AATOM™染料在多色实验中的应用
荧光标记技术突破:AATOM™染料在多色实验中的应用

1. 荧光标记实验的痛点与突破做分子生物学实验的朋友们肯定都经历过这样的困境:当实验流程需要多种荧光标记时,光是染料匹配就能让人抓狂。不同厂家的染料光谱特性参差不齐,同一批实验里用三四个品牌的染料是常事。更头疼的是,每次… · 2026/9/23 2:27:46

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码