news 2026/9/23 20:55:57

PaddleSpeech 语音应用实战指南:demos 目录全场景解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PaddleSpeech 语音应用实战指南:demos 目录全场景解析

PaddleSpeech 语音应用实战指南:demos 目录全场景解析

【免费下载链接】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 的demos/目录汇集了 15 个可直接运行的语音应用示例,覆盖语音识别(ASR)、语音合成(TTS)、音频分类(CLS)、语音翻译(ST)、说话人验证、流式服务端等核心任务。本指南以 demos/README.md 为骨架,逐一对每个 demo 的用途、命令用法、参数含义与预训练模型进行讲解,并结合仓库源码与配置文件(如 demos/speech_server/conf/application.yaml)补充底层实现细节,帮助你快速选定并跑通适合自己业务场景的语音应用。

上图展示了audio_searchingdemo 中"音频向量入库—Milvus 相似度检索—MySQL 元数据回查"的完整工作流,它是 demos 目录中架构最完整、组件最丰富的示例之一。本文将按"单机命令行任务 → 服务化部署 → 复合场景应用"三个层次展开全部 demo。

一、demos 目录全景:15 个应用一览

根据 demos/README.md,该目录包含以下语音应用:

Demo 目录核心能力依赖组件
audio_searching大规模音频相似度检索Milvus + MySQL + FastAPI
audio_tagging音频多标签分类(527 类 AudioSet)PaddleSpeech CLS
automatic_video_subtitles视频自动字幕ASR + 标点恢复
metaverse让图片中的人物"开口说话"TTS + PaddleGAN
punctuation_restoration无标点文本标点恢复PaddleNLP ERNIE
speech_recognition音频转写文本ASR
speech_server离线语音服务(HTTP)ASR/TTS/CLS/Text/Vector 多引擎
streaming_asr_server流式语音识别服务(WebSocket)DeepSpeech2/Conformer
streaming_tts_server流式语音合成服务(HTTP/WebSocket)FastSpeech2 + 流式声码器
speech_translation端到端语音翻译FAT-ST 模型
story_talker基于 OCR + TTS 的故事书朗读器PaddleOCR + TTS
style_fs2FastSpeech2 多风格控制FastSpeech2
text_to_speech文本转语音多种声学模型 + 声码器
speech_ssl自监督预训练特征提取与识别wav2vec2/HuBERT/WavLM
whisper基于 Whisper 的识别与翻译Whisper

绝大多数 demo 都遵循统一的使用范式:安装 PaddleSpeech → 准备 WAV 输入文件 → 通过paddlespeech命令行或 Python Executor API 完成任务。下文将先介绍这些可单命令完成的语音任务。

二、单命令语音任务:一次调用即可完成的推理

2.1 语音识别(speech_recognition)

demos/speech_recognition/README.md 演示了最基础的 ASR 能力。输入必须是 WAV 文件,且采样率需与模型一致(默认 16k)。

# 下载示例音频 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 # 中文识别 paddlespeech asr --input ./zh.wav -v # 英文识别(指定 transformer_librispeech 模型) 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

核心参数包括:model(默认conformer_wenetspeech)、lang(默认zh)、codeswitch(默认False)、sample_rate(默认16000)、config/ckpt_path(置None时自动使用预训练模型)、yes(接受程序自动转换音频采样率)、deviceverbose。其中paddlespeech-ctcdecoders是可选依赖,缺失不影响基本功能。

仓库提供的中文预训练模型全家桶(采样率均为 16k):conformer_wenetspeechconformer_online_multicnconformer_aishellconformer_online_aishelldeepspeech2online_wenetspeechdeepspeech2offline_aishelldeepspeech2online_aishell;英文模型transformer_librispeechdeepspeech2offline_librispeech;中英混说模型conformer_talcs。对应的 Python 写法是from paddlespeech.cli.asr import ASRExecutor后调用asr_executor(model=..., audio_file=..., force_yes=False, device=paddle.get_device())

2.2 文本转语音(text_to_speech)

demos/text_to_speech/README.md 覆盖了最丰富的 TTS 组合:默认声学模型为Fastspeech2、默认声码器为HiFiGAN,默认走动态图推理。

# 中文 paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" # 批量合成(stdin 每行格式:编号 + 空格 + 文本) echo -e "1 欢迎光临。\n2 谢谢惠顾。" | paddlespeech tts # 使用 SpeedySpeech 声学模型 paddlespeech tts --am speedyspeech_csmsc --input "你好,欢迎使用百度飞桨深度学习框架!" # 中文多说话人(切换 spk_id) paddlespeech tts --am fastspeech2_aishell3 --voc pwgan_aishell3 --input "你好,欢迎使用百度飞桨深度学习框架!" --spk_id 0 # 英文 paddlespeech tts --am fastspeech2_ljspeech --voc pwgan_ljspeech --lang en --input "hello world" # 中英混说多说话人(am 必须为 fastspeech2_mix,lang 必须为 mix) paddlespeech tts --am fastspeech2_mix --voc hifigan_csmsc --lang mix --input "热烈欢迎您在 Discussions 中提交问题。" --spk_id 174 --output mix_spk174.wav # 粤语 paddlespeech tts --am fastspeech2_canton --voc pwgan_aishell3 --input "各个国家有各个国家嘅国歌" --lang canton --spk_id 10 # 使用 ONNXRuntime 推理(--use_onnx True) paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output default.wav --use_onnx True

参数方面,am是声学模型类型(默认fastspeech2_csmsc),voc是声码器(默认pwgan_csmsc),另有am_config/am_ckpt/am_stat/phones_dict/tones_dict/speaker_dictvoc_config/voc_ckpt/voc_statspk_id(默认0)、lang(默认zh)、output(默认output.wav)、use_onnxfs等参数。Python 侧使用TTSExecutor,ONNX 推理时还可指定cpu_threads控制线程数。

声学模型候选包括speedyspeech_csmscfastspeech2_csmscfastspeech2_ljspeechfastspeech2_aishell3fastspeech2_vctkfastspeech2_cnndecoder_csmscfastspeech2_mixtacotron2_csmsctacotron2_ljspeechfastspeech2_malefastspeech2_canton;声码器候选包括pwgan_csmscpwgan_ljspeechpwgan_aishell3pwgan_vctkmb_melgan_csmscstyle_melgan_csmschifigan_csmschifigan_ljspeechhifigan_aishell3hifigan_vctkwavernn_csmscpwgan_malehifigan_male

2.3 音频多标签分类(audio_tagging)

demos/audio_tagging/README.md 用 527 个 AudioSet 标签对音频文件做多标签标注,覆盖音乐标注、声学场景分类、音频事件分类等场景。

wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/cat.wav https://paddlespeech.cdn.bcebos.com/PaddleAudio/dog.wav paddlespeech cls --input ./cat.wav --topk 10

参数含义:input(必填,待分类音频)、model(默认panns_cnn14)、config/ckpt_path(置None使用预训练模型)、label_file(置None使用 AudioSet 标签)、topk(返回前 k 个标签,默认1)、device。实际输出中,"Cat: 0.899"、"Meow: 0.878" 等分数表示模型对各类别的置信度。Python 侧通过from paddlespeech.cli.cls import CLSExecutor调用。预训练模型有panns_cnn6panns_cnn10panns_cnn14,采样率均为 32000。

2.4 标点恢复(punctuation_restoration)

demos/punctuation_restoration/README.md 解决 ASR 转写文本无标点、可读性差的问题:

paddlespeech text --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭 # 输出:今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。

参数包括task(默认punc)、model(默认ernie_linear_p7_wudao)、lang(默认zh)、config/ckpt_path/punc_vocab(置None使用预训练)、device。预训练模型按标点种类数区分:ernie_linear_p3_wudao支持 3 种标点(,。?),ernie_linear_p7_wudao支持 7 种标点(,。!?、:;)。Python 侧使用TextExecutor

2.5 语音翻译(speech_translation)

demos/speech_translation/README.md 演示端到端语音翻译(当前不支持 Windows):

