pyAudio介紹


概要

pyaudio有這么幾個功能: 
- 提取特征 
- 訓練並且使用分類器 
- 語音分割功能 
- 內容關系可視化

python實現,好處有這么幾個 
- 適合做計算分析類型操作(編碼少,效率不低) 
- 免費 
- 不需要很復雜的搭環境 
- 大量的第三方庫可以使用

具體功能

  • 特征提取(feature extraction):關於時域信號和頻域信號都有所涉及
  • 分類(classification):監督學習,需要用已有的訓練集來進行訓練。交叉驗證也實現了,進行參數優化使用。分類器可以保存在文件中以后使用。
  • 回歸(regression):將語音信號映射到一個回歸值。
  • 分割(segmenttation):有四個功能被實現了 
    • [x] 固定大小的分割
    • [x] 靜音檢測(silence removal)
    • [x] 語音聚類(speaker diarization)
    • [x] 語音縮略圖(audio thumbnailing)
  • 可視化:給定語音,將內容可視化

image

特征提取

所有的短時間特征可以見下圖 
image

  • 短時間特征(short-term features) 
    • 時域特征(特征1-3)是直接提取的
    • 頻域特征(特征4-34,MFCC除外)是由傅里葉轉換而來
    • MFCC特征提取過程已經討論過

過程:語音信號分幀,一幀有34個特征。一般20~100ms

  • 中等長度特征(mid-term features)和特別長的特征(long-term features)

    • 中等長度的調用短時間的特征,並進行統計運算
    • 1-10分鍾左右長度
    • long-term調用Mid-term然后做統計運算
  • 速度有關的特征

語音分割

pyaudio提供了兩類的語音分割 
- 有監督的語音分割:需要有提供一些材料,例如,已經訓練好的分類器。為此,此庫提供了兩種算法:分類的方法和隱馬爾科夫的算法 
- 無監督的語音分割:無監督的或者半監督的,不需要提供知識准備,主要的例子是靜音檢測,語音聚類,語音縮略圖

有監督的

  • 固定長度的分割算法(fix-sized segmentation) 
    • audioSegmentation.py的函數mtFileClassfication()是主要的 
      • 切分一個語音段為一個連續的中等長度的段(mid-term)並且提取min-term features,使用mtFeatureExtraction()
      • 使用已經訓練好的模型來進行分類
      • 只要兩個段相連並且都是同一個類別,就將兩個段進行合並
      • 將數據進行可視化
    • 注意事項,一個.segment的文件必須要有
    • plotSegmentationResults()用來畫圖可視化數據
  • 隱馬爾科夫模型分割算法(HMM-based segmentation)

    • 用戶需要提供已經標注過的數據,包括:段開始點,段結束點,段類別
    • 一個語音文件配一個標注的配置文件,兩者構成訓練集
    • TrainHMM_fromFile()和TrainHMM_fromDir()是兩個訓練的函數
    • hmmSegmentation()函數用來使用HMM算法
    • plotSegmentationResult()可視化並且計算正確率

    image

無監督的語音分割

  • 靜音檢測

    • 短時間特征提取
    • 訓練SVM,在高能幀和低能幀中,特別的,10%的高能幀和10%的低能幀用在訓練SVM模型
    • 將SVM分類器用在全部的語音中,得到一串概率值,對應此幀是個時間幀(audio event)的概率
    • 一個動態的閾值被用來探測段是不是活躍的

    image

 
0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM