librosa能量_librosa與python_speech_features

在語音識別領域,比較常用的兩個模塊就是librosa和python_speech_features了。

最近也是在做音樂方向的項目,借此做一下筆記,并記錄一些兩者的差別。下面是兩模塊的官方文檔

LibROSA - librosa 0.6.3 documentation?librosa.github.ioWelcome to python_speech_features’s documentation!?python-speech-features.readthedocs.io

直接對比兩文檔就可以看出librosa功能十分強大,涉及到了音頻的特征提取、譜圖分解、譜圖顯示、順序建模、創建音頻等功能,而python_speech_features只涉及了音頻特征提取。就特征提取的實現方法和種類來看,兩者也有所不同。

python_speech_features的特征

支持的特征:

  • python_speech_features.mfcc() - 梅爾倒譜系數
  • python_speech_features.fbank() - 濾波器組能量
  • python_speech_features.logfbank() - 對數濾波器組能量
  • python_speech_features.ssc() - 子帶頻譜質心特征

提取mfcc、logfbank特征的方法

from python_speech_features import mfcc
from python_speech_features import logfbank
import scipy.io.wavfile as wav(rate,sig) = wav.read("file.wav")  # 返回信號的采樣率以及信號數組ndarray
mfcc_feat = mfcc(sig,rate)  # 返回一個二維ndarray數組
fbank_feat = logfbank(sig,rate) # 返回一個二維ndarray數組print(fbank_feat[1:3,:])

python_speech_features的比較好用的地方就是自帶預加重參數,只需要設定preemph的值,就可以對語音信號進行預加重,增強高頻信號。

python_speech_features模塊提供的函數

python_speech_features.base.mfcc(signal, samplerate=16000, winlen=0.025, winstep=0.01, numcep=13, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, ceplifter=22, appendEnergy=True, winfunc=<function <lambda>>)

計算一個音頻信號的MFCC特征

返回: 一個大小為numcep的numpy數組,包含著特征,每一行都包含一個特征向量。

參數:

signal - 需要用來計算特征的音頻信號,應該是一個N*1的數組

samplerate - 我們用來工作的信號的采樣率

winlen - 分析窗口的長度,按秒計,默認0.025s(25ms)

winstep - 連續窗口之間的步長,按秒計,默認0.01s(10ms)

numcep - 倒頻譜返回的數量,默認13

nfilt - 濾波器組的濾波器數量,默認26

nfft - FFT的大小,默認512

lowfreq - 梅爾濾波器的最低邊緣,單位赫茲,默認為0

highfreq - 梅爾濾波器的最高邊緣,單位赫茲,默認為采樣率/2

preemph - 應用預加重過濾器和預加重過濾器的系數,0表示沒有過濾器,默認0.97

ceplifter - 將升降器應用于最終的倒譜系數。 0沒有升降機。默認值為22。

appendEnergy - 如果是true,則將第0個倒譜系數替換為總幀能量的對數。

winfunc - 分析窗口應用于每個框架。 默認情況下不應用任何窗口。 你可以在這里使用numpy窗口函數 例如:winfunc=numpy.hamming

python_speech_features.base.fbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

從一個音頻信號中計算梅爾濾波器能量特征

返回:2個值。第一個是一個包含著特征的大小為nfilt的numpy數組,每一行都有一個特征向量。第二個返回值是每一幀的能量

python_speech_features.base.logfbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97)

從一個音頻信號中計算梅爾濾波器能量特征的對數

返回: 一個包含特征的大小為nfilt的numpy數組,每一行都有一個特征向量