paddlespeech st --input ./en.wav # 输出:ST Result: ['我 在 这栋 建筑 的 古老 门上 敲门 。']

参数:model(默认fat_st_ted)、src_lang(默认en)、tgt_lang(默认zh)、sample_rate(默认16000)、config/ckpt_path/device。预训练模型为fat_st_ted(en→zh)。Python 侧使用from paddlespeech.cli.st import STExecutor

2.6 关键词唤醒(keyword_spotting)

demos/keyword_spotting/README.md 从语音中识别关键词:

wget -c https://paddlespeech.cdn.bcebos.com/kws/hey_snips.wav https://paddlespeech.cdn.bcebos.com/kws/non-keyword.wav paddlespeech kws --input ./hey_snips.wav paddlespeech kws --input ./non-keyword.wav # hey_snips.wav → Score: 1.000, Threshold: 0.8, Is keyword: True # non-keyword.wav → Score: 0.000, Threshold: 0.8, Is keyword: False

参数:threshold(打分阈值,默认0.8)、model(默认mdtc_heysnips)、config/ckpt_path/device/verbose。预训练模型mdtc_heysnips(en,16k)。Python 侧使用KWSExecutor

2.7 说话人验证(speaker_verification)

demos/speaker_verification/README.md 从音频中提取说话人 embedding,并支持打分:

wget -c https://paddlespeech.cdn.bcebos.com/vector/audio/85236145389.wav wget -c https://paddlespeech.cdn.bcebos.com/vector/audio/123456789.wav # 提取单条 embedding paddlespeech vector --task spk --input 85236145389.wav # 批量(job 文件方式) echo -e "demo1 85236145389.wav" > vec.job paddlespeech vector --task spk --input vec.job # 两段音频打分(score 范围 [0, 1]) paddlespeech vector --task score --input "./85236145389.wav ./123456789.wav"

参数:taskspkscore,默认spk)、model(默认ecapatdnn_voxceleb12)、sample_rate(默认16000)、config/ckpt_path/device。Python 侧使用VectorExecutor,提取两条 embedding 后可用vector_executor.get_embeddings_score(audio_emb, test_emb)计算相似度打分。这也正是 audio_searching 检索系统中向量来源的基础能力。

2.8 自监督语音模型(speech_ssl)

demos/speech_ssl/README.md 演示基于大规模无标注语音自监督训练得到的 wav2vec2 等模型的两种用法:识别文本与提取声学表征。

wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav # 识别文本 paddlespeech ssl --task asr --lang en --input ./en.wav # 提取声学表征 paddlespeech ssl --task vector --lang en --input ./en.wav

参数:model(默认wav2vec2,可选wav2vec2hubertwavlm)、task(默认asr)、lang(默认en)、sample_rateconfig/ckpt_path/yes/device/verbose。Python 侧使用SSLExecutorvector任务返回形如Tensor(shape=[1, 164, 1024])的声学表征,可作为下游任务的输入特征。

2.9 Whisper 识别与翻译(whisper)

demos/whisper/README.md 集成了 OpenAI Whisper 通用语音识别模型,支持多语言识别、语音翻译与语种识别:

wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav # 识别 paddlespeech whisper --task transcribe --input ./zh.wav # 指定英文专用 base 尺寸模型 paddlespeech whisper --lang en --size base --task transcribe --input ./en.wav # 识别并翻译为英文 paddlespeech whisper --task translate --input ./zh.wav

参数:model(默认whisper)、task(默认transcribe)、lang(置en选择英文专用模型,medium/base/small/tiny尺寸支持英文专用)、size(默认turbo,可选turbo/large/medium/base/small/tiny)、language(强制指定识别语言,默认None由模型自行判定)、sample_rate(仅支持16000)、yes/device/verbose。翻译任务的输出会附带带时间戳的分段结果与 token 信息;文档中提示翻译功能使用largemedium模型效果更好。Python 侧使用WhisperExecutor

三、服务化部署:从单机命令到多客户端并发

3.1 离线语音服务(speech_server)

