天使爱美丽

“TA还未设置签名”

笔记

Python音频数据扩充的4种方式详解

已有 41 次阅读2018-04-15 23:34 |系统分类:前端优化 |

经典的深度学习网络AlexNet使用 数据扩充(Data Augmentation 的方式扩大数据集,取得较好的分类效果。在深度学习的图像领域中,通过平移、 翻转、加噪等方法进行数据扩充。但是,在 音频(Audio 领域中,如何进行数据扩充呢?

本文和大家分享的就是python音频数据扩充的一些小技巧,一起来看看吧,希望对大家学习python有所帮助。

  音频的数据扩充主要有以下四种方式:

  · 音频剪裁(Clip

  · 音频旋转(Roll

  · 音频调音(Tune

  · 音频加噪(Noise

  音频处理基于librosa音频库;矩阵操作基于scipynumpy科学计算库。

  以下是Python的实现方式:

  音频剪裁

  import librosafrom 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 librosaimport numpy as npfrom 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 librosafrom scipy.io import wavfileimport 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)  # 写入音频

来源:网络


标签: 举报

收藏 0人收藏
给个赞0人点赞
评论
0 /300