色另类_婷婷激情四月_亚洲精品无码不卡在线播放he_欧美第七页_精品国产综合区久久久久99_青娱乐极品盛宴在线

產品分類

當前位置: 首頁 > 工業(yè)電氣產品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識
數據分類:
FFC連接器

MATLAB 里的天籟之音——淺談 MATLAB 語音與聲學應用(三)

發(fā)布日期:2022-04-17 點擊率:45

  上一期,我們圍繞智能語音助手的話題,與大家聊了聊聲源分離的兩種方法:基于麥克風陣列波束成形的方法和基于深度學習的掩模估計的方法。本期,我們將繼續(xù)本文的最后一個話題,聊聊關于深度學習的語音識別。

  本文共分三期:
  1)音頻算法快速原型試音;
  2)聲源分離與提取;
  3)深度學習語音識別

Part 3

語音關鍵詞識別

  深度學習的語音識別,目前以家用智能音箱、語音導航等首當其沖。

  語音操控,本來就是人與人溝通最便捷的方式,只是過去技術水平限制,被迫用按鍵、遙控器、觸摸屏,而今語音操控已自然而然成了新一代的人機接口。所有空調、電視、凈化器這所有家電,甚至各處的燈光,都可以方便的采用語音指令進行控制,是不是很美好。

  很多小伙伴,可能一提到語音識別,第一反應就是深度學習。確實會用到深度學習不假,然而,想設計好實際工程化實現(xiàn)的語音識別模型,需要考慮的遠不只是深度學習本身。工程化實現(xiàn)與在科研探索,最大的區(qū)別在于,科研只是單點突破即可,比如可以是僅僅優(yōu)化某個損失函數改進某個層的算法,就可以發(fā)表論文,算作成果了。而工程化實現(xiàn),其實是一個完整的鏈條,任何一個環(huán)節(jié)出問題,都無法得到滿足工程化實現(xiàn)要求的產品。

  如下圖所示,實際的工程化實現(xiàn),需要完成如下所示的從左到右四個階段。