demos/speech_server/README.md 用一条命令启动包含 ASR、TTS、CLS、标点、说话人向量等任务的 HTTP 服务,服务端与客户端分别使用paddlespeech_serverpaddlespeech_client

配置文件位于 demos/speech_server/conf/application.yaml。其中engine_list<speech task>_<engine type>格式声明要加载的引擎,目前支持asr_pythonasr_inferencetts_pythontts_inferencecls_pythoncls_inferencetext_pythonvector_pythonpython表示动态图推理引擎,inference表示基于 Paddle Inference 的静态图推理引擎。该配置文件完整给出了每个引擎的子配置,例如asr_python可指定model: 'conformer_wenetspeech'lang: 'zh'decode_method: 'attention_rescoring'force_yes: Truetts_python需同时指定am(声学模型)与voc(声码器)及各自的_config/_ckpt/_statvector_python默认task: spkmodel_type: 'ecapatdnn_voxceleb12'。若服务可正常启动但客户端 IP 不可达,可尝试将host改为本机实际 IP。

启动服务与调用示例:

# 启动服务(默认端口 8090) paddlespeech_server start --config_file ./conf/application.yaml # 中英混说请改用 ./conf/conformer_talcs_application.yaml # ASR 客户端 paddlespeech_client asr --server_ip 127.0.0.1 --port 8090 --input ./zh.wav # TTS 客户端 paddlespeech_client tts --server_ip 127.0.0.1 --port 8090 --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav # CLS 客户端 paddlespeech_client cls --server_ip 127.0.0.1 --port 8090 --input ./zh.wav # 说话人向量:提取 embedding paddlespeech_client vector --task spk --server_ip 127.0.0.1 --port 8090 --input 85236145389.wav # 说话人向量:计算两段音频打分 paddlespeech_client vector --task score --server_ip 127.0.0.1 --port 8090 --enroll 85236145389.wav --test 123456789.wav # 标点预测 paddlespeech_client text --server_ip 127.0.0.1 --port 8090 --input "我认为跑步最重要的就是给我带来了身体健康"

客户端参数要点:ASR 客户端支持sample_rate(默认 16000)、lang(默认 zh_cn)、audio_format(默认 wav);TTS 客户端支持spk_id(默认 0)、speed/volume(取值 0~3,默认 1.0)、sample_rate(可选 0/8000/16000,0 表示与模型一致)、output;vector 客户端task可选spkscore。服务端start命令参数为config_file(默认./conf/application.yaml)与log_file(默认./log/paddlespeech.log)。

查询各任务支持的全部模型可使用paddlespeech_server stats --task asr|tts|cls|vector|text,其中标注为静态模型的可用于 Paddle Inference 推理。Python 侧通过from paddlespeech.server.bin.paddlespeech_server import ServerExecutor启动服务,客户端则使用paddlespeech.server.bin.paddlespeech_client下对应的ASRClientExecutorTTSClientExecutorCLSClientExecutorVectorClientExecutorTextClientExecutor

3.2 流式语音识别服务(streaming_asr_server)

demos/streaming_asr_server/README.md 实现基于WebSocket 协议(不支持 HTTP)的流式 ASR 服务,音频边传边识别、结果边识别边返回。目前集成了 DeepSpeech2 与 Conformer 两类在线模型。

# 启动流式识别服务(CPU 默认,改 device 参数可部署到 GPU) paddlespeech_server start --config_file ./conf/ws_conformer_wenetspeech_application.yaml # 追求更快解码速度(有精度折损) paddlespeech_server start --config_file ./conf/ws_conformer_wenetspeech_application_faster.yaml # 流式识别客户端 paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input ./zh.wav

配置要点可参考 demos/streaming_asr_server/conf/ws_conformer_wenetspeech_application.yaml:protocol: 'websocket'engine_list: ['asr_online'],引擎asr_online支持model_type: 'conformer_online_wenetspeech'decode_method: "attention_rescoring"continuous_decoding: True(端点检测后继续解码)以及num_decoding_left_chunks(控制解码左看 chunk 数,可调节实时性与准确率)。从客户端日志可观察到识别结果逐段增量的过程(如"我认为跑"→"我认为跑步最重要的"→完整句子),最终消息signal: 'finished'附带每个字的起止时间戳times,可用于字幕对齐,日志还会给出RTF(实时率)指标。

