語音識別的技術原理是什麼?

時間 2021-05-06 13:28:16

1樓:李紹榆

在開始語音識別之前,有時需要把首尾端的靜音切除,降低對後續步驟造成的干擾。技術原理,這個靜音切除的操作一般稱為VAD,需要用到訊號處理的一些技術。要對聲音進行分析,需要對聲音分幀。

2樓:利爾達

語音識別系統構建過程整體上包括兩大部分:訓練和識別。訓練是指對預先收集好的語音進行訊號處理和知識挖掘,獲取語音識別系統所需要的「聲學模型」和「語言模型」;識別是對使用者實時語音進行自動識別。

識別過程通常又可以分為「前端」和「後端」兩大模組:「前端」主要作用是進行端點檢測(去除多餘的靜音和非說話聲)、降噪、特徵提取等;「後端」作用是利用訓練好的「聲學模型」和「語言模型」對使用者說話的特徵向量進行統計模式識別,得到其包含的文字資訊。此外,後端模組還存在乙個「自適應」的反饋模組,可以對使用者的語音進行自學習,從而對「聲學模型」和「語音模型」進行必要的「校正」,進一步提高識別的準確率。

智慧型語音技術是人工智慧產業鏈上的關鍵一環。人工智慧產業鏈主要分為三個層次。底層是基礎設施,包括晶元、模組、感測器,以及大資料平台、雲計算服務和網路運營商;中間層是基礎技術研究和服務提供商,包括深度學習、語音技術、自然語言處理以及機械人等領域;上層是行業應用,包括智慧型家居、可穿戴裝置、無人駕駛、虛擬助理、家庭機械人等。

3樓:

大家說了很多傳統Hybrid語音識別的原理,我來輸出一下端到端語音識別的原理,力爭淺顯易懂,讓做NLP和CV的人也能明白端到端語音識別模型。其中大部分感悟為在6萬5千小時資料上(https://

arxiv.org/pdf/2005.1432

7.pdf

)進行實驗得到的經驗。

我們先明確端到端語音識別的輸入和輸出。

輸入是 Mel譜(MFCC特徵),可以理解為將語音頻號經過取樣,大約每10毫秒可以得到乙個向量,向量的維度一般是80,如果語音有10秒,整個mel input的就是乙個 80 * 1000 的矩陣。這和NLP中的word embedding輸入十分類似,但是NLP的文字長度大部分任務會比語音短一些。

輸出是一串Subword,和NLP類似,目前Subword是最好的端到端系統的輸出單位,一般用sentence piece等工具將文字進行切分。

模型分割線

端到端模型粗略可以分為label-sync和frame-sync,label-sync可以理解為NLP之中傳統的beam search方案,給定音訊輸入,解碼器每個time step解碼乙個詞語,beam search時候會儲存beam size個結果,直到解碼出 符號。典型的label-sync的模型是經典的Seq2Seq模型

Seq2Seq:

隨著基於Transformer的模型的興起,當下最流行的模型結構是Transformer,和傳統NLP中Transformer不同的是,開始時候如果使用CNN對語音輸入進行處理,會提公升語音識別的最終效能。

至於其他都和Transformer S2S沒有本質區別。然而所有的Seq2Seq ASR模型都有兩個缺點:其一是很難處理流式的輸入(使用者邊說邊識別),其二是輸出的文字結果有可能非常短,需要一些coverage的操作才可以避免這個問題。

在這裡打乙個小廣告,我們開源的StreamingTransformer系統,以及其背後的Offline Transformer結構目前都是英文語音識別資料集Librispeech Seq2Seq同引數的比較下最好的系統,尤其是這種流式的Transformer處理方式,應該比其他的流式模型在Librispeech資料集都好很多。

說完label-sync,轉到另乙個方案。frame-sync十分有語音的特色,給每乙個frame都打乙個標籤,標籤可以為空,如下圖所示,五幀每個對應乙個word,代表空

然而,乙個明顯的問題浮現出來了,如何自動對齊frame和label,這就引出了語音裡面最經典的模型CTC以及他的衍生品Transducer。CTC和Transducer說到底是乙個loss function,它十分明確的定義了乙個優化目標,它並不是乙個網路結構,而是利用RNN或者Transformer對每個frame輸出之後,定義了乙個loss,讓兩個不等長序列X和Y可以乙個frame和乙個word對應上(通過給word集合加入空,以及CTC中相鄰兩個frame可以是乙個詞)

CTC

CTC有非常經典的英文blog,https://

distill.pub/2017/ctc/

我簡單總結一下,首先encoder會在每個frame輸出乙個詞的distribution,且frame之間沒有依賴,如果詞典5000(含空),那麼輸出就是5000,之後CTC會給所有合法路徑算概率,例如上圖的hello world有5幀,那麼其他的合法路徑還有hello world ,hello world 等等。之後會計算每個路徑的概率(概率比較好算,就是step概率的乘積),CTC把所有這些合法路徑加起來,並進行優化

Transducer

Transducer可以理解為CTC的衍生品,因為CTC在建模的時候第i個詞只與X有關,沒有考慮之前輸出的詞語 ,所以會在語言模型上有些問題,在實際應用中往往需要搭配語言模型使用。所以,Transducer在建模的時候改變了這乙個問題,它建模的是 ,考慮了額外的語言模型部分,模型圖如下所示

