Увеличение данных для Python Audio

машинное обучение искусственный интеллект глубокое обучение алгоритм NumPy
Увеличение данных для Python Audio

Классическая сеть глубокого обучения AlexNet использует аугментацию данных для расширения набора данных для достижения лучших результатов классификации. В области изображений глубокого обучения увеличение данных осуществляется такими методами, как перевод, отражение и добавление шума. Однако в поле audio (Аудио) как выполнить аугментацию данных?

аудиоувеличение данных, главным образом, следующими четырьмя способами:

  • Аудиовырезка (клип)
  • Аудио Ротация (Roll)
  • Настройка звука (Tune)
  • Аудио Шум (Шум)

Разбор аудио на основе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)  # 写入音频

настройка звука, Примечание. Функция изменения размера библиотеки cv содержит функцию интерполяции.

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)  # 写入音频

звуковой шум, Примечание. При добавлении случайного шума оставьте значение 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)  # 写入音频

Добро пожаловать в Следуй за мнойGitHub: https://GitHub.com/шип Кинг

C. L. Wang @ Meitu Cloud Business Unit

OK, that's all! Enjoy it!