音频数据扩充

  在机器学习任务中,存在数据集类别失衡的情况,那么解决类别失衡的方法是1.上采样即:扩充样本较少的类数据直到跟样本多的类差不多为止;或者用下采样即:在样本多的类中随机剔除部分数据。
  针对上采样的话,在图像领域可以有的操作是:平移、旋转、加噪等,在语音领域可以有的操作是裁剪、旋转、调音、加噪。
  1. 裁剪(clip):即截取音频段

# 将原始视频裁剪20s
import librosa
from scipy.io import wavfile
y, sr = librosa.load('test.mp3')
wavfile.write('clip_20s.mp3', sr, y[20*sr:40*sr])

  2. 旋转(roll):即平移

# 将音频向右移动10s,最后10s将挪到最前面
import librosa
import numpy as np
from scipy.io import wavfile
y, sr = librosa.load('clip_20s.mp3')
y = np.roll(y, sr*10)
wavfile.write('roll.mp3', sr, y)

  3. 调音(tune)

import librosa
import cv2
from scipy.io import wavfile
y, sr = librosa.load('clip_20s.mp3')
ly = len(y)
y_tune = cv2.resize(y, (1, int(ly*1.2))).squeeze()
lc = len(y_tune)-ly
y_tune = y_tune[int(lc/2):int(lc/2)+ly]
wavfile.write('tune.mp3', sr, y)

  4. 加噪(noise):为音频加入白噪声,呲呲响的那种哦!

import librosa
import numpy as np
from scipy.io import wavfile
y, sr = librosa.load('clip_20s.mp3')
wn = np.random.randn(len(y))
y = np.where(y != 0.0, y + 0.02 * wn, 0.0) # 噪声不要添加到0上!np.where(condition,x,y)condition为true取x,否者取y
wavfile.write("add_noise.mp3", sr, y) # 写入音频
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值