經(jīng)典的深度學(xué)習(xí)網(wǎng)絡(luò)AlexNet
使用
數(shù)據(jù)擴(kuò)充(Data Augmentation)
的方式擴(kuò)大數(shù)據(jù)集,取得較好的分類效果。在深度學(xué)習(xí)的圖像領(lǐng)域中,通過平移、
翻轉(zhuǎn)、加噪等方法進(jìn)行數(shù)據(jù)擴(kuò)充。但是,在
音頻(Audio)
領(lǐng)域中,如何進(jìn)行數(shù)據(jù)擴(kuò)充呢?
音頻的數(shù)據(jù)擴(kuò)充主要有以下四種方式:
·
音頻剪裁(
Clip
)
·
音頻旋轉(zhuǎn)(
Roll
)
·
音頻調(diào)音(
Tune
)
·
音頻加噪(
Noise
)
音頻處理基于librosa
音頻庫(kù);矩陣操作基于
scipy
和
numpy
科學(xué)計(jì)算庫(kù)。
以下是Python
的實(shí)現(xiàn)方式:
音頻剪裁
import librosa
from scipy.io
import wavfile
y, sr = librosa.load("../data/love_illusion.mp3") #
讀取音頻
print y.shape, sr
wavfile.write("../data/love_illusion_20s.mp3", sr, y[20 * sr:40 * sr]) #
寫入音頻
音頻旋轉(zhuǎn)
import librosa
import numpy
as np
from scipy.io
import wavfile
y, sr = librosa.load("../data/raw/love_illusion_20s.mp3") #
讀取音頻
y = np.roll(y, sr*10)
print y.shape, sr
wavfile.write("../data/raw/xxx_roll.mp3", sr, y) #
寫入音頻
音頻調(diào)音
import cv2
import librosa
from scipy.io import wavfile
y, sr = librosa.load("../data/raw/love_illusion_20s.mp3") #
讀取音頻
ly = len(
y)
y_tune = cv2.
resize(
y, (1,
int(len(
y) * 1.2))).squeeze()
lc = len(y_tune) - ly
y_tune = y_tune[
int(
lc / 2):
int(
lc / 2) + ly]
print
y.shape, sr
wavfile.
write("../data/raw/xxx_tune.mp3", sr,
y) #
寫入音頻
音頻加噪,注意:在添加隨機(jī)噪聲時(shí),保留0
值,否則刺耳難忍!
import librosa
from scipy.io
import wavfile
import numpy
as np
y, sr = librosa.load("../data/raw/love_illusion_20s.mp3") #
讀取音頻
wn = np.random.randn(len(y))
y = np.where(y != 0.0, y + 0.02 * wn, 0.0) #
噪聲不要添加到
0
上!
print y.shape, sr
wavfile.write("../data/raw/love_illusion_20s_w.mp3", sr, y) #
寫入音頻
來源:網(wǎng)絡(luò)