一文讀懂PaddleSpeech中英混合語音識別技術

語音識別技術能夠讓計算機理解人類的語音,從而支持多種語音交互的場景,如手機應用、人車協同、機器人對話、語音轉寫等。然而,在這些場景中,語音識別的輸入並不總是單一的語言,有時會出現多語言混合的情況。例如,在中文場景中,我們經常會使用一些英文專業術語來表達意思,如“GPS信號弱”、“Java工程師”等,這就給語音識別技術帶來了新的挑戰。

本次PaddleSpeech發佈的中英文語音識別預訓練模型Conformer_talcs可以通過PaddleSpeech封裝的命令行工具CLI或者Python接口快速使用,開發者們可以基於此搭建自己的智能語音應用,也可以參考示例訓練自己的中英文語音識別模型。

  • 示例鏈接

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/tal_cs/asr1

快速體驗

  • 示例音頻

https://paddlespeech.bj.bcebos.com/PaddleAudio/ch_zh_mix.wav

使用命令行工具CLI 快速體驗語音識別效果,命令如下:

bash

paddlespeech asr --model conformer_talcs --lang zh_en --codeswitch True --input ./ch_zh_mix.wav -v

# 終端輸出:今天是monday 明天是tuesday

Python 接口快速體驗,代碼實現如下:

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: \n{}'.format(text))
ASR Result:
今天是 monday 明天是tuesday

 

中英文語音識別技術

 

中英文語音識別難點

中英文語音識別相較於單語言的語音識別而言,主要難點如下:

數據量少

中英混合數據相較於單語言的數據更少。目前開源的中文語音識別數據集如WenetSpeech(10000小時有監督,2500小時弱監督,10000小時無監督)、英文語音識別數據集Giga Speech(10000小時有監督,33000小時無監督)都達到了萬小時級別,但是混合的開源中英文語音識別數據只有SEAME(120小時)和TAL_CSASR(587小時)兩個開源數據,混合數據集比單語言數據集會更少。

中英相似發音易混淆

中英文語音識別需要一個單一的模型來學習多種語音,相似但具有不同含義的發音通常會導致模型的複雜度和計算量增加,同時由於它需要區分處理不同語言的類似發音,因此在模型建模時就需要按照不同語言區分不同的建模單元。

 

PaddleSpeech 中英文語音識別方案

模型選擇與介紹

本方案使用了一種端到端語音識別模型Conformer U2模型,其採用了Joint CTC/Attention with Transformer or Conformer的結構。訓練時使用CTC 和 Attention Loss 聯合優化,並且通過dynamic chunk的訓練技巧,使Shared Encoder能夠處理任意大小的chunk(即任意長度的語音片段)。其還使用CTC-Prefix Beam Search和Attention Decoder的方式進行解碼,得到最終結果,同時實現了流式和非流式的語音識別,支持控制推理延遲。

本次PaddleSpeech開源的預訓練模型,是非流式的端到端識別Conformer U2模型,chunk中包含全部上下文信息,需要整句輸入進行識別。如果你想訓練流式中英文語音識別模型,也可以參考PaddleSpeech的Conformer U2/U2++模型流式語音識別的示例訓練自己的流式中英文語音識別模型。

  • 示例鏈接

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/wenetspeech/asr1

圖片

Conformer U2 結構示意圖[1]

數據集介紹

本次使用了TAL_CSASR中英混合語音數據集。語音場景爲語音授課音頻,包括中英混合講課的情況,總計587小時語音。

  • 數據集下載地址

https://ai.100tal.com/dataset

圖片

數據集介紹[2]

中英混合語音識別建模單元

在中文語音識別系統中,常採用音素、漢字、詞等作爲聲學模型的建模單元,在英文語音識別系統中則常採用英文音素、國際音標、子詞等作爲聲學模型的建模單元。

本次PaddleSpeech開源的預訓練中英文語音識別模型是採用端到端語音識別模型Conformer U2,未接入語言模型,使用了中文字/詞加英文子詞的建模方法,將中英文分開建模,通過模型推理,直接得到識別後的結果。

圖片

試驗結果對比

由於本項目使用的是中英文混合數據集,所以我們選擇混合錯誤率(MER,Mix Error Rate)作爲評價指標,中文部分計算字錯誤率(CER,Character Error Rate),英文部分計算詞錯誤率(Word Error Rate)。測試數據集選擇TAL_CSASR中已經劃分好的測試集。由於不同的解碼方式識別的效果不同,這裏我們使用 Attention、CTC Greedy Search、CTC Prefix Beam Search、Attention Rescoring 四種解碼方式進行試驗,解碼效果最佳爲Attention Rescoring,混合錯誤率MER爲0.084,折算爲我們常說的語音識別正確率91.6%。

圖片

進一步優化與效果提升

當前中英文語音識別方案的效果還有進一步提升的空間,比如在Conformer U2 模型後面加入Language Model,通過語言模型學習中英文語言信息,PaddleSpeech中提供了基於N-Gram的語言模型訓練方案。此外,可以在訓練過程中加入Language ID,使用token級別或者幀級別的語言ID標註信息,可以進一步提高中英文語音識別的效果。如果你有更大的中英文混合數據集或者是場景相關的數據集,可以通過微調或者進一步訓練,提高在業務場景中的識別效果。

 

PaddleSpeech 語音識別技術介紹

除了中英文混合的Conformer U2模型以外,飛槳語音模型庫PaddleSpeech中包含了多種語音識別模型,能力涵蓋了聲學模型、語言模型、解碼器等多個環節,支持多種語言。目前PaddleSpeech已經支持的語音識別聲學模型包括DeepSpeech2、Transfromer、Conformer U2/U2 ++,支持中文和英文的單語言識別以及中英文混合識別;支持CTC前束搜索(CTC Prefix Beam Search)、CTC貪心搜索(CTC Greedy Search)、注意力重打分(Attention Rescoring)等多種解碼方式;支持 N-Gram語言模型、有監督多語言大模型Whisper、無監督預訓練大模型wav2vec2;同時還支持服務一鍵部署,可以快速封裝流式語音識別和非流式語音識別服務。通過PaddleSpeech提供的命令行工具CLI和Python接口可以快速體驗上述功能。

通過PaddleSpeech精品項目合集,可以在線體驗PaddleSpeech的優秀項目,上面更有PaddleSpeech核心開發者精心打造的《飛槳PaddleSpeech語音技術課程》,幫助開發者們快速入門。

  • 項目傳送門

https://aistudio.baidu.com/aistudio/projectdetail/4692119?contributionType=1

圖片

如果您想了解更多有關PaddleSpeech的內容,歡迎前往PaddleSpeech主頁學習更多用法,Star 關注,獲取PaddleSpeech最新資訊。

https://github.com/PaddlePaddle/PaddleSpeech

圖片

引用

[1] 模型結構圖

https://arxiv.org/pdf/2012.05481.pdf

[2] 數據集介紹

https://ai.100tal.com/dataset

拓展閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章