日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于TensorFlow,人声识别如何在端上实现?

發布時間:2024/9/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于TensorFlow,人声识别如何在端上实现? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

阿里妹導讀:閑魚作為阿里巴巴在閑置流通領域的主要產品,主要研發移動應用來解決閑置物品/資產/時間在個人領域的再次流通問題,用到跨端技術(Base Flutter/Weex/Dart技術棧)和計算機視覺技術(Base Tensorflow Lite)在移動終端上的前沿實踐。


本文章由閑魚技術團隊出品。針對服務端上人聲識別具有延時和占用資源的問題,本文提出了在客戶端上基于tensorflowLite框架實現人聲識別方案,下面一起來深入了解。

本文作者:仝輝,上葉


摘要


現有的人聲識別絕大部分在服務端實現,這會帶來如下兩方面的問題:


1) 當網絡較差的情況下會造成較大的延時,帶來較差的用戶體驗。

2) 當訪問量較大的情況下,會大量占用服務端資源。


為解決以上兩個問題,我們選擇在客戶端上實現人聲識別功能。本文使用機器學習的方法識別人聲。采用的框架是谷歌的tensorflowLite框架,該框架跟它的名字一樣具有小巧的特點。在保證精度的同時,框架的大小只有300KB左右,且經過壓縮后產生的模型是tensorflow模型的四分之一[1]。因此,tensorflowLite框架比較適合在客戶端上使用。


為了提高人聲的識別率,需要提取音頻特征作為機器學習框架的輸入樣本。本文使用的特征提取算法是基于人耳聽覺機理的梅爾倒頻譜算法[2]。


由于在客戶端上使用人聲識別比較耗時,在工程上需要做很多優化,優化方面如下:


1) 指令集加速:引入arm指令集,做多指令集優化,加速運算。

2) 多線程加速:對于耗時的運算采用多線程并發處理。

3) 模型加速:選用支持NEON優化的模型,并預加載模型減少預處理時間。

4) 算法加速:I) 降低音頻采樣率。II) 選取人聲頻段(20hz~20khz),剔除非人聲頻段。III) 合理分窗和切片,防止過度計算。IV) 靜音檢測,減少不必要的時間片段。


1.概述


1.1人聲識別應用場景


本文提出的人聲識別的方法,使用場景大體如下:


1) 音視頻質量分析:判斷是否存在人聲,通話無聲,嘯叫聲,背景雜音等現象。

2) 識別特定聲音:識別是否是某人的特定聲音,用于聲音解鎖,遠程身份認證等。

3) 識別情緒:用于判斷說話者的情緒和狀態等。聲紋結合內容和情感信息的結合可以有效阻止聲紋假冒和人身脅迫。

4) 識別性別:可以識別是男聲還是女聲。


1.2人聲識別流程


人聲識別分為訓練和預測兩個部分。訓練指的是生成預測模型,預測是利用模型產生預測結果。


首先介紹下訓練的過程,分為以下三個部分:


1) 基于梅爾倒頻譜算法,提取聲音特征,并將其轉換成頻譜圖片。

2) 將人聲頻譜作為正樣本,動物聲音和雜音等非人聲作為負樣本,交由神經網絡模型 ?訓練。

3) 基于訓練產生的文件,生成端上可運行的預測模型。


簡而言之,人聲識別訓練的流程分為三個部分,提取聲音特征,模型訓練和生成端上模型。最后,是人聲識別的部分:先提取聲音特征,然后加載訓練模型即可獲得預測結果。


1.3人工智能框架


2017年11月,谷歌曾在 I/O 大會上宣布推出TensorFlowLite,這是一款

TensorFlow 用于移動設備和嵌入式設備的輕量級解決方案。可以在多個平臺上運行,從機架式服務器到小型 IoT 設備。但是隨著近年來機器學習模型的廣泛使用,出現了在移動和嵌入式設備上部署它們的需求。而TensorFlowLite 允許設備端的機器學習模型的低延遲推斷。