python_speech_features.base.ssc(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

從一個音頻信號中計算子帶頻譜質心特征

返回:一個包含特征的大小為nfilt的numpy數組,每一行都有一個特征向量

librosa的特征提取

librosa的可以提取的特征種類十分豐富

a2b54c25c4e8119d7210e76112ee2114.png

篇幅原因不多介紹

librosa.features.mfcc(y=None,sr=22050,S=None,n_mfcc=20,dct_type=2,norm='ortho',**kwargs)

y, sr = librosa.load('test.wav',offset=30, duration=5)
librosa.feature.mfcc(y=y, sr=sr, n_mfcc=40) # 返回shape=(n_mfcc, timestep)的二維矩陣

librosa.feature.spectral_centroid(y=None,sr=22050,S=None,n_fft=2048,hop_length=512,freq=None)
計算頻譜質心

>>> y, sr = librosa.load('test.wav')
>>> cent = librosa.feature.spectral_centroid(y=y, sr=sr)
>>> cent
array([[ 4382.894,   626.588, ...,  5037.07 ,  5413.398]])

藍調音樂的頻譜質心在頻譜偏中心的位置,金屬音樂在靠后的位置

librosa.feature.zero_crossing_rate(y,frame_length=2048,hop_length=512,center=True,**kwargs)

計算過零率

>>> y, sr = librosa.load('test.wav')
>>> librosa.feature.zero_crossing_rate(y)
array([[ 0.134,  0.139, ...,  0.387,  0.322]])

相對于python_speech_features來說,librosa沒有預加重的處理。或者說librosa提供自定義預加重功能。

預加重的一般傳遞函數為

差分方程實現預加重的方程為

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260603.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260603.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260603.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java Unicode轉碼

1 //中文轉UNICODE2 public static String chinaToUnicode(String str) {3 String result "";4 for (int i 0; i < str.length(); i) {5 int chr1 (char) str.charAt(i);6 if (chr1 > 19968 && ch…

oracle-備份工具exp-imp

雖然是按照用戶的方式導出的&#xff0c;但導入之前&#xff0c;還是必須要有相同的用戶存在&#xff0c;刪除用戶以后&#xff0c;是無法進行導入的 --重新創建回zlm用戶 SQL> create user zlm identified by zlm; 盡管zlm用戶的默認表空間是USERS&#xff0c;但是用imp導入…

繼承String?

不能繼承&#xff0c;因為 public final class String extends Objectimplements Serializable, Comparable<String>, CharSequence final修飾的類是不能被繼承的轉載于:https://www.cnblogs.com/crane-practice/p/3666006.html

python中字典數據的特點_Python數據類型(字典)

Python 字典(Dictionary) 字典是另一種可變容器模型&#xff0c;且可存儲任意類型對象。 字典的每個鍵值(key>value)對用冒號(:)分割&#xff0c;每個對之間用逗號(,)分割&#xff0c;整個字典包括在花括號({})中 ,格式如下所示&#xff1a; d {key1: value1, key2: value2}…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建10 - 空間濾波 - 統計排序濾波器 - 中值、最大值、最小值、中點、修正阿爾法均值濾波器

標題統計排序濾波器中值、最大值、最小值、中點 濾波器修正阿爾法均值濾波器統計排序濾波器 中值、最大值、最小值、中點 濾波器 f^(x,y)median{g(r,c)}(5.27)\hat{f}(x, y) \text{median} \{g(r,c)\} \tag{5.27}f^?(x,y)median{g(r,c)}(5.27) f^(x,y))max{g(r,c)}(5.28)\ha…

如何設置坐標原點值_氨氣檢測儀電化學原理及報警值如何設置

氨氣體檢測儀檢定規程&#xff1a;一般氨氣體檢測儀檢定規程主要是針對技術參數設定的一些標準&#xff0c;具體包含有規程的名稱和范圍、儀器示值誤差、充分性標準差、響應時間、穩定性、報警功能、流量控制器、檢定項目表、檢定操作有數值誤差、重復性、響應時間、穩定性等。…

統計信息及相關說明

統計信息&#xff1a;0 recursive calls20434 db block gets 317970511 consistent gets 0 physical reads 3759764 redo size 382 bytes sent via SQL*Net to client 1061 bytes received via SQL*Net from client 3 SQL*Ne…

Android橫豎屏切換的生命周期

關于Android手機橫豎屏切換時Activity的生命周期問題&#xff0c;網上有很多相似的文章&#xff0c;大多數都是說明在豎屏切換橫屏時Activity會重啟一次&#xff0c;而在橫屏切換豎屏時Activity會重啟兩次。 我本身不太理解這樣設計的意義&#xff0c;并且覺得新版本會解決這個…

python 隨機字符串_python生成隨機數、隨機字符串

python生成隨機數、隨機字符串 import random import string # 隨機整數&#xff1a; print random.randint(1,50) # 隨機選取0到100間的偶數&#xff1a; print random.randrange(0, 101, 2) # 隨機浮點數&#xff1a; print random.random() print random.uniform(1, 10) # 隨…

ACM 會場安排問題

會場安排問題 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB難度&#xff1a;4描述學校的小禮堂每天都會有許多活動&#xff0c;有時間這些活動的計劃時間會發生沖突&#xff0c;需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動&#xff0c;…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建11 - 空間濾波 - 自適應濾波器 - 自適應局部降噪、自適應中值濾波器

