語音識別基礎學習與錄音筆實時轉寫測試

1、引言前端

小編所在項目中, C1 C1Pro C1Max 錄音筆,經過 BLE APP 鏈接,音頻文件實時傳輸到錄音助手 App 端,具有實時錄音轉寫的功能。 工欲善其事必先利 其器,小編補習了 語音識別相關基礎知識,對所測試應用的實時轉寫業務邏輯有了更深的認識。 但願對語音測試的小夥伴們也有所幫助 ~~( ●—● )

2、語音識別基礎概念數據庫

一、語音識別(Automatic Speech Recognition,ASR)後端

語音識別,也被稱自動語音識別,所要解決的問題是讓機器可以「聽懂」人類的語音,將語音中包含的文字信息「提取」出來,至關於給機器安裝上「耳朵」,使其具有 能聽 的功能。

語音識別是一門涉及面很廣的交叉學科,它與聲學、語音學、語言學、信息理論、模式識別理論以及神經生物學等學科都有很是密切的關係。語音識別的目標是將人類的語音內容轉換爲相應的文字。微信

二、語音激活檢測(voice active detection,VAD)markdown

VAD 也稱爲 speech activity detection or speech detection, 是一項用於語音處理的技術,目的是檢測語音信號是否存在。 VAD 技術主要用於語音編碼和語音識別。

通俗來說,就是判斷何時有語音何時沒有語音(靜音)。語音信號處理或是語音識別都是在VAD截取出來的有效語音片斷上進行的。網絡

三、 語音喚醒(keyword spotting,簡稱 KWS ;或voice trigger,VT)

VT判斷是喚醒(激活)詞,那後續的語音就應該進行識別了;不然,不進行識別。語音喚醒的目的就是將設備從休眠狀態激活至運行狀態,因此喚醒詞說出以後,能馬上被檢測出來。app

四、麥克風陣列(Microphone Array)編輯器

由必定數目的聲學傳感器(通常是麥克風)組成,用來對聲場的空間特性進行採樣並處理的系統。學習

可以解決的問題:噪聲抑制、回聲抑制、去混響、單或多聲源定位、聲源數目估計、源分離、雞尾酒會效應。按麥克風個數分:單麥、雙麥、多麥。測試

3、語音識別基本原理與識別流程

一、聲波

聲音其實是一種波。常見的mp3等格式都是壓縮格式,必須轉成非壓縮的純波形文件來處理,好比Windows PCM文件,也就是俗稱的wav文件。wav文件裏存儲的除了一個文件頭之外,就是聲音波形的一個個點了。下圖是一個波形的示例。

聲音信號採集和播放常用的三個參數爲採樣頻率(SampleRate)、採樣位數(SampleSize)、聲道數(ChannelCount)。

採樣的數據速率就是指每秒全部聲道採樣數據的總量,計算公式爲:

採樣頻率 * 採樣位數 * 聲道數 = 採樣數據速率

二、語音識別基本流程

語音識別原理的4個基本流程:「輸入——編碼——解碼——輸出」

三、語音識別系統結構

語音識別系統本質上是一種模式識別系統,主要包括信號處理和特徵提取、聲學模型(AM)、語言模型(LM)和解碼搜索四部分。

聲學前端預處理

是指在特徵提取以前,先對原始語音進行處理,部分消除噪聲和不一樣說話人帶來的影響,使處理後的信號更能反映語音的本質特徵。最經常使用的前端處理有端點檢測和語音加強。端點檢測是指在語音信號中將語音和非語音信號時段區分開來,準確地肯定出語音信號的起始點。通過端點檢測後,後續處理就能夠只對語音信號進行,這對提升模型的精確度和識別正確率有重要做用。語音加強的主要任務就是消除環境噪聲對語音的影響。目前通用的方法是採用維納濾波,該方法在噪聲較大的狀況下效果好於其它濾波器。

a)信號處理和特徵提取:

以音頻信號爲輸入,經過消除噪聲和信道失真對語音進行加強,將信號從時域轉化到頻域,併爲後面的聲學模型提取合適的有表明性的特徵向量。

b)聲學模型:

將聲學和發音學的知識進行整合,以特徵提取部分生成的特徵爲輸入,併爲可變長特徵序列生成聲學模型分數。對應於語音到音節機率分佈的計算。

語音識別,可分爲「傳統」識別方式與「端到端」識別方式,其主要差別就體如今聲學模型上。「傳統」方式的聲學模型通常採用隱馬爾可夫模型(HMM),而「端到端」方式通常採用深度神經網絡(DNN)。

c)語言模型:

語言模型估計經過訓練語料學習詞與詞之間的相互關係,來估計假設詞序列的可能性,又叫語言模型分數。若是瞭解領域或相關的先驗知識,語言模型的分數一般能夠估計的更準確。對應於音節到字機率分佈的計算。

d)解碼搜索:

綜合聲學模型分數與語言模型分數的結果,將整體輸出分數最高的詞序列當作識別結果。

四、語音識別系統構建過程

1)訓練:訓練一般是離線完成的,對預先收集好的海量語音、語言數據庫進行信號處理和知識挖掘,獲取語音識別系統所須要的「聲學模型」和「語言模型」

2)識別:識別過程一般是在線完成的,對用戶實時的語音進行自動識別,識別過程一般又能夠分爲「前端」和「後端」兩大模塊。

A.前端:前端模塊主要的做用是進行端點檢測(去除多餘的靜音和非說話聲)、降噪、特徵提取等;

B.後端:後端模塊的做用是利用訓練好的「聲學模型」和「語言模型」對用戶說話的特徵向量進行統計模式識別(又稱「解碼」),獲得其包含的文字信息,此外,後端模塊還存在一個「自適應」的反饋模塊,能夠對用戶的語音進行自學習,從而對「聲學模型」和「語音模型」進行必要的「校訂」,進一步提升識別的準確率。

4、搜狗錄音助手—鏈接硬件的實時語音識別

一、音頻編碼和解碼

音頻編碼的目標就是儘量壓縮原始採樣數據,節省帶寬,方便文件存儲和網絡傳輸。音頻編碼大體能夠分爲兩類:無損編碼和有損編碼。

第一類是無損編碼,好比FLAC是一種對原始 PCM 進行無損壓縮的編碼庫。無損編碼的特色是信息解碼後不會有任何的丟失,解碼後每一比特都和原始採樣數據一致。無損編碼最大的特色是大,佔用空間或帶寬不少。

實際中使用最多的都是有損編碼,通常是使用離散餘弦變換等數學方法將信號從時域轉換到頻域,將人耳不敏感的頻域部分信息過濾掉,而後進行編碼。有損音頻編碼常見的有:MP三、WMA、AAC、Speex、Opus等。有損編碼也都有相應的解碼器,解碼器就是將壓縮後的數據在必定程度上還原爲 PCM 數據,解碼獲得的 PCM 數據與原始採樣數據是有差別的,這也是稱之爲有損編碼的緣由。

二、錄音筆實時錄音轉寫

(1).    錄音筆多麥克風陣列收音(C1 Max爲例),存儲2種格式的音頻文件:opus格式(用於傳輸,壓縮格式,便於傳輸)、wav格式(用於聽感);

(2).    opus格式的音頻文件,經過BLE協議,傳輸到App端;

(3).    APP端的解碼庫對傳輸的opus音頻文件進行無損解碼,生成標準的PCM流;

(4).    語音SDK(前端庫)將多聲道的PCM流進行合併,合成爲一聲道的PCM;(多聲道的pcm流過搜狗語音的陣列生成兩路pcm,一路用於聽感、一路用於識別,而後輸出mp3)

(5).    語音識別SDK和知音平臺服務端創建gPRC鏈接,獲取PCM流文件的文字識別結果;

(6).    語音識別SDK經過回調,返回給native識別結果,native進行展現。


注:參考文章

https://zh.wikipedia.org/wiki/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB

https://zhuanlan.zhihu.com/p/22512377

https://zhuanlan.zhihu.com/p/105454729

http://blog.itpub.net/29829936/viewspace-2652896/







搜狗測試微信號:Qa_xiaoming

搜狗測試QQ粉絲羣:459645679


本文分享自微信公衆號 - 搜狗測試(SogouQA)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索