深度學習開發(fā)基本流程

  首先要采集數據,不僅需要獲得足夠大的高質量樣本集,并且如果是有監(jiān)督的學習,那你的標注也需要足夠的精確;接下來就是預處理和特診提取,這個步驟對獲得輕量化的模型,適合進行嵌入式低功耗、小型化設備進行產品工程化實現(xiàn)至關重要;接下來是模型訓練和開發(fā);最后還需要在嵌入式設備或者云端上,產品化實現(xiàn)我們的算法。

  而之前我們開發(fā)人員的大多數精力,是不是基本都只關注在第三個階段呢?我們模型的整體性能其實是由這個鏈條里四個階段,整體決定的,而非單一環(huán)節(jié)。

  這也就解釋了,為什么很多時候,若模型精度欠佳,如果希望只在第三個階段努力,即僅通過模型優(yōu)化和超參調解,通常很難得到有效改善的。反而可能使模型變得復雜,得到一個臃腫不適合產品化的模型。

  首先在音頻采集階段,就需要考慮到回聲消除、去混疊、降噪等一系列的預處理算法,而且在準備數據時,還需要根據自己的實際需要和訓練平臺的情況,來選擇合適算法對音頻數據進行預處理,這里可能涉及采樣率變換、感興趣頻帶的提取,也可能涉及感興趣特征的提取。

  接下來,我們以語音指令識別為例【1】,介紹如何在 MATLAB 中,快速完成產品化的整個鏈條。

  我們的目標是將識別以下的十個英文指令,將采用 Google 隨如下論文一同剛發(fā)表的語音指令數據集。

  首先,我們導入數據集,數據集通常會比較龐大,若同時加載很可能占用大量內存使運算卡頓。MATLAB 提供了一系列的 datastore,對數據集進行管理和操作,datastore 僅記錄數據集的索引和標簽,而只在需要時,才會去加載對應的樣本。

  如下所示,采用音頻專用的 audioDatastore,自動把樣本文件夾下的各個子文件夾中數據建立索引數據集,而后自動以每個子文件夾名字作為其中各樣本的標簽。

  這里,其實 Google 提供了一個顯然由高手,精心加工的高水準的音頻指令數據集。

  而你的實際工程中,通常采集到的原始數據還需要進行一系列的預處理,如前面提到的去回聲、去混疊、降噪等一系列操作,通常還會有濾波、采樣率變換,然后才會得到這樣一個理想的數據集。這個部分恰恰是很多大牛都會重視去做,卻很少談及的。

  敲黑板~劃重點~高質量的數據集,才能產生高質量的模型呦。

  Notes:  大多數實際的工程應用,都需要自己動手準備這個至關重要的數據集,音頻樣本的采集的質量與標簽的質量,同樣重要。這個過程是非常耗時費力的,往往需要人工一段一段的音頻反復聽,反復手工標注。MATLAB 提供了對應于音頻和信號領域的快捷標注工具,Audio Labeler 和 Signal Labeler。請看以下操作視頻,可以看到您可以自動標注,快捷準確的完成這個過程。

  以上我們介紹了,導入了整個數據集和標注。接下來,我們把數據集分成訓練集、驗證集和測試集。

  接下來我們講選擇用哪種網絡進行指令識別。如圖所示,是常見的兩種對時間序列進行分類或者檢測的網絡,上面一種是借助卷積神經網絡對二維圖像的檢測能力,所不同的是需要先將音頻序列轉換成時頻圖。

  下面這種,采用的是 LSTM 長短周期記憶網絡,雖然也可以直接把時間序列作為其輸入,但通常效果欠佳。所以我們一般會在每一個時間拍,提取一個特征向量,把它作為 LSTM 網絡的輸入。

  這里我們采用上面這種方法,即首先對信號進行時頻變換,得到每個時間拍上的時頻圖作為特征,輸入進后面的卷積神經網絡。音頻中有許多可用的特征,這里過去我們需要自己手寫函數,選擇提取哪些特征,這個過程經常需要反復嘗試。目標是用盡量少的特征,來達到可以接受的模型精度。恰到好處的特征選擇,可以使后序的神經網絡模型搭建和調優(yōu),得以大大簡化,輕量級網絡即可達到驚艷的效果,并不是每個做得漂亮的項目,都需要在模型訓練階段,死磕超參優(yōu)化的。

  Notes:特征的選擇,需要針對您的特定使用環(huán)境,巧妙選擇,比如識別人類語音,則需要了解人耳對于語音的選擇性,比如在幾百赫茲以下,成線性分布,這部分其實是語音的主要傳遞信號的部分。從幾百赫茲到 20K,成對數分布,而對其他頻點的聲音。而如果您要識別的是樂音,那么您最好花點時間了解十二平均律,以及對應的有效特征,如恒 Q 變換等。

  這里MATLAB提供了一個專用的音頻特征提取工具,即 audioFeatureExtractor。他把音頻常見的特征都統(tǒng)一集成在一個模塊,你只要按需求,選擇即可使用。

  特征提取時,因為需要提取特征的樣本量很大,以滑動窗口逐幀計算特征,通常計算很耗時,這里我們采用了如下所示的并行計算方式進行加速。

  MATLAB代碼,僅需要使用關鍵詞稍作修改,即可輕松擴展到多節(jié)點,并行執(zhí)行,使我們的算法執(zhí)行速度大幅提高。

  如果您想利用 GPU 加速,卻不想手寫 CUDA 代碼怎么辦?Parallel Computing Toolbox 也可以支持無縫的使用底層的 GPU 加速。您也可以方便的使用 gpuArray 對數組聲明,底層就會自動使用您的 GPU 進行加速。

  上面代碼中,numPar 即本機可訪問的并行節(jié)點數,若 numPar=16,則特征提取的計算將被自動在底層分配到這 16 個節(jié)點上并行完成,大幅提高計算速度。你的代碼只需把 for 循環(huán),換成 parfor 循環(huán)。不必再硬著頭皮去學習并行編程語言了,所有底層的 map-reduce、Hadoop 之類的繁文縟節(jié),MATLAB 都會為你自動搞定。

  接下來我們看一下,提取到的特征。

  上圖中上面一行是原音頻波形,16000 個采樣點,而下圖中是其對應的時頻圖,可以看到橫軸和縱軸的點數明顯減少了,也就是特征提取起到了明顯壓縮數據量的作用。恰到好處的選擇特征,不僅會大大提高識別精度,而且可以使后面的卷積神經網絡只需要一個輕量級的模型,即可達到很理想的精度。這對于產品化實現(xiàn)至關重要。

  準備好了訓練用的時頻圖數據集,我們就可以著手搭建神經網絡了,我們不必記住指令敲代碼,而是可以直接使用如下的 Deep Network Designer 以拖拽模塊和連接的方式,快速完成。

  接下來,設置好訓練參數后,我們開始對模型進行訓練。只要指定訓練環(huán)境,他會自動在底層使用你所指定的多核 CPU 或者 GPU 進行加速。

  訓練完成后,我們可以對訓練結果,進行評估。得到如下的混淆矩陣。

  那么我們還可以在 MATLAB 中,直接訪問底層的麥克風,采集實時音頻流,來測試我們的模型識別精度,請看下面的視頻。

  上邊,我們實現(xiàn)的其實還只是一個算法原型,那么我們如果想在嵌入式硬件上,實際做一下硬件原型測試怎么辦?難道還需要把所有算法都手工用底層代碼敲出來嗎?

  顯然不必如此,您可以用 MATLAB Coder 很方便的把這一整套算法(包含預處理、特征提取和深度學習模型),一起打包生成嵌入式處理器如 ARM,可運行的高性能 C++ 代碼。在這個階段,仍然保持快速的硬件原型測試和調試迭代的優(yōu)勢。

  這個語音指令識別的案例,其對應的嵌入式硬件實現(xiàn)的 demo,我們也一并在 Shipping Demo 中提供了,感興趣的童鞋可以找來試試看【2】。

