- 人工智能
- 语音
- 音频
【免费下载链接】PaddleSpeech
Easy-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.
导读
PaddleSpeech 是集语音识别(ASR)、语音合成(TTS)、声音分类、说话人验证、语音翻译、关键词检测等于一体的开源语音工具包。仓库的 demos 目录集中了 15 个覆盖不同业务场景的语音应用示例——从单条命令的离线 ASR/TTS,到基于 WebSocket 的流式识别与合成服务,再到结合向量数据库的音频检索、基于 OCR 的会说话故事书等创意应用。本文将逐一剖析每个 Demo 的应用背景、核心命令、参数含义与源码依据,帮助你按需挑选并快速落地自己的语音应用。
一、Demo 全景地图
根据 demos/README.md(英文)与 demos/README_cn.md(中文),该目录包含以下应用:
| 场景 | 一句话说明 | 对应目录 |
|---|---|---|
| 声音检索 | 海量音频相似性检索 | audio_searching |
| 声音分类 | 基于 AudioSet 527 类标签的音频多标签分类 | audio_tagging |
| 视频字幕生成 | 识别视频中的语音并做文本后处理 | automatic_video_subtitiles |
| 元宇宙 | 基于语音合成的 2D 增强现实(让照片开口说话) | metaverse |
| 标点恢复 | 为无标点纯文本添加标点 | punctuation_restoration |
| 语音识别 | 识别音频中的语音文字 | speech_recognition |
| 语音服务 | 离线语音服务(ASR、TTS、CLS 等) | speech_server |
| 流式语音识别服务 | 通过 WebSocket 流式输入并识别 | streaming_asr_server |
| 流式语音合成服务 | 根据文本流式生成合成音频 | streaming_tts_server |
| 语音翻译 | 识别音频语言并翻译成目标语言 | speech_translation |
| 会说话的故事书 | 基于 OCR 与 TTS 的儿童故事书阅读 | story_talker |
| 个性化语音合成 | 基于 FastSpeech2 的多风格控制 | style_fs2 |
| 语音合成 | 基于文本生成语音音频 | text_to_speech |
| 自监督预训练 | 基于 wav2vec2 的特征提取与识别 | speech_ssl |
| Whisper | 基于 Whisper 模型的识别与翻译 | whisper |
几乎所有 Demo 都遵循同一套使用范式:安装 PaddleSpeech → 准备输入(WAV 音频或文本)→ 通过paddlespeech命令行或 Python API 执行。命令行入口的实现位于 paddlespeech/cli(含 asr、tts、cls、st、text、whisper、ssl 等子模块),服务类 Demo 则依赖 paddlespeech/server 下的paddlespeech_server/paddlespeech_client工具。
二、离线单命令类 Demo:一条命令完成任务
2.1 语音识别(ASR)
语音识别 Demo 的目标是把一段音频自动转写成文字(Speech-to-Text)。输入必须是 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 # 英文识别 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核心参数(来自 speech_recognition/README.md):
| 参数 | 含义 | 默认值 |
|---|---|---|
input(必填) | 待识别音频文件 | — |
model | 模型类型 | conformer_wenetspeech |
lang | 模型语言 | zh |
codeswitch | 是否启用中英混说模型 | False |
sample_rate | 模型采样率 | 16000 |
config/ckpt_path | 自定义配置与权重,置 None 使用预训练模型 | None |
yes | 自动接受程序请求(包括音频采样率转换) | False |
device | 推理设备 | 当前环境 Paddle 默认设备 |
verbose | 是否显示日志 | 关闭 |
paddlespeech asr的底层实现对应 paddlespeech/cli/asr 中的ASRExecutor。文档给出的输出示例:
[2021-12-08 13:12:34,063] [ INFO] [utils.py] [L225] - ASR Result: 我认为跑步最重要的就是给我带来了身体健康官方支持的 ASR 预训练模型包括:conformer_wenetspeech、conformer_online_multicn、conformer_aishell、conformer_online_aishell、transformer_librispeech、deepspeech2online_wenetspeech、deepspeech2offline_aishell、deepspeech2online_aishell、deepspeech2offline_librispeech、conformer_talcs(支持中英混说,采样率均为 16k)。
2.2 语音合成(TTS)
语音合成 Demo 把文本转换为语音。默认声学模型为Fastspeech2、默认声码器为HiFiGAN、默认推理方式为动态图推理。中文一行搞定:
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!"批量处理(利用 stdin 按行传入序号 文本):
echo -e "1 欢迎光临。\n2 谢谢惠顾。" | paddlespeech tts多语言/多说话人组合示例:
# 中文,换用 SpeedySpeech 声学模型 paddlespeech tts --am speedyspeech_csmsc --input "你好,欢迎使用百度飞桨深度学习框架!" # 中文多说话人(AISHELL-3,可改 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" # 英文多说话人(VCTK) paddlespeech tts --am fastspeech2_vctk --voc pwgan_vctk --input "hello, boys" --lang en --spk_id 0 # 中英混说(am 必须为 fastspeech2_mix,lang 必须为 mix;spk 174 为 csmsc 音色,175 为 ljspeech 音色) paddlespeech tts --am fastspeech2_mix --voc hifigan_csmsc --lang mix --input "热烈欢迎您在 Discussions 中提交问题,并在 Issues 中指出发现的 bug。" --spk_id 174 --output mix_spk174.wav # 男声混说模型 paddlespeech tts --am fastspeech2_male --voc hifigan_male --lang mix --input "我们的声学模型使用了 Fast Speech Two。" --output male_mix_fs2_hifigan.wav # 粤语 paddlespeech tts --am fastspeech2_canton --voc pwgan_aishell3 --input "各个国家有各个国家嘅国歌" --lang canton --spk_id 10ONNXRuntime 推理加速(加--use_onnx True,并支持--am/--voc自由组合):
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output default.wav --use_onnx True paddlespeech tts --am speedyspeech_csmsc --input "你好,欢迎使用百度飞桨深度学习框架!" --output ss.wav --use_onnx True paddlespeech tts --am fastspeech2_ljspeech --voc hifigan_ljspeech --lang en --input "Life was like a box of chocolates." --output lj_fs2_hifigan.wav --use_onnx True paddlespeech tts --am fastspeech2_canton --voc pwgan_aishell3 --lang canton --spk_id 10 --input "各个国家有各个国家嘅国歌" --output output_canton.wav --use_onnx Truepaddlespeech tts关键参数(paddlespeech tts --help可查看全部):
| 参数 | 含义 | 默认值 |
|---|---|---|
input(必填) | 待合成文本 | — |
am | 声学模型类型 | fastspeech2_csmsc |
am_config/am_ckpt/am_stat | 声学模型配置/权重/归一化统计量,置 None 用预训练模型 | None |
phones_dict/tones_dict/speaker_dict | 音素/声调/说话人映射文件 | None |
spk_id | 多说话人模型说话人 ID | 0 |
voc | 声码器类型 | pwgan_csmsc |
voc_config/voc_ckpt/voc_stat | 声码器配置/权重/统计量 | None |
lang | 语言 | zh |
device | 推理设备 | 环境默认 |
output | 输出 wav 路径 | output.wav |
use_onnx | 是否使用 ONNXRuntime 推理 | 关闭 |
fs | 指定 ONNX 模型文件时的采样率 | 无 |
对应实现见 paddlespeech/cli/tts 的TTSExecutor。Python API 调用方式:
import paddle from paddlespeech.cli.tts import TTSExecutor tts_executor = TTSExecutor() wav_file = tts_executor( text='今天的天气不错啊', output='output.wav', am='fastspeech2_csmsc', spk_id=0, voc='pwgan_csmsc', lang='zh', device=paddle.get_device()) print('Wave file has been generated: {}'.format(wav_file))ONNXRuntime 推理的 Python 写法只需追加use_onnx=True, cpu_threads=2。
预训练模型清单(摘自 text_to_speech/README.md):
- 声学模型:
speedyspeech_csmsc(zh)、fastspeech2_csmsc(zh)、fastspeech2_ljspeech(en)、fastspeech2_aishell3(zh)、fastspeech2_vctk(en)、fastspeech2_cnndecoder_csmsc(zh)、fastspeech2_mix(mix)、tacotron2_csmsc(zh)、tacotron2_ljspeech(en)、fastspeech2_male(zh/en/mix)、fastspeech2_canton(canton) - 声码器:
pwgan_csmsc、pwgan_ljspeech、pwgan_aishell3、pwgan_vctk、mb_melgan_csmsc、style_melgan_csmsc、hifigan_csmsc、hifigan_ljspeech、hifigan_aishell3、hifigan_vctk、wavernn_csmsc、pwgan_male、hifigan_male
2.3 声音分类(Audio Tagging)
声音分类 Demo 对一段音频打上 1 个或多个 AudioSet 标签(共 527 类),属于多标签分类任务。下载示例音频后执行:
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参数要点:model默认panns_cnn14;topk控制展示前 N 个标签(默认 1);label_file置 None 时使用 AudioSet 默认标签。文档给出的输出示例(对猫叫音频):
CLS Result: Cat: 0.8991316556930542 Domestic animals, pets: 0.8806838393211365 Meow: 0.8784668445587158 Animal: 0.8776564598083496 Caterwaul: 0.2232048511505127预训练模型:panns_cnn6/panns_cnn10/panns_cnn14(采样率均为 32000)。Python API 使用paddlespeech.cli.cls.CLSExecutor。
2.4 标点恢复(Punctuation Restoration)
标点恢复 Demo 是 ASR 的常见文本后处理任务,为无标点文本补上标点以提升可读性并方便下游 NLP:
paddlespeech text --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭 # 输出:今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。参数:task默认punc;model默认ernie_linear_p7_wudao;lang默认zh;punc_vocab为标点词表文件(默认 None)。Python 侧对应 paddlespeech/cli/text 的TextExecutor。该任务既可作为独立命令,也可与 ASR 通过管道组合(见 2.1 节),还常与流式 ASR 服务串联(见 4.2 节)。
2.5 语音翻译(Speech Translation)
语音翻译 Demo 实现端到端语音翻译:识别音频中的语言并翻译成目标语言(当前不支持 Windows):
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav https://paddlespeech.cdn.bcebos.com/PaddleAudio/en.wav paddlespeech st --input ./en.wav # 输出:ST Result: ['我 在 这栋 建筑 的 古老 门上 敲门 。']参数:model默认fat_st_ted;src_lang默认en;tgt_lang默认zh;sample_rate默认16000。实现位于 paddlespeech/cli/st 的STExecutor。
2.6 自监督预训练模型(Speech SSL)
Speech SSL Demo 基于 wav2vec2 等自监督模型,支持两种任务:asr(语音识别)与vector(提取声学表征):
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/hubert/wavlm(默认wav2vec2);task默认asr。自监督模型在大规模无标注语音上训练得到通用声学表征,再通过下游任务微调迁移,实现位于 paddlespeech/cli/ssl。
2.7 Whisper 识别与翻译
Whisper Demo 接入 OpenAI 的 Whisper 通用语音识别模型,支持多语种识别、语音翻译与语种识别:
wget -c https://paddlespeech.cdn.bcebos.com/PaddleAudio/zh.wav # 转写 paddlespeech whisper --task transcribe --input ./zh.wav # 指定英文 only 模型(base 尺寸) paddlespeech whisper --lang en --size base --task transcribe --input ./en.wav # 识别并翻译成英文 paddlespeech whisper --task translate --input ./zh.wav参数:task默认transcribe;size默认turbo,支持[turbo, large, medium, base, small, tiny];lang置en可选择 English-only 模型(medium/base/small/tiny支持);language可强制指定识别语种;sample_rate固定 16000。实现对应 paddlespeech/cli/whisper 的WhisperExecutor。
三、创意应用类 Demo:跨模块组合玩法
3.1 视频字幕生成
automatic_video_subtitiles 使用 ASR + 标点恢复为视频自动生成字幕。先下载视频并抽取单声道 16k WAV:
wget -c https://paddlespeech.cdn.bcebos.com/demos/asr_demos/subtitle_demo1.mp4 ffmpeg -i subtitle_demo1.mp4 -ac 1 -ar 16000 -vn input.wav再通过 Python API 串联ASRExecutor与TextExecutor:
import paddle from paddlespeech.cli.asr import ASRExecutor from paddlespeech.cli.text import TextExecutor asr_executor = ASRExecutor() text_executor = TextExecutor() text = asr_executor(audio_file='input.wav', device=paddle.get_device()) result = text_executor(text=text, task='punc', model='ernie_linear_p3_wudao', device=paddle.get_device()) print('Text Result: \n{}'.format(result))文档输出示例为:当我说我可以把三十年的经验变成一个准确的算法,他们说不可能。当我说我们十个人就能实现对十九个城市变电站七乘二十四小时的实时监管,他们说不可能。若需生成 .srt 字幕文件,也可直接复用流式 ASR 服务端提供的websocket_client_srt.py脚本(见 4.3 节)。
3.2 会说话的故事书(Story Talker)
story_talker 面向低龄儿童“听书”场景:用PaddleOCR识别故事书文字,再用 PaddleSpeech 的 TTS 模块朗读。运行:
./run.sh3.3 元宇宙:让照片开口说话
metaverse 将 PaddleSpeech TTS 与 PaddleGAN 组合,让图片中的人物“说出”指定内容,构造 2D 虚拟人。一键脚本完成安装与运行:
./run.sh脚本内会先source path.sh设置环境变量;修改sentences.txt可更换台词,替换脚本中的download/Lamarr.png可更换图片。
3.4 个性化语音合成(Style FastSpeech2)
style_fs2 利用 FastSpeech2 的可控输入(音素时长、能量、音高)做风格控制:
- 调整
duration可改变语速且保持音高不变(许多工具变速会连带改变音高); - 将整句
pitch设为均值、tones置 1,可得到机器人风格音色; - 按固定比例抬高成年女性的
pitch,可得到儿童风格音色; - 句子中不同音素的
duration/pitch可分别设置不同缩放比例,以强调或弱化某些音素的发音。
运行方式:
./run.sh脚本会先source path.sh设置环境变量,替换sentences.txt可尝试自定义句子,细节实现在style_syn.py中。
3.5 海量音频相似性检索(Audio Searching)
audio_searching 是最完整的系统级 Demo:用 PaddleSpeech 预训练模型(说话人识别模型ecapa_tdnn等)把音频转成向量,存入开源向量数据库Milvus,并用MySQL保存 ID 与音频元信息的映射,实现亿级音频的相似性检索(可用于找相似音效、防止版权侵权、声纹库快速检索、反欺诈等)。
整体流程(文档原图 img/audio_searching.png):
- 上传音频 → PaddleSpeech 模型提取 embedding 向量 → 存入 Milvus;
- Milvus 为每个向量生成唯一 ID,ID 与音频信息(音频 ID、说话人 ID 等)写入 MySQL 完成建库;
- 检索时对测试音频提向量 → Milvus 做向量相似度搜索 → 按返回的向量 ID 去 MySQL 反查音频信息。
搭建步骤:
# 1. 一键启动 Milvus + MySQL + Web 前端容器 cd demos/audio_searching/ docker-compose -f docker-compose.yaml up -d # 2. 安装 Python 依赖并启动 FastAPI 后端 pip install -r requirements.txt export PYTHONPATH=$PYTHONPATH:./src python src/audio_search.py # Uvicorn running on http://0.0.0.0:8002 # 3. 端到端脚本测试(下载数据、提向量、建库、检索、删库) python ./src/test_audio_search.py关键配置(src/config.py,本地运行可跳过):
| 参数 | 说明 | 默认值 |
|---|---|---|
MILVUS_HOST/MILVUS_PORT | Milvus 地址与端口 | 127.0.0.1/19530 |
VECTOR_DIMENSION | 向量维度 | 2048 |
MYSQL_HOST/MYSQL_PORT | MySQL 地址与端口 | 127.0.0.1/3306 |
DEFAULT_TABLE | Milvus/MySQL 默认集合名 | audio_table |
文档基于 CN-Celeb 数据集(65 万训练音频、1 万测试音频、3000 说话人、向量维度 192、L2 距离)给出的实测数据为:特征提取约 500 ms、基于 Milvus 的检索约 2.9 ms(90% 召回率前提下)、单条 5 秒测试音频总耗时约 503 ms。文档同时说明这些数据来自特定机器配置(CentOS 7.6 / Xeon E5-2620 v4 / 132G 内存),并提示数据集可按需替换(如 Librispeech、VoxCeleb、UrbanSound 等)。支持的前端地址为127.0.0.1:8068;若浏览器与服务不在同一台机器,需同步修改docker-compose.yaml中的API_URL并重新执行 compose。
四、服务化部署类 Demo:Server / Client 架构
服务类 Demo 均基于paddlespeech_server与paddlespeech_client两个命令行工具(实现见 paddlespeech/server/bin),配置采用 YAML 文件驱动。
4.1 离线语音服务(Speech Server)
speech_server 提供离线多任务语音服务,engine_list按<语音任务>_<引擎类型>格式声明要启动的引擎。目前已集成任务包括asr(语音识别)、tts(语音合成)、cls(声音分类),引擎类型支持python与inference(Paddle Inference)。配置示例位于 conf/application.yaml,中英混说识别请改用 conf/conformer_talcs_application.yaml。
paddlespeech_server start --config_file ./conf/application.yaml容器中若服务正常启动但客户端访问不到,可尝试把配置文件中的host改为本机局域网 IP。官方建议使用 paddlepaddle 2.4rc 及以上版本。
4.2 流式语音识别服务(Streaming ASR Server)
streaming_asr_server 接收 WebSocket 音频流并实时输出转写文本。该服务只支持websocket协议,不支持http。目前集成的模型包括 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启动成功后日志会显示Uvicorn running on http://0.0.0.0:8090。客户端调用:
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --input ./zh.wav客户端参数:server_ip(默认 127.0.0.1)、port(默认 8090)、input(必填)、sample_rate(默认 16000)、lang(默认 zh_cn)、audio_format(默认 wav)、punc.server_ip/punc.server_port(可选,指向标点服务)。客户端日志会逐帧显示增量识别结果,最后返回带逐字时间戳的完整结果:
client final receive msg={'status': 'ok', 'signal': 'finished', 'result': '我认为跑步最重要的就是给我带来了身体健康', 'times': [{'w': '我', 'bg': 0.0, 'ed': 0.7}, ...]}Python 端使用paddlespeech.server.bin.paddlespeech_server.ServerExecutor(服务端)与paddlespeech.server.bin.paddlespeech_client.ASROnlineClientExecutor(客户端)。
流式 ASR + 标点服务串联:用bash server.sh或分别启动两个服务(conf/ws_conformer_wenetspeech_application.yaml 与 conf/punc_application.yaml,后者默认监听 8190 端口),然后:
paddlespeech_client asr_online --server_ip 127.0.0.1 --port 8090 --punc.server_ip 127.0.0.1 --punc.port 8190 --input ./zh.wav # 或使用仓库脚本 python3 local/websocket_client.py --server_ip 127.0.0.1 --port 8090 --punc.server_ip 127.0.0.1 --punc.port 8190 --wavfile ./zh.wav串联后输出即变为带标点的流式文本:我认为,跑步最重要的就是给我带来了身体健康。
4.3 流式识别生成 SRT 字幕
在 streaming_asr_server 目录下,还可以用local/websocket_client_srt.py同时调用流式识别与标点服务,直接生成.srt字幕文件(需先安装 ffmpeg,输入支持.wav或.mp3):
paddlespeech_server start --config_file ./conf/ws_conformer_wenetspeech_application.yaml # 另开终端 paddlespeech_server start --config_file conf/punc_application.yaml # 再开终端调用客户端 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脚本会先通过 ffmpeg 把 mp3 转为 wav,流式转写并恢复标点后按句子切分,依据逐字时间戳输出到认知.srt,文档日志末尾可见results saved to .../认知.srt。
4.4 流式语音合成服务(Streaming TTS Server)
streaming_tts_server 根据文本流式返回合成音频,同时支持 http 与 websocket 两种协议,由配置文件 conf/tts_online_application.yaml 中的protocol字段决定。engine_list取tts_online(Python 动态图推理)或tts_online-onnx(onnxruntime 推理,速度更快)。
模型与块推理(chunk inference)机制是该 Demo 的核心:
- AM(声学模型)支持
fastspeech2与fastspeech2_cnndecoder;fastspeech2不支持流式 AM 推理(am_pad/am_block对其无效),fastspeech2_cnndecoder支持流式推理,am_pad=12时流式合成音频与整句合成一致; - Voc(声码器)支持
hifigan与mb_melgan:mb_melgan在voc_pad=14时与整句一致,最小可设voc_pad=7(低于 7 会听到异常音);hifigan在voc_pad=19时与整句一致,voc_pad=14时无听觉异常;
am_block/am_pad分别表示每个 chunk 的有效帧数与前后补帧数,补帧用于消除流式推理误差;- 速度上
mb_melgan > hifigan,音质上mb_melgan < hifigan。
启动服务并调用(http 方式):
paddlespeech_server start --config_file ./conf/tts_online_application.yaml paddlespeech_client tts_online --server_ip 127.0.0.1 --port 8092 --protocol http --input "您好,欢迎使用百度飞桨语音合成服务。" --output output.wavwebsocket 方式仅需把配置文件protocol改为websocket,并把客户端参数--protocol websocket。客户端参数:server_ip(默认 127.0.0.1)、port(默认 8092)、protocol(http/websocket,默认 http)、input(必填)、spk_id(默认 0,当前代码仅支持单说话人模型,因此不生效)、output(默认不保存本地)、play(是否边合成边播放,需依赖 pyaudio)。注意:流式 TTS 不支持改变采样率、变速与变调。文档给出的 http 调用输出示例:
句子:您好,欢迎使用百度飞桨语音合成服务。 首包响应:0.18863153457641602 s 尾包响应:3.1427218914031982 s 音频时长:3.825 s RTF: 0.8216266382753459 音频保存至:output.wav五、附录:快速选型参考
| 需求 | 推荐 Demo | 最小操作 |
|---|---|---|
| 快速转写单条音频 | speech_recognition | paddlespeech asr --input a.wav |
| 文本转语音 | text_to_speech | paddlespeech tts --input "你好" |
| 音频打标签 | audio_tagging | paddlespeech cls --input a.wav --topk 10 |
| 文本补标点 | punctuation_restoration | paddlespeech text --input 无标点文本 |
| 语音翻译 | speech_translation | paddlespeech st --input a.wav |
| 实时流式识别 | streaming_asr_server | Server +asr_onlineclient |
| 实时流式合成 | streaming_tts_server | Server +tts_onlineclient |
| 离线多任务服务 | speech_server | paddlespeech_server start --config_file ./conf/application.yaml |
| 海量音频检索 | audio_searching | docker-compose +python src/audio_search.py |
| 视频/音频字幕 | automatic_video_subtitiles / streaming ASR 的 srt 脚本 | ASR+标点串联 |
| 图片人物发声 | metaverse | ./run.sh |
| 故事书朗读 | story_talker | ./run.sh |
| 风格化合成 | style_fs2 | ./run.sh |
| 自监督表征/识别 | speech_ssl | paddlespeech ssl --task asr/vector |
| 多语种识别/翻译 | whisper | paddlespeech whisper --task transcribe/translate |
所有 Demo 的使用前提都是先完成 安装指南(提供 easy / medium / hard 三档安装方式,easy 模式安装服务类 Demo 时需自行参考conf目录准备 YAML 配置)。离线条命令的参数详解可用paddlespeech <task> --help查看;服务类参数可用paddlespeech_server start --help与paddlespeech_client <subcommand> --help查看。
结语
PaddleSpeech 的demos目录展示了从“单命令工具”到“可上线的 Server/Client 服务”,再到“跨模块创意应用”的完整落地梯度。无论你是想快速验证模型效果、为产品接入流式识别/合成,还是搭建音频检索系统,都能在 demos/README.md 中找到对应的可直接运行的起点;而每个子目录 README 中的参数表、输出日志与 paddlespeech/cli、paddlespeech/server 的源码相互印证,可作为进一步定制开发的技术依据。
- 人工智能
- 语音
- 音频
【免费下载链接】PaddleSpeech
Easy-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.
相关推荐
PaddleSpeech 语音应用实战指南:demos 目录全场景解析
PaddleSpeech 语音应用实战指南:demos 目录全场景解析 PaddleSpeech 的 demos/ 目录汇集了 15 个可直接运行的语音应用示例
人工智能语音音频NLP媒体生成3行代码实现语音合成:PaddleSpeech全场景应用指南
3行代码实现语音合成:PaddleSpeech全场景应用指南 你还在为语音合成开发复杂、效果差而烦恼吗?是否想快速将文字转换为自然流畅的语音,应用到教育、客服、
人工智能语音音频GenieX技术深度解析:高通设备本地AI推理SDK架构设计与实战应用
GenieX技术深度解析:高通设备本地AI推理SDK架构设计与实战应用 GenieX是高通推出的端侧AI推理运行时,专门为Snapdragon设备优化,支持在H
人工智能大模型推理引擎本地部署多模态
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考