Encoder會給每乙個frame乙個hidden state,之後還有個preditor network,它會根據已經輸出的序列給出下乙個詞的hidden state,然後兩個一拼,得到了該時刻詞語分布的概率。之後仍舊是動態規劃,如果是空就橫著走,否則豎著走,算出所有合法路徑的概率,優化

RNN-T由於是frame sync模型,且克服了CTC沒有建模詞語互相的關係,是非常適合工業界的流式模型,也是目前Google device上上線的流式模型,只是訓練時候視訊記憶體消耗非常大,不太好訓練。

最後一些個人想說的:

1 目前,seq2seq仍然是給定完整音訊,之後進行識別,準確率最佳方案。前提是結合一些防止生成太短的技術

2 流式的情況下,transducer或者ctc加lm可以根據資源選用,如果卡少只能ctc

3 seq2seq流模型比較複雜,雖然效能也不錯但經常換了資料集會出問題

4 Transformer比RNN更適合建模長一些的語音序列,短的差不多,而且RNN跑得快。

4樓:

參見文章:

stephon:Speech Recognition(1)stephon:Speech Recognition(2)stephon:

Speech Recognition(3)stephon:Speech Recognition(4)stephon:Speech Recognition(5)stephon:

Speech Recognition(6)stephon:Speech Recognition(7)

5樓:天良文

我非這方面的學生,但是我知道知道框架。不知道這是不是所謂的原理吧第一,如果要進行語音識別,最重要的是什麼?就是尋找人與人說出的語音的之間的區別,根據這個區別我們才可以分辨出來吧。

第二,我們是要通過機器去識別,所以,就需要有一種可以把人的語音轉化成可以輸入機器裡面的訊號的一種技術。

第三,我們就根據這項技術(我不知道是否正確),設計出可以區別人與人之間語音的模型(可能是數學模型)。

就這樣了,大神們的觀點我都以我的觀點為模板,貌似看懂了

6樓:唐伯虎二世

非業內專業人士,但從使用者來說,我覺得單講識別原理現在已經很成熟。但只做到轉換音訊到文字不是重點,難點關鍵是使用場景,以及語義理解和質量,是否真的適用我們的實際需求?!

比如,有比較複雜的環境背景雜音,識別場景中多個角色的?

不久前工作中有一段長音訊,需要轉文字提取,重點是識別場景中多個角色的,給以區分標識。

嘗試了4種不同自動識別的系統,最終放棄了,感覺自動是別的不靠譜啊!最後尋求一家速錄寶的公司,進行人工轉寫,終於解決了我的需要,滿足區分多人對話以及排版格式的需求。

希望未來的語音識別可以更強大更智慧型。

7樓:DONT

是根據統計概率計算出來的,國內做的比較好的是科大訊飛,目前的普通話考試用的就是他們的系統。

吳軍的《數學之美》對語音識別做了個通俗易懂的介紹,有興趣可以去看看。

8樓:徐華

個人認為語音識別可以看成兩個步驟的輸入法:第一,根據聲學模型把聲音轉換成音節(可以看成拼音),第二,就是就根據統計語言模型把拼音轉換成文字了。主要問題是兩個模型怎麼去訓練和使用

9樓:劉浩

補充個人的理解語音識別,狹義的識別,為文字內容識別;寬泛的識別,可以當作人耳,人能從語音中聽出男女、語種、說話人、內容等,則意味著語音識別就是機器耳朵,能有性別、語種方言、聲紋(類似指紋概念)、內容識別了。簡單而言,目前識別就是2步,訓練和測試。拿好理解的語種識別來說:

訓練,就是提取特徵描述語音,是學習過程,例如搞一定量的漢語、英語,訓練出2個語種模型;而識別測試,則每一條語音提取特徵,然後和這2個語種模型特徵對比,給出相似度判斷即可。

10樓:

門外漢,純猜測

既然音訊能夠轉換成波形,那麼語音識別和影象識別技術在某些方面是共通的。

因為人說的話都是連貫的,帶有語義的,所以語音識別又和全文搜尋技術有一定聯絡。

簡單來說

li xiang

這個拼音有很多種可能

如理想,立項,離鄉,莉香等等

但是如果是

li xiang zhe ge ren

那麼代表這裡的li xiang 是指帶的乙個人物再根據語調

可以判斷出到第是李湘,還是李想

說話人識別的技術原理是什麼?

dormir 如果你的目的只是做切割的話,也可以看一下pyannote audio 裡面的 speaker change detection 部分。有問題可以互相交流啊。 Ever 再說一下這個問題的背景以及目前的進展。業務場景先假定2人對話,且其中乙個人是固定的 我們的使用者,簡稱使用者方 且不考...

多語言混合語音識別的技術難點有哪些?

瑪格麗特Summer 本來想在知乎搜尋 混合語言語音識別技術 的解答,發現有關內容太少了。看到這個問題,基於我目前遇到的問題順便回答一下吧。以下是我個人觀點,如有問題請各位專業人士指正啦。難點1.不同語言的音素集合存在差異,尤其是不同語系,差異更大,比如中文和英文。如果想要支援多語言,在訓練聲學模型...

語音識別,人臉識別 這種技術有啥意義呢?

dengyajun 現在這個社會有很多場景都需要對我們單獨的個體身份進行識別,以便更準確有效的辦理事務,而且社會的發展也越來越不會讓人渾水摸魚。而語音識別 人臉識別是從指紋識別這種接觸式識別公升級到更高階的非接觸生物識別,讓你在進行身份識別的過程中有愉快的體驗。首先,世界上和你的臉長的像 聲音也很像...