簡單總結

  我們介紹了基于深度學習的語音識別在實際工程化實現(xiàn)時,需要完成如下所示的從左到右四個階段。而之前我們中大多數注意力,往往只關注第三個階段呢,然而實際上,我們模型的性能其實是由這個鏈條里四個階段,整體決定的,而非單一環(huán)節(jié)。

深度學習開發(fā)基本流程

  而 MATLAB 是面向工程化實現(xiàn)的平臺,完整覆蓋全部這四個階段的內容。

  首先要采集數據,不僅需要獲得足夠大的高質量樣本集,并且也需要高質量的標簽,這部分 MATLAB 提供了一系列能夠快速自動完成標注 APP;接下來就是預處理和特診提取,MATLAB 提供大量方便易用的信號處理和預處理的 APP,以及音頻信號特征提取器,可以方便的嘗試需要的預處理和特征提取;接下來是模型訓練和開發(fā);最后還支持嵌入式設備或者云端上,自動生成代碼或者部署實現(xiàn)我們的算法。


下一篇: PLC、DCS、FCS三大控

上一篇: 伺服選型軟件到底可以

推薦產品

更多
主站蜘蛛池模板: 午夜在线直播 | 三及片在线观看 | 香蕉视频在线观看免费国产婷婷 | 国产黄色在线观看 | 中文字幕亚洲欧美 | 亚洲精品性视频 | 中国一级毛片视频 | 四虎影视免费在线观看 | 一区二区三区视频 | 国产精品成在线观看 | 日韩在线短视频 | 欧美1区| 麻豆网站在线 | 污视频在线网站 | 亚洲天堂一区二区三区四区 | 欧美成年黄网站色视频 | 欧美不卡视频一区发布 | 一级特黄特黄毛片欧美的 | 欧美日韩中文在线 | 九九热精品视频在线播放 | 91懂色 | 黑人性猛交xxxx乱大交一 | 国产成人91精品 | 亚洲激情成人 | 国产成年人网站 | 国产精品久久久久久婷婷天堂 | 久久久久中文 | 九九激情网 | 国产一区二 | 欧美成年性h版影视中文字幕 | 夜夜操天天操 | 激情六月丁香婷婷 | 99pao成人国产永久免费视频 | 成人午夜性a一级毛片美女 91精选 | 欧美在线视频一区 | 日韩综合色 | 日出水了视频大全 | 亚洲精品午夜国产va久久成人 | 国产福利91精品一区二区三区 | 欧美在线小视频 | 高清视频在线观看 免费 |