流式 ASR 还提供了两个进阶脚本:

  • 联合标点服务:另起一个punc_application.yaml配置的标点服务(默认端口 8190),客户端通过--punc.server_ip/--punc.port同时调用两个服务,使流式识别结果实时带标点;
  • 生成字幕(.srt):运行local/websocket_client_srt.py(需先安装 ffmpeg),可把 mp3/wav 音频转写为带时间轴的标准.srt字幕文件,例如:
python3 local/websocket_client_srt.py --server_ip 127.0.0.1 --port 8090 --punc.server_ip 127.0.0.1 --punc.port 8190 --wavfile ../../data/认知.mp3

3.3 流式语音合成服务(streaming_tts_server)

demos/streaming_tts_server/README.md 实现边说边合成的流式 TTS 服务,同时支持http 与 websocket两种协议,通过配置文件的protocol字段切换。

配置文件 demos/streaming_tts_server/conf/tts_online_application.yaml 中,engine_list可选tts_online(Paddle 动态图推理)或tts_online-onnx(ONNXRuntime 推理,速度更快)。关键设计是分块(chunk)推理

  • 声学模型(AM):支持fastspeech2_csmscfastspeech2_cnndecoder_csmsc(含 onnx 版本)。其中fastspeech2不支持流式 AM 推理(am_pad/am_block不生效),而fastspeech2_cnndecoder支持流式,am_pad=12时流式合成与整句合成结果一致。am_block表示一个 chunk 中的有效帧数,am_pad表示 chunk 前后附加的帧数(用于消除流式推理误差)。配置示例:am_block: 72am_pad: 12
  • 声码器(Voc):支持mb_melgan_csmschifigan_csmsc(含 onnx 版本)。mb_melganvoc_pad=14时与整句合成一致,voc_pad最小可设为 7(听感正常,小于 7 会出现异常);hifiganvoc_pad=19时与整句一致,voc_pad=14时听感正常。配置示例:voc_block: 36voc_pad: 14,onnx 引擎还需设置与声码器配置一致的voc_upsample(默认 300)。推理速度上mb_melgan > hifigan,音质上mb_melgan < hifigan

启动与调用:

# 默认 http 协议,端口 8092 paddlespeech_server start --config_file ./conf/tts_online_application.yaml # http 客户端 paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav # websocket 客户端(需先将配置文件的 protocol 改为 websocket) paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol websocket --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wav

客户端参数:server_ip/portprotocol(http/websocket,默认 http)、input(必填)、spk_id(默认 0,当前仅支持单说话人模型,该参数不生效)、outputplay(是否边合成边播放,依赖 pyaudio 库)。流式 TTS 不支持改采样率、变速与音量。服务日志会输出"首包响应/尾包响应/音频时长/RTF"等指标,用于评估流式合成的实时性能。Python 侧使用TTSOnlineClientExecutor

四、复合场景应用:多技术栈组合

4.1 大规模音频相似度检索(audio_searching)

demos/audio_searching/README.md 是 demos 中架构最完整的示例:用 PaddleSpeech 预训练模型(说话人识别等)把音频转成向量,存入开源向量数据库 Milvus 并配合 MySQL 存储元数据,实现海量音频的相似度检索(可用于音效查重、声纹库快速检索、防欺诈与身份盗用等)。

4.1.1 组件启动与配置

通过 demos/audio_searching/docker-compose.yaml 一键启动 Milvus 依赖链(etcd、MinIO、Milvus standalone)与 MySQL:

cd demos/audio_searching/ docker-compose -f docker-compose.yaml up -d

成功后会创建milvus-standalone(端口 19530)、audio-mysql(端口 3306)、milvus-etcdmilvus-minio及前端容器audio-webclient(映射 8068→80)。随后安装 Python 依赖并启动后端:

pip install -r requirements.txt # 本地运行可跳过配置;远端运行二选一: vim src/config.py # 或 export MILVUS_HOST=127.0.0.1 / export MYSQL_HOST=127.0.0.1 export PYTHONPATH=$PYTHONPATH:./src python src/audio_search.py # FastAPI 服务,默认 0.0.0.0:8002

配置参数(详见 demos/audio_searching/src/config.py):

参数说明默认值
MILVUS_HOSTMilvus 服务 IP127.0.0.1
MILVUS_PORTMilvus 端口19530
VECTOR_DIMENSION向量维度2048
MYSQL_HOSTMySQL IP127.0.0.1
MYSQL_PORTMySQL 端口3306
DEFAULT_TABLEMilvus/MySQL 默认集合名audio_table
4.1.2 建库、检索与测试
# 下载 CN-Celeb 数据集(或改用 Librispeech、VoxCeleb、UrbanSound 等) wget -c https://www.openslr.org/resources/82/cn-celeb_v2.tar.gz && tar -xvf cn-celeb_v2.tar.gz # 默认模型为 ecapatdnn_voxceleb12,如需更换修改 src/encode.py # 一键脚本测试:下载数据 → 加载模型 → 提取 embedding → 建库 → 检索 → 删库 python ./src/test_audio_search.py

test_audio_search.py的运行日志可以看到完整链路:音频格式校验(16k 采样率)→ 加载预训练模型ecapatdnn_voxceleb12-16k→ 提取 80 维 Fbank 特征 → backbone 前向得到 192 维 embedding → 批量入库(Successfully loaded data, total count: 20)→ 检索返回相似音频及相似度分数 → 清空 Milvus 与 MySQL 表。GUI 模式下访问127.0.0.1:8068可上传目录建库、上传.wav检索相似音频(若浏览器与服务不在同一机器,需同步修改 docker-compose.yaml 中的API_URL并重新执行)。

文档给出的实测结论(机器为 CentOS 7.6 / E5-2620 v4 / 132G 内存,数据集 CN-Celeb 训练集 65 万条、测试集 1 万条、向量维度 192、L2 距离):在 90% 召回率前提下,Milvus 检索约2.9 ms,特征提取约500 ms(测试音频约 5 秒),单条音频总耗时约503 ms。预训练模型为ecapa_tdnn(采样率 16000)。

4.2 视频自动字幕(automatic_video_subtitles)

demos/automatic_video_subtitiles/README.md 用 ASR + 标点恢复为视频生成字幕:

wget -c https://paddlespeech.cdn.bcebos.com/demos/asr_demos/subtitle_demo1.mp4 # 提取单声道 16k 的 wav ffmpeg -i subtitle_demo1.mp4 -ac 1 -ar 16000 -vn input.wav

Python 侧将ASRExecutor识别结果送入TextExecutorpunc任务,最终得到带标点的完整中文转写。这展示了 PaddleSpeech 任务间管道组合的典型模式。

4.3 数字人说话(metaverse)

demos/metaverse/README.md 将 PaddleSpeech 的 TTS 与 PaddleGAN 结合,让图片中的人物"开口说话",构建 2D 虚拟数字人:

./run.sh # 脚本内部先 source path.sh 设置环境变量,并包含安装步骤

替换sentences.txt中的句子可更换口播内容,替换download/Lamarr.png可更换形象。

4.4 故事书朗读器(story_talker)

demos/story_talker/README.md 面向亲子阅读场景:用 PaddleOCR 识别绘本文字,再用 PaddleSpeech TTS 朗读出来:

./run.sh

4.5 FastSpeech2 多风格控制(style_fs2)

demos/style_fs2/README.md 利用 FastSpeech2 的可控变量(durationenergypitch)实现风格化语音:

./run.sh # 内部先 source path.sh 设置环境变量

核心玩法(详见 demos/style_fs2/style_syn.py):控制duration可改变语速且保持音高不变(部分工具加速会连带升高音高);将整句pitch设为均值且音调置 1 可得到"机器人音色";按固定比例抬高成年女性pitch可得到"儿童音色";还可对不同音素设置不同的 duration/pitch 缩放比例来强调或弱化某些发音。句子可替换sentences.txt中的内容。

