欢迎加入QQ讨论群258996829
麦子学院 头像
苹果6袋
6
麦子学院

使用python如何扩充音频数据?

发布时间:2018-04-15 23:34  回复:0  查看:3329   最后回复:2018-04-15 23:34  
经典的深度学习网络AlexNet 使用  数据扩充(Data Augmentation  的方式扩大数据集,取得较好的分类效果。在深度学习的图像领域中,通过平移、  翻转、加噪等方法进行数据扩充。但是,在  音频(Audio  领域中,如何进行数据扩充呢?
本文和大家分享的就是python 音频数据扩充的一些小技巧,一起来看看吧,希望对大家 学习python有所帮助。
  音频的数据扩充主要有以下四种方式:
  ·  音频剪裁( Clip
  ·  音频旋转( Roll
  ·  音频调音( Tune
  ·  音频加噪( Noise
  音频处理基于librosa 音频库;矩阵操作基于 scipy numpy 科学计算库。
  以下是Python 的实现方式:
   音频剪裁
   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])  #  写入音频
   音频旋转
   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)  #  写入音频
   音频调音
  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)  #  写入音频
  音频加噪,注意:在添加随机噪声时,保留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)  #  写入音频
来源:网络
您还未登录,请先登录

热门帖子

最新帖子