名稱
含義sr(sample_rate)
取樣率,表示一秒取樣多少個樣本點
hop_length
步幅;幀移對應卷積中的stride;連續幀分割長度
連續兩幀的重疊部分
n_fft
spectrum
光譜,頻譜
spectrogram:
光譜圖;聲譜圖
chromagram
色譜圖amplitude
振幅logarithmic amplitude-frequency
對數振幅頻譜圖
mono
單聲道pitch
音高timbral
音色通過使用視窗函式將長短不一的音訊分割成大小相同的音訊片段。(預設取樣率22050hz)。
音訊分幀一般有兩種不同的方式:取樣點和時間
方式一:(幀描述方式)使用2048((20481000ms)/22050=93ms)個取樣點,前後兩個窗的重疊5123取樣點。
方式二:(時間描述方式)使用 93ms 的幀長、23ms 的幀移(hop_length),以及週期性的 hann 視窗對語音進行分幀。
常用的操作
#這是乙個視窗大小為window_size,連續視窗的重疊部分為window_size/2
def windows(audio, window_size):
start = 0
while start < len(audio):
#len(audio)是乙個音訊檔案的總樣本點數。
yield start, start + window_size #取出長度為window_size的樣本點下標索引
start += (window_size / 2) #計算下乙個分割片段的起始位置
計算每一幀mel聲譜圖。
signal = audio[0,2048] #(audio[0,2048] 表示圖中的分割的1片段
#下面一行計算分割片段audio[0,2048]的64階mel譜
#sr表示取樣率,表示一秒取樣多少個樣本點。
#n_fft表示短時傅利葉變化用到的連續的樣本點個數
#hop_length:連續兩個傅利葉變化的重疊樣本點個數
melspec = librosa.feature.melspectrogram(signal, sr=22050,
n_fft=2048,
hop_length=512,
n_mels = 64)
logspec = librosa.amplitude_to_db(melspec)#計算log mel
#本**計算將乙個原始音訊檔案分割成等大小的片段,
#然後計算每乙個片段的og mel_sepctrogram.
for (start,end) in windows(audio,window_size):
#(1)此處是為了是將大小不一樣的音訊檔案用大小window_size,
#stride=window_size/2的視窗,分割為等大小的時間片段。
#(2)計算每乙個分割片段的log mel_sepctrogram.
if(end<= len(audio)): #最後不夠乙個視窗的樣本點捨去
signal = audio[start:end] #分割的音訊幀(圖中的1,2,3,4,5,6)
melspec = librosa.feature.melspectrogram(signal, n_mels = 64) #計算每個分割片段的mel譜
logspec = librosa.amplitude_to_db(melspec)#計算log mel 譜
參考:文獻
github
doclibrosa *****部落格
音訊處理庫 pydub與ffmpeg
安裝pydub pip install pydub 安裝ffmpeg mac下 brew install ffmpeg windows下 2.解壓 3.將子級目錄的bin目錄配置到環境變數裡 4.命令列輸入 ffmpeg version 進行驗證 from pydub import audioseg...
音訊焦點處理
場景 聽 來了 此時 停止,結束通話 繼續。1,在service的oncreate方法中加入以下 建立audiomanger audiomanager audiomanager audiomanager getsystemservice context.audio service int resul...
音訊取樣處理
sampletank被稱作創造歷史的行業標準聲音工作站,這一次官方將這款軟體進行了重新製作。使得這款軟體在原來的基礎之上進行了創新。它能夠憑藉其高品質的聲音質量,使用的功能介面,使得sampletank的每乙個版本都已成為行業標準。相信最新版本的ik sampletank 4會給我們帶來更加出色的使...