【机器学习PAI实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)
背景
隨著人工智能的算法發展,對于非結構化數據的處理能力越來越受到重視,這里面的關鍵一環就是語音數據的處理。目前,許多關于語音識別的應用案例已經影響著我們的生活,例如一些智能音箱中利用語音發送指令,一些搜索工具利用語音輸出文本代替鍵盤錄入。
本文我們將針對語音識別中最簡單的案例“男女聲音”識別,結合本地的R工具以及機器學習PAI,為大家進行介紹。通過本案例,可以將任何用戶的語音數據標記出性別,并且保持高準確率。我們把整個實驗流程切分為兩部分,第一部分是聲音信號的特征提取,通過R的信號處理工具實現;第二部分通過機器學習PAI實現男女聲音分類模型的訓練,本實驗需要事先積累男女聲音的錄音數據,本文已經提供處理好的3000條語音數據,文章末尾提供下載。
聲音信號特征提取
語音數據與圖像數據以及文本數據不同,如果經常使用K歌軟件或者是語音合成軟件,不難理解語音數據通常成信號狀分布。
為了有效的通過算法處理這種波形數據,需要首先通過信號處理工具對語音信號進行處理。本文我們選用的是R語言的warbleR包,warbleR包含大量的頻譜處理工具,可以通過其中的頻譜處理函數提取出關于聲音的以下特征信息,因為男生和女生在聲音頻率、振幅的方面一定有很大區別,所以要通過提取以下特征幫助我們進行分類:
接下來會講解如何提取這些聲音信號的特征:
1.安裝R
首先安裝R語言包,warbleR需要R的版本是3.2以上,這里強烈建議大家使用3.3.3版本(博主在使用3.4的時候遇到錯誤)。具體R的安裝方式網上有很多介紹,這里就不詳細介紹了。
2.安裝warbleR
安裝完R之后,進入R命令行,需要通過以下命令安裝warbleR:
install.packages("warbleR") library(warbleR)這里需要注意的是鏡像最好使用美國的默認鏡像服務,需要翻*,不然很有可能會安裝不成功,因為國內的鏡像會缺少某些依賴包。
3.特征提取
首先把需要處理的錄音數據(必須是wav格式)按照男聲、女聲分裝在male和female兩個文件夾中,然后執行筆者提供的R腳本代碼(文末提供了下載鏈接)。需要將代碼中以下兩個文件路徑改為自己建立的male以及female文件路徑即可:
執行這個R腳本,就會將wav格式的聲音文件轉化為結構化數據,數據會存儲為一個CSV文件。文件部分截圖:
PAI訓練男女聲音分類模型
1.導入數據
將通過R處理后的數據導入PAI平臺,也可以直接將文末提供的處理好的數據導入。具體方法可以看:https://help.aliyun.com/video_detail/54945.html
數據導入后,可以看到有20個特征以及1列label列,
2.建立分類模型
通過拖拉PAI平臺的組件搭建實驗,實驗流程圖:
- voice_classify:為數據讀入源
- 拆分:將數據集拆分為訓練集以及預測集
- 線性支持向量機:通過SVM算法訓練生成模型
- 預測組件:通過模型對預測集預測
- 混淆矩陣:用來評估
這是一個比較簡單的二分類場景,具體也可以參看之前的一些文章:https://yq.aliyun.com/articles/54260
3.評估
最終“混淆矩陣”組件會顯示如下圖的分類評估:
通過混淆矩陣,可以看到男女聲音的分類還是非常精準的。
總結
本文通過使用R腳本以及機器學習PAI實現了男女聲音分類的案例,最終的準確率達到百分之九十八左右。在實際使用過程中,用戶需要執行以下幾步:
(1)首先積累需要分類的聲音文件,數據越多越好,存儲為wav格式。
(2)然后通過R腳本對打標好的聲音文件進行特征提取。
(3)將處理后的數據上傳PAI,建立分類模型即可。
PAI地址:https://data.aliyun.com/product/learn
企業服務咨詢:https://survey.aliyun.com/survey/AMgL8_Pm5
數據下載(代碼及數據來自warbleR社區開源提供):https://github.com/jimenbian/PAI_voice_classify
與作者討論可以關注我的微信公眾號“凡人機器學習”:
總結
以上是生活随笔為你收集整理的【机器学习PAI实践十二】机器学习实现男女声音识别分类(含语音特征提取数据和代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习之正则化图文讲解
- 下一篇: 《机器学习实践应用》书中源代码