
人工智能语音音频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 的paddlespeech.cli模块提供了一套开箱即用的命令行工具它封装了声音分类、声纹识别、语音识别、语音翻译、语音合成和文本标点恢复等语音场景的预训练模型用户只需一行命令即可完成模型下载、加载与推理。本文以 paddlespeech/cli/README.md 为骨架结合各任务 Executor 的源码实现系统讲解每条命令的参数含义、底层调用链与批量运行技巧帮助你快速把 PaddleSpeech 的模型能力接入自己的工程流程。命令入口与注册机制paddlespeech可执行命令通过setup.py中的console_scripts注册到 Python 环境见 setup.pyentry_points{ console_scripts: [ paddlespeechpaddlespeech.cli.entry:_execute, paddlespeech_serverpaddlespeech.server.entry:server_execute, paddlespeech_clientpaddlespeech.server.entry:client_execute, ] }也就是说安装 PaddleSpeech 后终端里的paddlespeech命令最终会进入 paddlespeech/cli/entry.py 的_execute()函数。该函数维护了一棵嵌套命令树逐级匹配paddlespeech、asr、cls等子命令找到对应的 Executor 后调用其execute(argv)方法并根据返回值映射为进程退出码True为 0 成功False为 1 失败。所有子命令的注册与描述集中定义在 paddlespeech/cli/base_commands.py共注册了 9 个任务子命令描述对应 Executor 文件asr语音转文本推理paddlespeech/cli/asr/infer.pycls音频分类推理paddlespeech/cli/cls/infer.pyst语音翻译推理paddlespeech/cli/st/infer.pytext文本后处理标点恢复paddlespeech/cli/text/infer.pytts文本转语音推理paddlespeech/cli/tts/infer.pyvector说话人嵌入向量推理paddlespeech/cli/vector/infer.pykws关键词唤醒推理paddlespeech/cli/kws/infer.pyssl自监督预训练模型推理paddlespeech/cli/ssl/infer.pywhisperWhisper 语音转写/翻译paddlespeech/cli/whisper/infer.py每个任务 Executor 都继承自 paddlespeech/cli/executor.py 中的抽象基类BaseExecutor统一实现_init_from_path加载模型与配置、preprocess特征提取、infer模型前向、postprocess结果还原和execute命令行入口五个阶段因此所有子命令的使用方式高度一致。查看帮助与可用模型运行下面命令可以列出全部可用子命令及其用途paddlespeech help其实现位于 paddlespeech/cli/base_commands.py 的HelpCommand会遍历命令树打印Usage: paddlespeech command options及每个命令的描述。此外还可以查看包版本paddlespeech versionVersionCommand会打印当前包版本号与 git commit id见 paddlespeech/cli/base_commands.py。如果想知道某个任务支持哪些预训练模型可以使用stats子命令它要求显式指定--taskpaddlespeech stats --task asr该命令通过 paddlespeech/cli/base_commands.py 的StatsCommand读取对应任务的预训练模型清单并按模型-尺寸-语码切换-多语言-语言-采样率等格式规则排版成表格不同任务的命名格式见 model_name_format 定义。声音分类Audio Classification声音分类用于判断一段音频属于哪一类声音事件如环境音、乐器、人声等。最简用法paddlespeech cls --input input.wavCLSExecutor见 paddlespeech/cli/cls/infer.py支持的常用参数如下参数默认值说明--input无待分类的音频文件路径--modelpanns_cnn14分类模型类型从预训练模型清单中自动生成候选--configNone自定义 yaml 配置缺省时使用模型自带配置--ckpt_pathNone自定义模型权重文件路径--label_fileNone类别标签文件路径--topk1返回得分最高的 k 个类别--devicepaddle.get_device()推理设备cpu/gpu 等-d/--job_dump_resultFalse将批量任务结果保存到文件-v/--verboseFalse开启详细日志从源码看预处理阶段会读取配置中的sample_rate、n_fft、hop_length、n_mels等特征参数用LogMelSpectrogram提取对数梅尔谱paddlespeech/cli/cls/infer.py后处理阶段则对模型输出的 logits 排序取出 top-k 的「标签 得分」paddlespeech/cli/cls/infer.py。例如想查看得分最高的 3 个类别paddlespeech cls --input input.wav --topk 3声纹识别Speaker Verification声纹识别用于判断两段语音是否来自同一个说话人。PaddleSpeech 提供了spk提取说话人嵌入向量和score计算两段语音的相似度得分两种任务# 提取说话人嵌入向量 paddlespeech vector --task spk --input input_16k.wav # 计算两段语音的相似度得分输入为两个 wav 路径以空格分隔 paddlespeech vector --task score --input enroll.wav test.wavVectorExecutor见 paddlespeech/cli/vector/infer.py的常用参数参数默认值说明--modelecapatdnn_voxceleb12声纹模型类型--taskspk任务类型spk提取嵌入向量score计算相似度--input无音频文件路径score任务需传两个路径--sample_rate16000模型采样率当前仅支持 16000--config/--ckpt_pathNone自定义配置与权重路径--yes/-yFalse直接接受采样率/声道转换请求跳过交互确认--devicepaddle.get_device()推理设备-d/--job_dump_resultFalse批量结果落盘-v/--verboseFalse详细日志底层流程上spk任务对音频做 fbank 特征提取并做均值归一化后送入ecapatdnn等骨干网络得到说话人嵌入向量paddlespeech/cli/vector/infer.pyscore任务则对两段音频分别提取嵌入向量再用paddle.nn.CosineSimilarity计算余弦相似度作为得分paddlespeech/cli/vector/infer.py。得分越接近 1说明两段语音越可能来自同一说话人。语音识别Automatic Speech Recognition语音识别是 PaddleSpeech 最核心的能力之一将音频转写为文字paddlespeech asr --lang zh --input input_16k.wavASRExecutor见 paddlespeech/cli/asr/infer.py支持的参数最为丰富参数默认值说明--input无待识别音频文件--modelconformer_u2pp_online_wenetspeech模型类型如conformer_wenetspeech、transformer_librispeech、deepspeech2系列--langzh模型语言zh、en或zh_en中英混合需配合--codeswitch true--codeswitchFalse是否启用中英混合语码切换--sample_rate16000模型采样率可选8000或16000--configNone自定义 yaml 配置--decode_methodattention_rescoring解码方式ctc_greedy_search、ctc_prefix_beam_search、attention、attention_rescoring仅 transformer/conformer 系列模型支持--num_decoding_left_chunks-1在线模型解码时左侧可见 chunk 数--ckpt_pathNone自定义模型权重路径--yes/-yFalse自动接受采样率/声道转换--rtfFalse打印实时率Real-Time Factor--devicepaddle.get_device()推理设备-d/--job_dump_resultFalse批量结果落盘-v/--verboseFalse详细日志几个关键实现细节音频格式与采样率检查_check()会用 soundfile 读取音频若时长超过模型允许的最大长度默认约 50 秒或采样率与模型不匹配会给出提示采样率不匹配时默认交互式询问是否重采样可用-y跳过交互paddlespeech/cli/asr/infer.py。源码还提示可以用 sox 预处理音频sox input_audio.xx --rate 16k --bits 16 --channels 1 output_audio.wav。特征与解码预处理阶段按配置做 fbank 特征提取paddlespeech/cli/asr/infer.py解码阶段根据模型类型分发conformer/transformer 模型支持 beam search 与 attention rescoring 等多种解码方法paddlespeech/cli/asr/infer.py。RTF 统计加上--rtf后工具会统计解码耗时与音频时长的比值并打印见 paddlespeech/cli/executor.py 的show_rtf。例如用英文 LibriSpeech 模型识别英文音频并打印实时率paddlespeech asr --lang en --model transformer_librispeech --input input_16k.wav --rtf语音翻译Speech Translation英-中语音翻译直接把英文语音翻译成中文文本当前暂不支持 Windows 系统因为其依赖 Kaldi 工具链的 fbank/pitch 特征提取paddlespeech st --input input_16k.wavSTExecutor见 paddlespeech/cli/st/infer.py的参数参数默认值说明--input无待翻译的音频文件--modelfat_st_ted翻译模型类型--src_langen源语言--tgt_langzh目标语言--sample_rate16000模型采样率--config/--ckpt_pathNone自定义配置与权重--devicepaddle.get_device()推理设备-d/--job_dump_resultFalse批量结果落盘-v/--verboseFalse详细日志从源码看fat_st_ted模型的特征提取依赖 Kaldi 工具compute-fbank-feats、compute-kaldi-pitch-feats等初始化时会自动下载并解压 kaldi_bins并注入LD_LIBRARY_PATH和PATHpaddlespeech/cli/st/infer.py这正是其暂不支持 Windows 的原因。语音合成Text-to-Speech语音合成将文本转换为语音波形文件paddlespeech tts --input 你好欢迎使用百度飞桨深度学习框架 --output output.wavTTSExecutor见 paddlespeech/cli/tts/infer.py采用「文本前端 声学模型AM 声码器Vocoder」三段式架构参数分三组声学模型相关参数默认值说明--amfastspeech2_csmsc声学模型可选speedyspeech_csmsc、fastspeech2_csmsc、fastspeech2_ljspeech、fastspeech2_aishell3、fastspeech2_vctk、tacotron2_csmsc等--am_config/--am_ckpt/--am_statNone自定义声学模型配置、权重与统计量文件--phones_dict/--tones_dict/--speaker_dictNone音素、声调、说话人 id 词表--spk_id0多说话人模型使用的说话人 id声码器相关参数默认值说明--vochifigan_csmsc声码器可选pwgan_*、mb_melgan_csmsc、hifigan_*、wavernn_csmsc等--voc_config/--voc_ckpt/--voc_statNone自定义声码器配置、权重与统计量其他参数默认值说明--langzh语言zh、en或mix--outputoutput.wav输出音频文件名--devicepaddle.get_device()推理设备--cpu_threads2ONNX 推理时的 CPU 线程数--use_onnxFalse是否使用 ONNX Runtime 加速推理--fs24000使用自定义 ONNX 模型时的采样率-d/--job_dump_resultFalse批量结果落盘-v/--verboseFalse详细日志推理时文本先经前端处理为音素序列SpeedySpeech 还额外使用声调再经声学模型生成梅尔谱最后由声码器还原为波形paddlespeech/cli/tts/infer.py。多说话人模型通过--spk_id切换音色例如使用 AISHELL-3 上的 FastSpeech2paddlespeech tts --am fastspeech2_aishell3 --spk_id 0 --input 你好欢迎使用百度飞桨深度学习框架 --output output.wav若希望用 ONNX Runtime 做 CPU 推理可指定--use_onnx true是否支持取决于所选模型是否在 ONNX_SUPPORT_SET 中。文本后处理标点恢复语音识别产出的文本通常没有标点标点恢复任务为其补全标点符号# 标准标点恢复模型 paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭 # 更快的标点恢复模型 paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭 --model ernie_linear_p3_wudao_fastTextExecutor见 paddlespeech/cli/text/infer.py的参数参数默认值说明--input无待处理的文本--taskpunc文本任务类型当前仅支持punc--modelernie_linear_p7_wudao标点恢复模型ernie_linear_p3_wudao_fast为快速版--langzh语言zh或en--config/--ckpt_path/--punc_vocabNone自定义配置、权重与标点词表--devicepaddle.get_device()推理设备-d/--job_dump_resultFalse批量结果落盘-v/--verboseFalse详细日志从源码看新旧两代模型走不同的初始化分支老模型ernie_linear_p7_wudao、ernie_linear_p3_wudao使用 ERNIE-1.0 的 tokenizer新模型则使用ernie-3.0-mini-zh快速 tokenizerpaddlespeech/cli/text/infer.py、paddlespeech/cli/text/infer.py。预处理时会先清洗文本转小写、去除标点外的特殊字符再逐 token 预测标点类别后处理时按预测结果把标点符号插回原文paddlespeech/cli/text/infer.py。进阶用法批量输入与结果落盘所有 Executor 都继承BaseExecutor的输入源解析逻辑paddlespeech/cli/executor.py因此支持三种输入方式单条输入--input直接给文件或文本如上文所有示例。标准输入stdin不传--input时从管道逐行读取输入每行格式为id 内容两列或仅内容单列适合与cat、find等命令联动。作业文件--input指向.job/.txt/.scp后缀文件时逐行解析为key value的批量任务paddlespeech/cli/executor.py。批量执行时结果按id 结果逐行打印到标准输出若加上-d/--job_dump_result会把结果写入输入文件路径.done文件paddlespeech/cli/executor.py。例如准备一个texts.job文件1 今天的天气真不错啊你下午有空吗我想约你一起去吃饭 2 飞桨深度学习框架让语音技术开发更加简单然后批量恢复标点并落盘paddlespeech text --task punc --input texts.job -d结果将打印到标准输出并同时保存到texts.job.done。这一机制对 ASR、CLS、Vector、TTS 等任务同样适用TTS 多输入时输出文件会自动追加_id后缀见 paddlespeech/cli/tts/infer.py。注意事项小结采样率与格式ASR 模型通常要求 16k/8k 采样率、16 bit 单声道 wav输入不匹配时可使用-y自动重采样或先用 sox 预处理。时长上限ASR 默认限制单条音频约 50 秒以内超长音频建议先切分。平台限制语音翻译st依赖 Kaldi 工具链暂不支持 Windows。设备选择所有任务均可用--device cpu或--device gpu:0等指定推理设备默认跟随 Paddle 当前环境。模型自动下载首次运行某任务时工具会自动下载对应的预训练模型与配置文件并缓存到本地通过 paddlespeech/cli/utils.py 的下载解压逻辑之后重复执行将直接复用缓存。通过以上命令你可以在一行命令内完成从声音分类、说话人确认、语音转写、跨语言翻译、语音合成到标点恢复的完整语音处理链路如果要在代码中调用同样的能力各 Executor 的__call__方法也提供了与命令行等价的 Python API可参考各任务文件中的__call__实现进一步集成。赞分享人工智能语音音频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点击查看免费下载相关推荐终极指南如何用Awesome-CV免费制作专业级求职简历终极指南如何用Awesome CV免费制作专业级求职简历 还在为简历设计发愁吗 想要一份既专业又美观的简历却不想花时间学习复杂的排版软件Awesom人工智能语音音频MelonLoader启动选项终极指南35个参数深度解析与实战应用MelonLoader启动选项终极指南35个参数深度解析与实战应用 你是否曾经为Unity游戏模组加载器的配置而烦恼是否想要更精细地控制MelonLoade人工智能语音音频NLP媒体生成PaddleSpeech 集成 OpenAI Whisper 实战命令行与 Python API 实现多语言语音识别与语音翻译PaddleSpeech 集成 OpenAI Whisper 实战命令行与 Python API 实现多语言语音识别与语音翻译 Whisper 是 OpenA人工智能语音音频NLP媒体生成上一篇Wolvic XR 浏览器使用教程下一篇MatrixOne 开源项目安装与使用教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考