【機器學習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實踐十二】機器學習實現雙十一購物清單的自動商品標籤歸類機器學習AI
- 30分鐘實現小程式語音識別
- 【機器學習PAI實踐七】文字分析演算法實現新聞自動分類機器學習AI演算法
- 【機器學習PAI實踐四】如何實現金融風控機器學習AI
- 微信小程式使用同聲傳譯實現語音識別功能微信小程式
- 【機器學習PAI實踐十】深度學習Caffe框架實現影象分類的模型訓練機器學習AI深度學習框架模型
- 【機器學習PAI實踐十二】機器學習演算法基於信用卡消費記錄做信用評分機器學習AI演算法
- 谷歌再獲語音識別新進展:利用序列轉導來實現多人語音識別和說話人分類谷歌
- 機器學習-特徵提取機器學習特徵
- 語音識別的特徵提取中的相關引數特徵
- 華為機器學習服務語音識別功能,讓應用繪“聲”繪色機器學習
- 【機器學習】--xgboost初始之程式碼實現分類機器學習
- 網易雲音樂機器學習平臺實踐機器學習
- 機器學習之資料清洗與特徵提取機器學習特徵
- 【機器學習PAI實踐五】機器學習眼中的《人民的名義》機器學習AI
- 如何使用華為機器學習服務和Kotlin實現語音合成機器學習Kotlin
- 程式碼實現(機器學習識別手寫數字)機器學習
- 【機器學習PAI實踐三】霧霾成因分析機器學習AI
- 【機器學習PAI實踐九】如何通過機器學習實現雲端實時心臟狀況監測機器學習AI
- python語音識別入門及實踐Python
- 【機器學習PAI實踐十一】機器學習PAI為你自動寫歌詞,媽媽再也不用擔心我的freestyle了(提供資料、程式碼機器學習AI
- 機器學習之語音生成&&音樂生成機器學習
- 【機器學習PAI實踐二】人口普查統計機器學習AI
- 微信小程式語音同步智慧識別的實現案例微信小程式
- 小程式實現語音識別到底要填多少坑?
- 一文教你如何快速實現聲音識別
- c# 實現初級的語音識別C#
- 【機器學習PAI實踐六】金融貸款發放預測機器學習AI
- 谷歌開放語音識別API 釋出機器學習雲平臺谷歌API機器學習
- 語音識別方向的資料
- 機器學習(三):理解邏輯迴歸及二分類、多分類程式碼實踐機器學習邏輯迴歸
- 【機器學習PAI實踐一】搭建心臟病預測案例機器學習AI
- HMS Core機器學習服務實現同聲傳譯,支援中英文互譯和多種音色語音播報機器學習
- 《機器學習:演算法原理和程式設計實踐》2:中文文字分類機器學習演算法程式設計文字分類
- 微信小程式:nodejs+百度語音識別開發實踐微信小程式NodeJS
- 機器學習實戰-SVM模型實現人臉識別機器學習模型
- 機器學習(一):5分鐘理解機器學習並上手實踐機器學習