PaddleSpeech 又帶著新功能和大家見面了。本次更新,為開發(fā)者們帶來了基于端到端語音識別模型 Conformer 的中英文混合語音識別方案,通過命令行和 Python 可以快速體驗,也根據(jù) PaddleSpeech 模型訓練方案定制與業(yè)務場景相關的語音識別模型。歡迎廣大開發(fā)者使用 NVIDIA 與飛槳聯(lián)合深度適配的 NGC 飛槳容器,在 NVIDIA GPU 上體驗 PaddleSpeech 中英文混合語音識別方案。
本次 PaddleSpeech 發(fā)布的中英文語音識別預訓練模型 Conformer_talcs 以通過 PaddleSpeech 封裝的命令行工具 CLI 或者 Python 接口快速使用,開發(fā)者們可以基于此搭建自己的智能語音應用,也可以參考示例訓練自己的中英文語音識別模型。
示例鏈接:
https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/tal_cs/asr1
快速體驗
使用命令行工具 CLI 快速體驗語音識別效果,命令如下:
```bash paddlespeech asr --model conformer_talcs --lang zh_en --codeswitch True --input ./ch_zh_mix.wav -v # 終端輸出:今天是 monday 明天是 tuesday ```
Python 接口快速體驗,代碼實現(xiàn)如下:
```python >>> import paddle >>> from paddlespeech.cli.asr import ASRExecutor >>> asr_executor = ASRExecutor() >>> text = asr_executor( model='conformer_talcs', lang='zh_en', sample_rate=16000, config=None, ckpt_path=None, audio_file='./ch_zh_mix.wav', codeswitch=True, force_yes=False, device=paddle.get_device()) >>> print('ASR Result: {}'.format(text)) ASR Result: 今天是 monday 明天是 tuesday ```
1.中英文語音識別技術
1.1 中英文語音識別難點
中英文語音識別相較于單語言的語音識別而言,主要難點如下:
1) 數(shù)據(jù)量少
中英混合數(shù)據(jù)相較于單語言的數(shù)據(jù)更少。目前開源的中文語音識別數(shù)據(jù)集如 WenetSpeech(10000 小時有監(jiān)督,2500 小時弱監(jiān)督,10000 小時無監(jiān)督)、英文語音識別數(shù)據(jù)集 Giga Speech(10000 小時有監(jiān)督,33000 小時無監(jiān)督)都達到了萬小時級別,但是混合的開源中英文語音識別數(shù)據(jù)只有 SEAME (120小時)和 TAL_CSASR (587小時) 兩個開源數(shù)據(jù),混合數(shù)據(jù)集比單語言數(shù)據(jù)集會更少。
2) 中英相似發(fā)音易混淆
中英文語音識別需要一個單一的模型來學習多種語音,相似但具有不同含義的發(fā)音通常會導致模型的復雜度和計算量增加,同時由于它需要區(qū)分處理不同語言的類似發(fā)音,因此在模型建模時就需要按照不同語言區(qū)分不同的建模單元。
1.2 PaddleSpeech 中英文語音識別方案
1.2.1 模型選擇與介紹
本方案使用了一種端到端語音識別模型 Conformer U2 模型,其采用了 Joint CTC/Attention with Transformer or Conformer 的結構。訓練時使用 CTC 和 Attention Loss 聯(lián)合優(yōu)化,并且通過 dynamic chunk 的訓練技巧,使 Shared Encoder 能夠處理任意大小的 chunk(即任意長度的語音片段)。其還使用 CTC-Prefix Beam Search 和 Attention Decoder 的方式進行解碼,得到最終結果,同時實現(xiàn)了流式和非流式的語音識別,支持控制推理延遲。
本次 PaddleSpeech 開源的預訓練模型,是非流式的端到端識別 Conformer U2 模型,chunk 中包含全部上下文信息,需要整句輸入進行識別。如果你想訓練流式中英文語音識別模型,也可以參考 PaddleSpeech 的 Conformer U2/U2++模型流式語音識別的示例訓練自己的流式中英文語音識別模型。
示例鏈接:
https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/wenetspeech/asr1
Conformer U2 結構示意圖[1]
1.2.2 數(shù)據(jù)集介紹
本次使用了 TAL_CSASR 中英混合語音數(shù)據(jù)集。語音場景為語音授課音頻,包括中英混合講課的情況,總計 587 小時語音。
數(shù)據(jù)集下載地址:https://ai.100tal.com/dataset
數(shù)據(jù)集介紹[2]
1.2.3 中英混合語音識別建模單元
在中文語音識別系統(tǒng)中,常采用音素、漢字、詞等作為聲學模型的建模單元,在英文語音識別系統(tǒng)中則常采用英文音素、國際音標、子詞等作為聲學模型的建模單元。
本次 PaddleSpeech 開源的預訓練中英文語音識別模型是采用端到端語音識別模型 Conformer U2,未接入語言模型,使用了中文字/詞加英文子詞的建模方法,將中英文分開建模,通過模型推理,直接得到識別后的結果。
1.2.4 試驗結果對比
由于本項目使用的是中英文混合數(shù)據(jù)集,所以我們選擇混合錯誤率(MER,Mix Error Rate)作為評價指標,中文部分計算字錯誤率(CER,Character Error Rate),英文部分計算詞錯誤率(Word Error Rate)。測試數(shù)據(jù)集選擇 TAL_CSASR 中已經(jīng)劃分好的測試集。由于不同的解碼方式識別的效果不同,這里我們使用 Attention、CTC Greedy Search、CTC Prefix Beam Search、Attention Rescoring 四種解碼方式進行試驗,解碼效果最佳為 Attention Rescoring,混合錯誤率 MER 為 0.084,折算為我們常說的語音識別正確率 91.6%。
1.2.5 進一步優(yōu)化與效果提升
當前中英文語音識別方案的效果還有進一步提升的空間,比如在 Conformer U2 模型后面加入 Language Model,通過語言模型學習中英文語言信息, PaddleSpeech 中提供了基于 N-Gram 的語言模型訓練方案。此外,可以在訓練過程中加入 Language ID,使用 token 級別或者幀級別的語言 ID 標注信息,可以進一步提高中英文語音識別的效果。如果你有更大的中英文混合數(shù)據(jù)集或者是場景相關的數(shù)據(jù)集,可以通過微調或者進一步訓練,提高在業(yè)務場景中的識別效果。
2.PaddleSpeech 語音識別技術介紹
除了中英文混合的 Conformer U2 模型以外,飛槳語音模型庫 PaddleSpeech 中包含了多種語音識別模型,能力涵蓋了聲學模型、語言模型、解碼器等多個環(huán)節(jié),支持多種語言。目前 PaddleSpeech 已經(jīng)支持的語音識別聲學模型包括 DeepSpeech2、Transfromer、Conformer U2/U2 ++,支持中文和英文的單語言識別以及中英文混合識別;支持 CTC 前束搜索(CTC Prefix Beam Search)、CTC 貪心搜索(CTC Greedy Search)、注意力重打分(Attention Rescoring)等多種解碼方式;支持 N-Gram 語言模型、有監(jiān)督多語言大模型 Whisper、無監(jiān)督預訓練大模型 wav2vec2;同時還支持服務一鍵部署,可以快速封裝流式語音識別和非流式語音識別服務。
通過 PaddleSpeech 提供的命令行工具 CLI 和 Python 接口可以快速體驗上述功能。通過 PaddleSpeech 精品項目合集,可以在線體驗 PaddleSpeech 的優(yōu)秀項目,上面更有核心開發(fā)者精心打造的《飛槳 PaddleSpeech 語音技術課程》,幫助開發(fā)者們快速入門。
3. NGC 飛槳容器介紹
如果您希望體驗 PaddleSpeech 的新特性,歡迎使用 NGC 飛槳容器。NVIDIA 與百度飛槳聯(lián)合開發(fā)了 NGC 飛槳容器,將最新版本的飛槳與最新的 NVIDIA 的軟件棧(如 CUDA)進行了無縫的集成與性能優(yōu)化,最大程度的釋放飛槳框架在 NVIDIA 最新硬件上的計算能力。這樣,用戶不僅可以快速開啟 AI 應用,專注于創(chuàng)新和應用本身,還能夠在 AI 訓練和推理任務上獲得飛槳+ NVIDIA 帶來的飛速體驗。
最佳的開發(fā)環(huán)境搭建工具 - 容器技術
容器其實是一個開箱即用的服務器。極大降低了深度學習開發(fā)環(huán)境的搭建難度。例如你的開發(fā)環(huán)境中包含其他依賴進程(redis,MySQL,Ngnix,selenium-hub 等等),或者你需要進行跨操作系統(tǒng)級別的遷移
容器鏡像方便了開發(fā)者的版本化管理
容器鏡像是一種易于復現(xiàn)的開發(fā)環(huán)境載體
容器技術支持多容器同時運行
最好的 PaddlePaddle 容器
NGC 飛槳容器針對 NVIDIA GPU 加速進行了優(yōu)化,并包含一組經(jīng)過驗證的庫,可啟用和優(yōu)化 NVIDIA GPU 性能。此容器還可能包含對 PaddlePaddle 源代碼的修改,以最大限度地提高性能和兼容性。此容器還包含用于加速 ETL (DALI, RAPIDS)、訓練(cuDNN, NCCL)和推理(TensorRT)工作負載的軟件。
PaddlePaddle 容器具有以下優(yōu)點:
適配最新版本的 NVIDIA 軟件棧(例如最新版本 CUDA),更多功能,更高性能
更新的 Ubuntu 操作系統(tǒng),更好的軟件兼容性
按月更新
滿足 NVIDIA NGC 開發(fā)及驗證規(guī)范,質量管理
通過飛槳官網(wǎng)快速獲取
環(huán)境準備
使用 NGC 飛槳容器需要主機系統(tǒng)(Linux)安裝以下內容:
Docker 引擎
NVIDIA GPU 驅動程序
NVIDIA 容器工具包
有關支持的版本,請參閱 NVIDIA 框架容器支持矩陣和 NVIDIA 容器工具包文檔。
不需要其他安裝、編譯或依賴管理。無需安裝 NVIDIA CUDA Toolkit。
NGC 飛槳容器正式安裝:
要運行容器,請按照 NVIDIA Containers For Deep Learning Frameworks User’s Guide 中 Running A Container 一章中的說明發(fā)出適當?shù)拿?,并指定注冊表、存儲庫?a target="_blank">標簽。有關使用 NGC 的更多信息,請參閱 NGC 容器用戶指南。如果您有 Docker 19.03 或更高版本,啟動容器的典型命令是:
docker run --gpus all --shm-size=1g --ulimit memlock=-1 -it --rm nvcr.io/nvidia/paddlepaddle:22.08-py3
4.飛槳與 NVIDIA NGC 合作介紹
NVIDIA 非常重視中國市場,特別關注中國的生態(tài)伙伴,而當前飛槳擁有超過 535 萬的開發(fā)者。在過去五年里我們緊密合作,深度融合,做了大量適配工作,如下圖所示。
今年,我們將飛槳列為 NVIDIA 全球前三的深度學習框架合作伙伴。我們在中國已經(jīng)設立了專門的工程團隊支持,賦能飛槳生態(tài)。
為了讓更多的開發(fā)者能用上基于 NVIDIA 最新的高性能硬件和軟件棧。當前,我們正在進行全新一代 NVIDIA GPU H100 的適配工作,以及提高飛槳對 CUDA Operation API 的使用率,讓飛槳的開發(fā)者擁有優(yōu)秀的用戶體驗及極致性能。
以上的各種適配,僅僅是讓飛槳的開發(fā)者擁有高性能的推理訓練成為可能。但是,這些離行業(yè)開發(fā)者還很遠,門檻還很高,難度還很大。
為此,我們將剛剛這些集成和優(yōu)化工作,整合到三大產(chǎn)品線中。其中 NGC 飛槳容器最為閃亮。
NVIDIA NGC Container – 最佳的飛槳開發(fā)環(huán)境,集成最新的 NVIDIA 工具包(例如 CUDA)。
? ? ?
-
NVIDIA
+關注
關注
14文章
4832瀏覽量
102671 -
gpu
+關注
關注
28文章
4657瀏覽量
128510 -
語音識別
+關注
關注
38文章
1707瀏覽量
112453 -
容器
+關注
關注
0文章
491瀏覽量
22017 -
NGC
+關注
關注
0文章
8瀏覽量
3823
原文標題:開發(fā)者必看:在 NGC 容器中體驗中英文混合語音識別方案
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論