本文基于的tensorflowLite是谷歌研發的人工智能學習系統,其命名來源于本身的運行原理。Tensor(張量)意味著N維數組,Flow(流)意味著基于數據流圖的計算,TensorFlow為張量從流圖的一端流動到另一端計算過程。TensorFlow是將復雜的數據結構傳輸至人工智能神經網中進行分析和處理過程的系統。


下圖展示了tensorflowLite的架構設計[1]:


圖1.1?tensorflowlite架構圖


2.梅爾倒頻譜算法


2.1 概述


本章中聲音識別的算法--梅爾倒頻譜算法[2]分為如下幾步,將會在后續小節中詳細介紹。


1) 輸入聲音文件,解析成原始的聲音數據(時域信號)。

2) 通過短時傅里葉變換,加窗分幀將時域信號轉變為頻域信號。

3) 通過梅爾頻譜變換,將頻率轉換成人耳能感知的線性關系。

4) 通過梅爾倒譜分析,采用DCT變換將直流信號分量和正弦信號分量分離[3]。

5) 提取聲音頻譜特征向量,將向量轉換成圖像。


加窗分幀是為了滿足語音在時域的短時平穩特性,梅爾頻譜變換是為了將人耳對頻率的感知度轉化為線性關系,倒譜分析的重點是理解傅里葉變換,任何信號都可以通過傅里葉變換而分解成一個直流分量和若干個正弦信號的和。

圖2.1 聲音的時域信號


圖2.1是聲音的時域信號,直觀上很難看出頻率變化規律。圖2.2是聲音的頻域信號,反映了能夠反映出聲音的音量和頻率等信息。圖2.3是經過梅爾倒頻譜的聲音特征,能夠提取聲音。

圖2.2 聲音的頻域信號


圖2.3 聲音的倒頻譜特征


圖2.4 梅爾倒頻譜算法實現流程


2.2 短時傅里葉變換


聲音信號是一維的時域信號,直觀上很難看出頻率變化規律。如果通過傅里葉變換把它變到頻域上,雖然可以看出信號的頻率分布,但是丟失了時域信息,無法看出頻率分布隨時間的變化。為了解決這個問題,很多時頻分析手段應運而生。短時傅里葉,小波,Wigner分布等都是常用的時頻域分析方法。


圖2.5FFT變換和STFT變換示意圖


通過傅里葉變換可以得到信號的頻譜。信號的頻譜的應用非常廣泛,信號的壓縮、降噪都可以基于頻譜。然而傅里葉變換有一個假設,那就是信號是平穩的,即信號的統計特性不隨時間變化。聲音信號就不是平穩信號,在很長的一段時間內,有很多信號會出現,然后立即消失。如果將這信號全部進行傅里葉變換,就不能反映聲音隨時間的變化。


本文采用的短時傅里葉變換(STFT)是最經典的時頻域分析方法。短時傅里葉變換(STFT)是和傅里葉變換(FT)相關的一種數學變換,用以確定時變信號其局部區域正弦波的頻率與相位。它的思想是:選擇一個時頻局部化的窗函數,假定分析窗函數h(t)在一個短時間間隔內是平穩的,使f(t)h(t)在不同的有限時間寬度內是平穩信號,從而計算出各個不同時刻的功率譜。短時傅里葉變換使用一個固定的窗函數,通常使用的窗函數有漢寧窗、海明窗、Blackman-Haris窗等。本文中采用了海明窗,海明窗是一種余弦窗,能夠很好地反映某一時刻能量隨時間的衰減關系。


因此,本文的STFT公式在原先傅里葉變換公式:

公式的基礎上加了窗函數,因此STFT公式變換為

其中,

為海明窗函數。


圖2.6 基于海明窗的STFT變換


2.3 梅爾頻譜


聲譜圖往往是很大的一張圖,為了得到合適大小的聲音特征,往往把它通過梅爾標度濾波器組,變換為梅爾頻譜。什么是梅爾濾波器組呢?這里要從梅爾標度說起。


