經典的深度學習網絡AlexNet使用數據擴充(Data Augmentation)的方式擴大數據集,取得較好的分類效果。在深度學習的圖像領域中,通過平移、 翻轉、加噪等方法進行數據擴充。但是,在音頻(Audio)領域中,如何進行數據擴充呢?
音頻的數據擴充,主要有以下四種方式:
音頻剪裁(Clip)
音頻旋轉(Roll)
音頻調音(Tune)
音頻加噪(Noise)
音頻解析基于librosa音頻庫;矩陣操作基于scipy和numpy科學計算庫。
以下是Python的實現方式
01
音頻剪裁
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])
# 寫入音頻
02
音頻旋轉
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_tune)
# 寫入音頻
03
音頻調音
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_tune)
# 寫入音頻
04
音頻加噪
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)
# 寫入音頻
-
音頻
+關注
關注
29文章
2830瀏覽量
81257 -
python
+關注
關注
55文章
4767瀏覽量
84375
原文標題:Python音頻的數據擴充
文章出處:【微信號:machinelearningai,微信公眾號:機器學習算法與人工智能】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論