關於情感語音識別領域的研究距今已有二三十餘年的歷史。不管是情感語音識別,還是語音情感識別,含義是一樣的,都是對帶有情感的語音頻號進**感的正確判斷。最傳統的情感語音識別是基於機器學習下的有監督學習完成的。有監督,即:使用訓練集訓練處乙個模型,然後使用該模型對測試集中的語音頻號進**感狀態的正確判斷。
傳統的機器學習可以理解為模式識別,即需要通過三個環節來完成操作:資料庫、特徵引數、識別網路。這三個環節均有大量的文獻介紹,其中特徵引數這一環節衍生出了很多研究方向,比如:特徵選擇、特徵優化等。
就情感語音識別系統而言
一、資料庫的選擇有:德國的emo-db德語情感語音庫、英國的belfast
英語情感語音庫、中科院casia漢語情感語音庫,還有就是某些研究情感語音的高校實驗室自主錄製的語音庫,比如:太原理工大學張雪英老師團隊錄製的tyut1.0版本和tyut2.0版本、北京航空航天大學(這個是閱讀文獻看到的)。
①、較典型的韻律特徵有:語速、能量、平均過零率、基音頻率等;
②、最典型的音質特徵是:共振峰,這類特徵有很好的識別效果;
③、最典型的基於譜的特徵是:mfcc特徵(梅爾倒譜係數),這個是經典中的經典,但凡研究語音頻號的就應該掌握這一特徵。
關於特徵型別知道有哪些了,接下來就需要了解提取特徵的流程:預處理---特徵提取---計算特徵引數的統計量
(1)預處理:分為三步(端點檢測、預加重、加窗分幀)
端點檢測的目的是:檢測有效聲音段的起始點與結束點,以去除無效聲音段,從而提高語音頻號的處理效率;
預加重的目的是:增加語音頻號中高頻段的解析度,以去除口唇輻射的影響;
加窗分幀的目的是:語音頻號本身是非平穩的,但是又兼具短時平穩的特點,因此將語音頻號分成一小段將此看作平穩訊號來處理。這裡的分段可以理解為是:分幀,為了全面完整的分析語音訊號,要有幀移(這裡的理解與影象處理的滑動窗很類似)
(2)提取特徵,以:語速、能量、平均過零率、基音頻率為例介紹。
語速是對一段語音進行的計算;
能量、平均過零率、基音頻率都是在整段語音頻號的每一幀上進行的計算,故語音頻號劃分為多少幀,計算獲得到少組資料(這些資料就是某一段語音頻號的特徵引數);
(3)統計量的計算:對於上述單個微觀值,巨集觀量是沒有意義的。相對於微觀量的統計平均性質的巨集觀量稱為統計量。
上述特徵引數是以幀為單位進行提取的,需要以全域性特徵統計值的形式參與情感的識別。集全域性統計指標有:平均值、極值、極值範圍、方差、偏度、峰度、一階導數或二階導數等。
三:識別網路:常用的識別網路有:隱馬爾可夫模型hmm、高斯混合模型gmm、支援向量機svm、人工神經網路ann。
入門級別建議使用svm調通程式,這個最簡單直接、好理解。
輸入:每一類測試集的特徵資料、類別標籤,訓練獲得模型之後,再使用測試集進**感類別的判斷。
所謂的識別率=某一類情感(高興)正確判斷的語句/輸入(高興)測試集的全部語句。
張雪英《數字語音處理及matlab**》,有兩個版本,後一版本是前一版本的更新。建議看版本2。
一些關於語音識別和語音情感識別的資源
這些資源要麼就收費很貴,要麼用不了,嗯 但是也花了很長時間收集,先留著吧。基於svm的語音情感識別 matlab gui介面和文件 點這裡!pythonnlp情感識別專案實戰教程 原始碼 資料集 點這裡!python 語音情感分析 搜一搜?基於svm的情感分析系統點這裡!基於svm的語音情感識別系統...
Tutorial 語音情感識別
ok,沉迷了快兩個星期,終於有進展了啊啊啊!這段時間內心崩潰,感覺毫無思路,但是我沒放棄!看了許多 然後 在這個星期也終於調通了。不過還是有很多地方值得優化,後面再繼續努力吧!其實我個人覺得語音識別這一塊的商用還不夠,情感識別就更別說了,而且識別率這一塊有待提公升。開始正題 資料集用的是emo db...
語音識別的難點
儘管語音識別的研究已有半個世紀了,但現有的語音識別系統仍存在許多困難,還遠遠達不到實用化的要求,主要表現在 1 魯棒性 目前的語音識別系統對環境條件的依賴性強,要求保持測試條件和訓練條件一致,否則系統效能會嚴重下降。2 雜訊問題 現有的語音識別系統大多只能工作在安靜的環境下,一旦在雜訊環境下工作,講...