指南:demos 目錄全場景解析)
PaddleSpeech 語音應用實戰(zhàn)指南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/PaddleSpeechPaddleSpeech 的demos/目錄匯集了 15 個可直接運行的語音應用示例覆蓋語音識別ASR、語音合成TTS、音頻分類CLS、語音翻譯ST、說話人驗證、流式服務端等核心任務。本指南以 demos/README.md 為骨架逐一對每個 demo 的用途、命令用法、參數(shù)含義與預訓練模型進行講解并結(jié)合倉庫源碼與配置文件如 demos/speech_server/conf/application.yaml補充底層實現(xiàn)細節(jié)幫助你快速選定并跑通適合自己業(yè)務場景的語音應用。上圖展示了audio_searchingdemo 中音頻向量入庫—Milvus 相似度檢索—MySQL 元數(shù)據(jù)回查的完整工作流它是 demos 目錄中架構(gòu)最完整、組件最豐富的示例之一。本文將按單機命令行任務 → 服務化部署 → 復合場景應用三個層次展開全部 demo。一、demos 目錄全景15 個應用一覽根據(jù) demos/README.md該目錄包含以下語音應用Demo 目錄核心能力依賴組件audio_searching大規(guī)模音頻相似度檢索Milvus MySQL FastAPIaudio_tagging音頻多標簽分類527 類 AudioSetPaddleSpeech CLSautomatic_video_subtitles視頻自動字幕ASR 標點恢復metaverse讓圖片中的人物開口說話TTS PaddleGANpunctuation_restoration無標點文本標點恢復PaddleNLP ERNIEspeech_recognition音頻轉(zhuǎn)寫文本ASRspeech_server離線語音服務HTTPASR/TTS/CLS/Text/Vector 多引擎streaming_asr_server流式語音識別服務WebSocketDeepSpeech2/Conformerstreaming_tts_server流式語音合成服務HTTP/WebSocketFastSpeech2 流式聲碼器speech_translation端到端語音翻譯FAT-ST 模型story_talker基于 OCR TTS 的故事書朗讀器PaddleOCR TTSstyle_fs2FastSpeech2 多風格控制FastSpeech2text_to_speech文本轉(zhuǎn)語音多種聲學模型 聲碼器speech_ssl自監(jiān)督預訓練特征提取與識別wav2vec2/HuBERT/WavLMwhisper基于 Whisper 的識別與翻譯Whisper絕大多數(shù) demo 都遵循統(tǒng)一的使用范式安裝 PaddleSpeech → 準備 WAV 輸入文件 → 通過paddlespeech命令行或 Python Executor API 完成任務。下文將先介紹這些可單命令完成的語音任務。二、單命令語音任務一次調(diào)用即可完成的推理2.1 語音識別speech_recognitiondemos/speech_recognition/README.md 演示了最基礎(chǔ)的 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 結(jié)果管道到標點恢復 paddlespeech asr --input ./zh.wav -v | paddlespeech text --task punc -v核心參數(shù)包括model默認conformer_wenetspeech、lang默認zh、codeswitch默認False、sample_rate默認16000、config/ckpt_path置None時自動使用預訓練模型、yes接受程序自動轉(zhuǎn)換音頻采樣率、device與verbose。其中paddlespeech-ctcdecoders是可選依賴缺失不影響基本功能。倉庫提供的中文預訓練模型全家桶采樣率均為 16kconformer_wenetspeech、conformer_online_multicn、conformer_aishell、conformer_online_aishell、deepspeech2online_wenetspeech、deepspeech2offline_aishell、deepspeech2online_aishell英文模型transformer_librispeech、deepspeech2offline_librispeech中英混說模型conformer_talcs。對應的 Python 寫法是from paddlespeech.cli.asr import ASRExecutor后調(diào)用asr_executor(model..., audio_file..., force_yesFalse, devicepaddle.get_device())。2.2 文本轉(zhuǎn)語音text_to_speechdemos/text_to_speech/README.md 覆蓋了最豐富的 TTS 組合默認聲學模型為Fastspeech2、默認聲碼器為HiFiGAN默認走動態(tài)圖推理。# 中文 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_mixlang 必須為 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參數(shù)方面am是聲學模型類型默認fastspeech2_csmscvoc是聲碼器默認pwgan_csmsc另有am_config/am_ckpt/am_stat/phones_dict/tones_dict/speaker_dict、voc_config/voc_ckpt/voc_stat、spk_id默認0、lang默認zh、output默認output.wav、use_onnx、fs等參數(shù)。Python 側(cè)使用TTSExecutorONNX 推理時還可指定cpu_threads控制線程數(shù)。聲學模型候選包括speedyspeech_csmsc、fastspeech2_csmsc、fastspeech2_ljspeech、fastspeech2_aishell3、fastspeech2_vctk、fastspeech2_cnndecoder_csmsc、fastspeech2_mix、tacotron2_csmsc、tacotron2_ljspeech、fastspeech2_male、fastspeech2_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_taggingdemos/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參數(shù)含義input必填待分類音頻、model默認panns_cnn14、config/ckpt_path置None使用預訓練模型、label_file置None使用 AudioSet 標簽、topk返回前 k 個標簽默認1、device。實際輸出中Cat: 0.899、Meow: 0.878 等分數(shù)表示模型對各類別的置信度。Python 側(cè)通過from paddlespeech.cli.cls import CLSExecutor調(diào)用。預訓練模型有panns_cnn6、panns_cnn10、panns_cnn14采樣率均為 32000。2.4 標點恢復punctuation_restorationdemos/punctuation_restoration/README.md 解決 ASR 轉(zhuǎn)寫文本無標點、可讀性差的問題paddlespeech text --input 今天的天氣真不錯啊你下午有空嗎我想約你一起去吃飯 # 輸出今天的天氣真不錯啊你下午有空嗎我想約你一起去吃飯。參數(shù)包括task默認punc、model默認ernie_linear_p7_wudao、lang默認zh、config/ckpt_path/punc_vocab置None使用預訓練、device。預訓練模型按標點種類數(shù)區(qū)分ernie_linear_p3_wudao支持 3 種標點。ernie_linear_p7_wudao支持 7 種標點。、。Python 側(cè)使用TextExecutor。2.5 語音翻譯speech_translationdemos/speech_translation/README.md 演示端到端語音翻譯當前不支持 Windowspaddlespeech st --input ./en.wav # 輸出ST Result: [我 在 這棟 建筑 的 古老 門上 敲門 。]參數(shù)model默認fat_st_ted、src_lang默認en、tgt_lang默認zh、sample_rate默認16000、config/ckpt_path/device。預訓練模型為fat_st_teden→zh。Python 側(cè)使用from paddlespeech.cli.st import STExecutor。2.6 關(guān)鍵詞喚醒keyword_spottingdemos/keyword_spotting/README.md 從語音中識別關(guān)鍵詞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參數(shù)threshold打分閾值默認0.8、model默認mdtc_heysnips、config/ckpt_path/device/verbose。預訓練模型mdtc_heysnipsen16k。Python 側(cè)使用KWSExecutor。2.7 說話人驗證speaker_verificationdemos/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參數(shù)taskspk或score默認spk、model默認ecapatdnn_voxceleb12、sample_rate默認16000、config/ckpt_path/device。Python 側(cè)使用VectorExecutor提取兩條 embedding 后可用vector_executor.get_embeddings_score(audio_emb, test_emb)計算相似度打分。這也正是 audio_searching 檢索系統(tǒng)中向量來源的基礎(chǔ)能力。2.8 自監(jiān)督語音模型speech_ssldemos/speech_ssl/README.md 演示基于大規(guī)模無標注語音自監(jiān)督訓練得到的 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參數(shù)model默認wav2vec2可選wav2vec2、hubert、wavlm、task默認asr、lang默認en、sample_rate、config/ckpt_path/yes/device/verbose。Python 側(cè)使用SSLExecutorvector任務返回形如Tensor(shape[1, 164, 1024])的聲學表征可作為下游任務的輸入特征。2.9 Whisper 識別與翻譯whisperdemos/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參數(shù)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。翻譯任務的輸出會附帶帶時間戳的分段結(jié)果與 token 信息文檔中提示翻譯功能使用large或medium模型效果更好。Python 側(cè)使用WhisperExecutor。三、服務化部署從單機命令到多客戶端并發(fā)3.1 離線語音服務speech_serverdemos/speech_server/README.md 用一條命令啟動包含 ASR、TTS、CLS、標點、說話人向量等任務的 HTTP 服務服務端與客戶端分別使用paddlespeech_server與paddlespeech_client。配置文件位于 demos/speech_server/conf/application.yaml。其中engine_list以speech task_engine type格式聲明要加載的引擎目前支持asr_python、asr_inference、tts_python、tts_inference、cls_python、cls_inference、text_python、vector_pythonpython表示動態(tài)圖推理引擎inference表示基于 Paddle Inference 的靜態(tài)圖推理引擎。該配置文件完整給出了每個引擎的子配置例如asr_python可指定model: conformer_wenetspeech、lang: zh、decode_method: attention_rescoring、force_yes: Truetts_python需同時指定am聲學模型與voc聲碼器及各自的_config/_ckpt/_statvector_python默認task: spk、model_type: ecapatdnn_voxceleb12。若服務可正常啟動但客戶端 IP 不可達可嘗試將host改為本機實際 IP。啟動服務與調(diào)用示例# 啟動服務默認端口 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 我認為跑步最重要的就是給我?guī)砹松眢w健康客戶端參數(shù)要點ASR 客戶端支持sample_rate默認 16000、lang默認 zh_cn、audio_format默認 wavTTS 客戶端支持spk_id默認 0、speed/volume取值 0~3默認 1.0、sample_rate可選 0/8000/160000 表示與模型一致、outputvector 客戶端task可選spk或score。服務端start命令參數(shù)為config_file默認./conf/application.yaml與log_file默認./log/paddlespeech.log。查詢各任務支持的全部模型可使用paddlespeech_server stats --task asr|tts|cls|vector|text其中標注為靜態(tài)模型的可用于 Paddle Inference 推理。Python 側(cè)通過from paddlespeech.server.bin.paddlespeech_server import ServerExecutor啟動服務客戶端則使用paddlespeech.server.bin.paddlespeech_client下對應的ASRClientExecutor、TTSClientExecutor、CLSClientExecutor、VectorClientExecutor、TextClientExecutor。3.2 流式語音識別服務streaming_asr_serverdemos/streaming_asr_server/README.md 實現(xiàn)基于WebSocket 協(xié)議不支持 HTTP的流式 ASR 服務音頻邊傳邊識別、結(jié)果邊識別邊返回。目前集成了 DeepSpeech2 與 Conformer 兩類在線模型。# 啟動流式識別服務CPU 默認改 device 參數(shù)可部署到 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.yamlprotocol: websocket、engine_list: [asr_online]引擎asr_online支持model_type: conformer_online_wenetspeech、decode_method: attention_rescoring、continuous_decoding: True端點檢測后繼續(xù)解碼以及num_decoding_left_chunks控制解碼左看 chunk 數(shù)可調(diào)節(jié)實時性與準確率。從客戶端日志可觀察到識別結(jié)果逐段增量的過程如我認為跑→我認為跑步最重要的→完整句子最終消息signal: finished附帶每個字的起止時間戳times可用于字幕對齊日志還會給出RTF實時率指標。流式 ASR 還提供了兩個進階腳本聯(lián)合標點服務另起一個punc_application.yaml配置的標點服務默認端口 8190客戶端通過--punc.server_ip/--punc.port同時調(diào)用兩個服務使流式識別結(jié)果實時帶標點生成字幕.srt運行l(wèi)ocal/websocket_client_srt.py需先安裝 ffmpeg可把 mp3/wav 音頻轉(zhuǎn)寫為帶時間軸的標準.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/認知.mp33.3 流式語音合成服務streaming_tts_serverdemos/streaming_tts_server/README.md 實現(xiàn)邊說邊合成的流式 TTS 服務同時支持http 與 websocket兩種協(xié)議通過配置文件的protocol字段切換。配置文件 demos/streaming_tts_server/conf/tts_online_application.yaml 中engine_list可選tts_onlinePaddle 動態(tài)圖推理或tts_online-onnxONNXRuntime 推理速度更快。關(guān)鍵設(shè)計是分塊chunk推理聲學模型AM支持fastspeech2_csmsc與fastspeech2_cnndecoder_csmsc含 onnx 版本。其中fastspeech2不支持流式 AM 推理am_pad/am_block不生效而fastspeech2_cnndecoder支持流式am_pad12時流式合成與整句合成結(jié)果一致。am_block表示一個 chunk 中的有效幀數(shù)am_pad表示 chunk 前后附加的幀數(shù)用于消除流式推理誤差。配置示例am_block: 72、am_pad: 12。聲碼器Voc支持mb_melgan_csmsc與hifigan_csmsc含 onnx 版本。mb_melgan在voc_pad14時與整句合成一致voc_pad最小可設(shè)為 7聽感正常小于 7 會出現(xiàn)異常hifigan在voc_pad19時與整句一致voc_pad14時聽感正常。配置示例voc_block: 36、voc_pad: 14onnx 引擎還需設(shè)置與聲碼器配置一致的voc_upsample默認 300。推理速度上mb_melgan hifigan音質(zhì)上mb_melgan hifigan。啟動與調(diào)用# 默認 http 協(xié)議端口 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客戶端參數(shù)server_ip/port、protocolhttp/websocket默認 http、input必填、spk_id默認 0當前僅支持單說話人模型該參數(shù)不生效、output、play是否邊合成邊播放依賴 pyaudio 庫。流式 TTS 不支持改采樣率、變速與音量。服務日志會輸出首包響應/尾包響應/音頻時長/RTF等指標用于評估流式合成的實時性能。Python 側(cè)使用TTSOnlineClientExecutor。四、復合場景應用多技術(shù)棧組合4.1 大規(guī)模音頻相似度檢索audio_searchingdemos/audio_searching/README.md 是 demos 中架構(gòu)最完整的示例用 PaddleSpeech 預訓練模型說話人識別等把音頻轉(zhuǎn)成向量存入開源向量數(shù)據(jù)庫 Milvus 并配合 MySQL 存儲元數(shù)據(jù)實現(xiàn)海量音頻的相似度檢索可用于音效查重、聲紋庫快速檢索、防欺詐與身份盜用等。4.1.1 組件啟動與配置通過 demos/audio_searching/docker-compose.yaml 一鍵啟動 Milvus 依賴鏈etcd、MinIO、Milvus standalone與 MySQLcd demos/audio_searching/ docker-compose -f docker-compose.yaml up -d成功后會創(chuàng)建milvus-standalone端口 19530、audio-mysql端口 3306、milvus-etcd、milvus-minio及前端容器audio-webclient映射 8068→80。隨后安裝 Python 依賴并啟動后端pip install -r requirements.txt # 本地運行可跳過配置遠端運行二選一 vim src/config.py # 或 export MILVUS_HOST127.0.0.1 / export MYSQL_HOST127.0.0.1 export PYTHONPATH$PYTHONPATH:./src python src/audio_search.py # FastAPI 服務默認 0.0.0.0:8002配置參數(shù)詳見 demos/audio_searching/src/config.py參數(shù)說明默認值MILVUS_HOSTMilvus 服務 IP127.0.0.1MILVUS_PORTMilvus 端口19530VECTOR_DIMENSION向量維度2048MYSQL_HOSTMySQL IP127.0.0.1MYSQL_PORTMySQL 端口3306DEFAULT_TABLEMilvus/MySQL 默認集合名audio_table4.1.2 建庫、檢索與測試# 下載 CN-Celeb 數(shù)據(jù)集或改用 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 # 一鍵腳本測試下載數(shù)據(jù) → 加載模型 → 提取 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→ 檢索返回相似音頻及相似度分數(shù) → 清空 Milvus 與 MySQL 表。GUI 模式下訪問127.0.0.1:8068可上傳目錄建庫、上傳.wav檢索相似音頻若瀏覽器與服務不在同一機器需同步修改 docker-compose.yaml 中的API_URL并重新執(zhí)行。文檔給出的實測結(jié)論機器為 CentOS 7.6 / E5-2620 v4 / 132G 內(nèi)存數(shù)據(jù)集 CN-Celeb 訓練集 65 萬條、測試集 1 萬條、向量維度 192、L2 距離在 90% 召回率前提下Milvus 檢索約2.9 ms特征提取約500 ms測試音頻約 5 秒單條音頻總耗時約503 ms。預訓練模型為ecapa_tdnn采樣率 16000。4.2 視頻自動字幕automatic_video_subtitlesdemos/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.wavPython 側(cè)將ASRExecutor識別結(jié)果送入TextExecutor的punc任務最終得到帶標點的完整中文轉(zhuǎn)寫。這展示了 PaddleSpeech 任務間管道組合的典型模式。4.3 數(shù)字人說話metaversedemos/metaverse/README.md 將 PaddleSpeech 的 TTS 與 PaddleGAN 結(jié)合讓圖片中的人物開口說話構(gòu)建 2D 虛擬數(shù)字人./run.sh # 腳本內(nèi)部先 source path.sh 設(shè)置環(huán)境變量并包含安裝步驟替換sentences.txt中的句子可更換口播內(nèi)容替換download/Lamarr.png可更換形象。4.4 故事書朗讀器story_talkerdemos/story_talker/README.md 面向親子閱讀場景用 PaddleOCR 識別繪本文字再用 PaddleSpeech TTS 朗讀出來./run.sh4.5 FastSpeech2 多風格控制style_fs2demos/style_fs2/README.md 利用 FastSpeech2 的可控變量duration、energy、pitch實現(xiàn)風格化語音./run.sh # 內(nèi)部先 source path.sh 設(shè)置環(huán)境變量核心玩法詳見 demos/style_fs2/style_syn.py控制duration可改變語速且保持音高不變部分工具加速會連帶升高音高將整句pitch設(shè)為均值且音調(diào)置 1 可得到機器人音色按固定比例抬高成年女性pitch可得到兒童音色還可對不同音素設(shè)置不同的 duration/pitch 縮放比例來強調(diào)或弱化某些發(fā)音。句子可替換sentences.txt中的內(nèi)容。五、總結(jié)如何選擇適合自己的 demoPaddleSpeech demos 目錄覆蓋了從單命令推理到多組件服務化部署再到跨模態(tài)復合應用的完整梯度選擇路徑可參考快速體驗語音能力從 speech_recognition、text_to_speech、audio_tagging、punctuation_restoration 入手只需安裝 PaddleSpeech 與一條命令需要服務化/流式能力參考 speech_serverHTTP 多任務、streaming_asr_serverWebSocket 流式識別 標點 srt 字幕、streaming_tts_serverHTTP/WebSocket 流式合成需要工程化檢索/多媒體能力參考 audio_searchingMilvus MySQL 向量檢索、automatic_video_subtitles、story_talker、metaverse、style_fs2需要前沿模型能力參考 speech_sslwav2vec2/HuBERT/WavLM與 whisperWhisper 多語言識別與翻譯。所有 demo 的輸入音頻原則上都要求與模型采樣率匹配默認 16k配置或命令行中的force_yes/yes參數(shù)可接受程序自動完成采樣率轉(zhuǎn)換服務類 demo 建議使用 paddlepaddle 2.4rc 及以上版本且易用easy安裝模式下需要參照各 demo 的conf/目錄自行準備 yaml 配置文件。對照本文的配置表與源碼路徑即可快速將對應 demo 改造成自己的業(yè)務方案。【免費下載鏈接】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創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考