梅爾標度,由Stevens,Volkmann和Newman在1937年命名。我們知道,頻率的單位是赫茲(Hz),人耳能聽到的頻率范圍是20-20000Hz,但人耳對Hz這種標度單位并不是線性感知關系。例如如果我們適應了1000Hz的音調,如果把音調頻率提高到2000Hz,我們的耳朵只能覺察到頻率提高了一點點,根本察覺不到頻率提高了一倍。如果將普通的頻率標度轉化為梅爾頻率標度,映射關系如下式所示:

經過上述公式,則人耳對頻率的感知度就成了線性關系[4]。也就是說,在梅爾標度下,如果兩段語音的梅爾頻率相差兩倍,則人耳可以感知到的音調大概也相差兩倍。


讓我們觀察一下從Hz到梅爾頻率(mel)的映射圖,由于它們是log的關系,當頻率較小時,梅爾頻率隨Hz變化較快;當頻率很大時,梅爾頻率的上升很緩慢,曲線的斜率很小。這說明了人耳對低頻音調的感知較靈敏,在高頻時人耳是很遲鈍的,梅爾標度濾波器組啟發于此。


圖2.7 頻率轉梅爾頻率示意圖


如下圖所示,12個三角濾波器組成濾波器組,低頻處濾波器密集,門限值大,高頻處濾波器稀疏,門限值低。恰好對應了頻率越高人耳越遲鈍這一客觀規律。上圖所示的濾波器形式叫做等面積梅爾濾波器(Mel-filter
bank with same bank area),在人聲領域(語音識別,說話人辨認)等領域應用廣泛。


圖2.8 梅爾濾波器組示意圖


2.4 梅爾倒頻譜


基于2.3的梅爾對數譜,采用DCT變換將直流信號分量和正弦信號分量分離,最后得到的結果稱為梅爾倒頻譜。

其中,

由于梅爾倒頻譜輸出的是向量,還不能用圖片顯示,需要將其轉換成圖像矩陣。需要將輸出向量的范圍

線性變換到圖像的范圍

圖2.9 繪圖顏色標度示意圖


2.5 算法處理速度優化


由于算法需要在客戶端上實現,因此需要對速度做一定的改進[5]。優化方面如下:


1) 指令集加速:由于算法有大量的加法和乘法矩陣運算,因此引入arm指令集,做多 ?指令集優化,加速運算。速度可以提高4~8倍[6]。

2) 算法加速:I) 選取人聲頻段(20HZ~20KHZ),并剔除非人聲頻段減少冗余計算。II)降低音頻采樣率,由于人耳對過高的采樣率不敏感,因此降低采樣率 ?可以減少不必要的數據計算。III)合理分窗和切片,防止過度計算。IV) 靜音檢測,減少不必要的時間片段。

3) 采樣頻率加速:如果音頻的采樣頻率過高,選擇下采樣,處理的頻率最高設定為 ?32kHZ。

4) 多線程加速:將音頻拆分為多個片段,采用多線程并行處理。并根據機器的能力配 ?置線程數,默認為4個線程。


圖2.10 算法工程端選取的參數


3.人聲識別模型


3.1模型選擇


卷積神經網絡(Convolutional Neural Networks-簡稱CNN)是一種前饋神經網絡,它的人工神經元可以響應一部分覆蓋范圍內的周圍單元,對于大型圖像處理有出色表現。


20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用于局部敏感和方向選擇的神經元時發現其獨特的網絡結構可以有效地降低反饋神經網絡的復雜性,繼而提出了卷積神經網絡。現在,CNN已經成為眾多科學領域的研究熱點之一,特別是在模式分類領域,由于該網絡避免了對圖像的復雜前期預處理,可以直接輸入原始圖像,因而得到了更為廣泛的應用。


K.Fukushima在1980年提出的新識別機是卷積神經網絡的第一個實現網絡。隨后,更多的科研工作者對該網絡進行了改進。其中,具有代表性的研究成果是Alexander和Taylor提出的“改進認知機”,該方法綜合了各種改進方法的優點并避免了耗時的誤差反向傳播。