五、总结:如何选择适合自己的 demo

PaddleSpeech demos 目录覆盖了从"单命令推理"到"多组件服务化部署"再到"跨模态复合应用"的完整梯度,选择路径可参考:

  • 快速体验语音能力:从 speech_recognition、text_to_speech、audio_tagging、punctuation_restoration 入手,只需安装 PaddleSpeech 与一条命令;
  • 需要服务化/流式能力:参考 speech_server(HTTP 多任务)、streaming_asr_server(WebSocket 流式识别 + 标点 + srt 字幕)、streaming_tts_server(HTTP/WebSocket 流式合成);
  • 需要工程化检索/多媒体能力:参考 audio_searching(Milvus + MySQL 向量检索)、automatic_video_subtitles、story_talker、metaverse、style_fs2;
  • 需要前沿模型能力:参考 speech_ssl(wav2vec2/HuBERT/WavLM)与 whisper(Whisper 多语言识别与翻译)。

所有 demo 的输入音频原则上都要求与模型采样率匹配(默认 16k),配置或命令行中的force_yes/yes参数可接受程序自动完成采样率转换;服务类 demo 建议使用 paddlepaddle 2.4rc 及以上版本,且"易用(easy)安装模式"下需要参照各 demo 的conf/目录自行准备 yaml 配置文件。对照本文的配置表与源码路径,即可快速将对应 demo 改造成自己的业务方案。

【免费下载链接】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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/23 20:55:09

YOLOV5交通标志识别实战:数据集清洗、anchor聚类与切片推理全解析

简介&#xff1a;这是一套面向高校学生与深度学习入门者的YOLOV5交通标志识别检测完整项目资源&#xff0c;适用于毕业设计、期末大作业与课程设计等场景&#xff0c;可帮助读者快速搭建目标检测实验环境并完成从数据到推理的全流程实践。压缩包共266个文件&#xff0c;约423.3…

作者头像 李华
网站建设 2026/9/23 20:55:01

海淀区信息学竞赛预选赛真题详解:语法、程序阅读与算法建模

简介&#xff1a;2024年海淀区中小学生信息学竞赛校级预选赛试题&#xff0c;面向海淀区中小学生的信息学与编程基础选拔&#xff0c;可用于赛前模拟、知识自测与教师命题参考。试题含编程基础知识单选与程序阅读单选两类题型&#xff0c;覆盖变量命名、赋值语句、进制转换、表…

作者头像 李华
网站建设 2026/9/23 20:50:54

深度强化学习重构时间序列预测:DQN框架与实战解析

简介&#xff1a;在时间序列预测任务中引入深度强化学习&#xff0c;是近年来的研究热点之一。该zip包以DRL为工具解决序列预测问题&#xff0c;面向具备Python和机器学习基础、希望进阶强化学习的开发者。项目围绕DQN等模型展开&#xff0c;将预测转化为智能体在环境中的决策过…

作者头像 李华
网站建设 2026/9/23 20:38:55

基于计算机视觉的道路坑洼检测:多种算法模型对比与Python实战

简介&#xff1a;这份资源是面向计算机相关专业学生与项目实战学习者的道路坑洼检测课程设计资料&#xff0c;基于计算机视觉方法实现路面病害识别&#xff0c;并横向对比AlexNet、LeNet-5、LeNet-5 2.0等多种算法模型的检测效果&#xff0c;适合作为毕设、课设、期末大作业或算…

作者头像 李华
网站建设 2026/9/23 20:38:52

饥荒机器人全攻略:解锁、齿轮升级与成神养成路线

1. 玩机器人之前&#xff0c;先搞清楚这几点饥荒里的机器人&#xff08;WX-78&#xff09;是个特别容易让人又爱又恨的角色。爱的是他后期属性爆炸&#xff0c;恨的是他前期脆得跟纸一样&#xff0c;而且一碰雨水就掉血。很多新手第一次选到他&#xff0c;活不过三天就直接放弃…

作者头像 李华