標題自適應濾波器自適應局部降噪濾波器自適應中值濾波器自適應濾波器 自適應局部降噪濾波器 均值是計算平均值的區域上的平均灰度&#xff0c;方差是該區域上的圖像對比度 g(x,y)g(x, y)g(x,y)噪聲圖像在(x,y)(x, y)(x,y)處的值 ση2\sigma_{\eta}^2ση2? 為噪聲的方差&am…

關閉防火墻_從零開始學Linux運維|09.關閉防火墻和SElinux

firewalld是centos7默認的防火墻安全增強型 Linux(Security-Enhanced Linux)簡稱 SELinux初學者建議先關閉,等熟悉了之后再來使用前期聯系中的好多錯誤都有可能是由于沒有關閉或者正確配置上面兩項造成的1.臨時關閉centos7下的防火墻firewalld一行命令就能夠關閉firewalld--&qu…

Discuz!NT - 在線顯示列表 游客 bug 修復

引發bug的條件&#xff1a;當你修改了系統組里面的[游客]組 的名字后&#xff01;&#xff01; 你會發現首頁上底部的在線顯示列表里始終都是顯示"游客"字樣而非你改過得字樣&#xff01;如圖 至此你需要運行一個t-sql腳本去修復這個bug&#xff01;&#xff08;但是…

Linux查看物理CPU個數、核數、邏輯CPU個數

# 總核數 物理CPU個數 X 每顆物理CPU的核數 # 總邏輯CPU數 物理CPU個數 X 每顆物理CPU的核數 X 超線程數# 查看物理CPU個數 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每個物理CPU中core的個數(即核數) cat /proc/cpuinfo| grep "cpu …

基于空間方法的圖神經網絡模型_用于時空圖建模的圖神經網絡模型 Graph WaveNet | 課程上新...

課程概要本課程來自集智學園圖網絡論文解讀系列活動。是對論文《Graph WaveNet for Deep Spatial-Temporal Graph Modeling》的解讀。時空圖建模 (Spatial-temporal graph modeling)是分析系統中組成部分的空間維相關性和時間維趨勢的重要手段。已有算法大多基于已知的固定的圖…

dataframe類型數據的遍歷_Python零基礎入門到爬蟲再到數據分析,這些你都是要學會的...

1.必須知道的兩組Python基礎術語A.變量和賦值Python可以直接定義變量名字并進行賦值的&#xff0c;例如我們寫出a 4時&#xff0c;Python解釋器干了兩件事情&#xff1a;在內存中創建了一個值為4的整型數據在內存中創建了一個名為a的變量&#xff0c;并把它指向4用一張示意圖表…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建12 - 空間濾波 - 使用頻率域濾波降低周期噪聲 - 陷波濾波、最優陷波濾波

標題使用頻率域濾波降低周期噪聲陷波濾波深入介紹最優陷波濾波本章陷波濾波器有部分得出的結果不佳&#xff0c;如果有更好的解決方案&#xff0c;請賜教&#xff0c;不勝感激。 使用頻率域濾波降低周期噪聲 陷波濾波深入介紹 零相移濾波器必須關于原點(頻率矩形中心)對稱&a…

Android之Menu動態改變文字

Menu創建&#xff1a; Override//這里遇到一個問題add的是MenuItem的idpublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubmenu.add(0,1023, 0, "一");menu.add(0,1022, 1, "開啟線程");Log.e("onCreateOptionsMenu…

iOS 開發周報:Apple 發布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品

新聞\\Apple 發布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品&#xff1a;Apple 正式發布了 iPhone 7 / 7 Plus、Apple Watch 2 新品&#xff0c;帶來 AirPods 無線耳機&#xff0c;并把馬里奧帶進了 iOS。iPhone 7 新增亮黑色&#xff0c;移除3.5mm 耳機孔&#xff0c;支持 IP…

python寫界面c這算法_插入算法分別從C,java,python三種語言進行書寫

真正學懂計算機的人&#xff08;不只是“編程匠”&#xff09;都對數學有相當的造詣&#xff0c;既能用科學家的嚴謹思維來求證&#xff0c;也能用工程師的務實手段來解決問題——而這種思維和手段的最佳演繹就是“算法”。 作為一個初級編程人員或者說是一個程序員&#xff0c…