一般地,CNN的基本結構包括兩層,其一為特征提取層,每個神經元的輸入與前一層的局部接受域相連,并提取該局部的特征。一旦該局部特征被提取后,它與其它特征間的位置關系也隨之確定下來;其二是特征映射層,網絡的每個計算層由多個特征映射組成,每個特征映射是一個平面,平面上所有神經元的權值相等。特征映射結構采用影響函數核小的sigmoid,relu等函數作為卷積網絡的激活函數,使得特征映射具有位移不變性。此外,由于一個映射面上的神經元共享權值,因而減少了網絡自由參數的個數。卷積神經網絡中的每一個卷積層都緊跟著一個用來求局部平均與二次提取的計算層,這種特有的兩次特征提取結構減小了特征分辨率。


CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由于CNN的特征檢測層通過訓練數據進行學習,所以在使用CNN時,避免了顯式的特征抽取,而隱式地從訓練數據中進行學習;再者由于同一特征映射面上的神經元權值相同,所以網絡可以并行學習,這也是卷積網絡相對于神經元彼此相連網絡的一大優勢。卷積神經網絡以其局部權值共享的特殊結構在語音識別和圖像處理方面有著獨特的優越性,其布局更接近于實際的生物神經網絡,權值共享降低了網絡的復雜性,特別是多維輸入向量的圖像可以直接輸入網絡這一特點避免了特征提取和分類過程中數據重建的復雜度。


圖3.1?Inception-v3模型


本文選取了精度較高的Inception-v3模型作為人聲識別的模型,v3一個最重要的改進是分解,將7x7卷積網絡分解成兩個一維的卷積(1x7,7x1),3x3也是一樣(1x3,3x1),這樣的好處,既可以加速計算,使得網絡深度進一步增加,增加了網絡的非線性,還有值得注意的地方是網絡輸入從224x224變為了299x299,更加精細設計了35x35/17x17/8x8的模塊。


使用tensorflow session模塊可以實現代碼層面的訓練和預測功能,具體使用方法詳見tensorflow官網[7]。


圖3.2 tensorflow session使用示意圖


3.2模型樣本


有監督的機器學習中,一般需要將樣本分成獨立的三部分訓練集(train
set),驗證集(validation set)和測試集(test set)。其中訓練集用來估計模型,驗證集用來確定網絡結構或者控制模型復雜程度的參數,而測試集則檢驗最終選擇最優的模型的性能如何。


具體定義如下:


訓練集:學習樣本數據集,通過匹配一些參數來建立一個分類器。建立一種分類的方式,主要是用來訓練模型的。


驗證集:對學習出來的模型,調整分類器的參數,如在神經網絡中選擇隱藏單元數。驗證集還用來確定網絡結構或者控制模型復雜程度的參數,用來防止模型過擬合現象。


測試集:主要是測試訓練好的模型的分辨能力(識別率等)


根據第二章的梅爾倒頻譜算法可以得到聲音識別的樣本文件,將人聲頻譜作為正樣本,動物聲音和雜音等非人聲作為負樣本,交由Inception-v3模型進行訓練。


本文采用了tensorflow作為訓練框架,選取人聲和非人聲各5000個樣本作為測試集,1000個樣本作為驗證集。


3.3 模型訓練


樣本準備完成后,即可使用Inception-v3模型訓練。當訓練模型收斂時,即可生成端上可使用的pb模型。模型選取時選擇編譯armeabi-v7a或者以上版本即可默認打開NEON優化,即打開USE_NEON的宏,能夠達到指令集加速的效果。例如CNN網絡一半以上的運算都在卷積(conv)運算,使用指令集優化可以至少加速4倍。


圖3.3 卷積處理函數


然后經過tensorflow提供的toco工具生成lite模型,該模型可以直接在客戶端上使用tensorflowLite框架調用。


圖3.4 toco工具調用接口


3.4 模型預測


對聲音文件使用梅爾倒頻譜算法提取特征,并生成預測圖片。之后使用訓練產生的lite模型即可預測,預測結果示意圖如下:


圖3.5 模型預測結果


參考文獻:

[1] https://www.tensorflow.org/mobile/tflite

[2] 基于MFCC與IMFCC的說話人識別研究[D]. 劉麗巖. 哈爾濱工程大學 . 2008

[3] 一種基于MFCC和LPCC的文本相關說話人識別方法[J].
于明,袁玉倩,董浩,王哲. 計算機應 ?用. 2006(04)

[4] Text dependent Speaker
Identification in Noisy Enviroment[C]. Kumar Pawan,Jakhanwal Nitika,

Chandra Mahesh. International
Conference on Devices and Communications . 2011

[5] https://github.com/weedwind/MFCC

[6] https://baike.baidu.com/item/ARM指令集/907786?fr=aladdin

[7] https://www.tensorflow.org/api_docs/python/tf/Session

總結

以上是生活随笔為你收集整理的基于TensorFlow,人声识别如何在端上实现?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色av影视 | 欧美久久一区二区三区 | 日韩在线视频免费观看 | 黄色精品网站 | 人妖ts福利视频一二三区 | www99re| 国产另类av | 日韩精品三级 | 国产欧美在线一区 | 在线免费看黄视频 | 欧美一二在线 | 国产91美女视频 | 奇米婷婷 | 国产人妻精品一区二区三区 | 亚洲黄色免费视频 | 污片在线观看 | 捆绑无遮挡打光屁股调教女仆 | 国产手机av | 九九久久久久 | 久久国产亚洲精品无码 | 亚洲精品乱码久久久久久写真 | 国产精品成人免费精品自在线观看 | 在线精品小视频 | 狠狠狠狠干 | 51av在线 | 久久网站免费观看 | 国产又色又爽无遮挡免费动态图 | 欧美日本中文 | 亚洲天堂免费 | 天天碰天天操 | 久久久久久久久久久丰满 | 免费人成年激情视频在线观看 | 人人狠狠 | 亚洲综合色自拍一区 | 伊人亚洲| 精品一级少妇久久久久久久 | 一级特黄免费视频 | 色网站免费在线观看 | а√在线中文网新版地址在线 | av中文字幕亚洲 | 男人的天堂色 | 91网在线 | 99久久99 | 香蕉av在线 | 欧美一区二区人人喊爽 | 欧美视频在线免费看 | 大地资源中文第三页 | 亚洲中文在线一区 | 97国产成人 | 日本a一级 | 欧美日韩一级二级三级 | 亚洲老老头同性老头交j | 中文字幕三级电影 | 国产又粗又大又爽 | 色爽黄 | 国产亚洲久一区二区 | 97超碰导航 | 天天干天天爱天天操 | 国产强伦人妻毛片 | 精品九一| 国产一区在线视频观看 | 国内9l自拍 | 日韩一区二区三区精品视频 | 日本韩国欧美一区二区 | 欧美被狂躁喷白浆精品 | 日韩黄色免费网站 | 亚洲最大成人网色 | 国产免费一区二区三区三州老师 | 亚洲综合在线一区二区 | 国产精品一区久久久 | 成人p站在线观看 | 日本免费一区二区三区 | 青娱乐在线视频免费观看 | 亚洲国产精品尤物yw在线观看 | 欧美最顶级a∨艳星 | 瑟瑟视频在线 | 麻豆福利影院 | 国产在线激情视频 | 97香蕉久久超级碰碰高清版 | 一级做a爱片性色毛片 | 五月婷婷六月婷婷 | 久久99精品国产91久久来源 | 黄视频免费在线观看 | 国产精品一区二区免费在线观看 | av在线看片 | 黄网地址| 午夜精品一区二区在线观看 | 亚洲精品成人影视 | 久久久无码人妻精品无码 | 国产精品精品国产色婷婷 | 国产无 | 秋霞免费av | 91精品国产综合久久久密臀九色 | 97免费视频观看 | 亚洲国产精品国自产拍久久 | 性xxxx搡xxxxx搡欧美 | 亚洲黄片一区 | 国产无套精品 | 亚洲av无码一区二区乱子仑 |