Étant donné que le nombre d'échantillons de données vocales était faible en raison de l'apprentissage automatique, nous avons ajouté des données de bruit et des données vocales produites en masse. Je présenterai la procédure à ce moment-là.
Fondamentalement, nous allons poursuivre la discussion en partant du principe que le fichier audio à traiter est un fichier wav, alors pardonnez-moi ...
SoX(Sound eXchange) Vous pouvez l'utiliser pour traiter diverses voix. Cette fois, je vais essayer de produire en masse des données audio contenant du bruit en utilisant certaines de ces fonctions.
Première installation.
brew install sox --with-lame
Immédiatement, mélangons le bruit. Prenons les données de bruit à partir de matériaux libres. Si vous recherchez «voix matérielle libre», vous trouverez des données qui peuvent être utilisées comme bruit comme les sons de la vie quotidienne.
sox -m sound.wav -v 0.1 noise.wav noise_mix.wav trim 0 3
Vous pouvez créer noise_mix.wav en mélangeant sound.wav et noise.wav avec la commande ci-dessus.
-m signifie mélanger deux fichiers audio. -v est le réglage du volume du bruit (secondes données audio), 1 est le volume d'origine. le trim est en train de rogner, cette fois-ci passant de la 0e à la 3e seconde.
En ce qui concerne la production de masse, je pense qu'elle sera exécutée en utilisant des déclarations for. En python, vous pouvez exécuter des commandes en utilisant le module de sous-processus, j'ai donc pensé qu'il serait bon d'activer l'instruction for ici, j'ai donc écrit le code. Je pense que le code changera en fonction de la structure du répertoire, etc., donc ce n'est qu'un exemple, mais cela ressemble à ce qui suit.
sox.py
import subprocess
for sound_idx in range(1,11):
for volume in range(1,11):
for noise_idx in range(1,11):
s_idx = str(sound_idx)
noise_volume = str(float(volume) / 10)
v = str(volume)
n = str(noise_idx)
cmd = f'sox -m sound_{s_idx}.wav -v{noise_volume} noise_{n}.wav {s_idx}_{v}_{n}.wav trim 0 3'
subprocess.check_output(cmd, shell=True)
Je devrais pouvoir l'écrire un peu plus joliment, donc pour référence seulement ...
Si les données à mélanger et le nombre de fréquences d'échantillonnage sont différents, une erreur se produira, donc je n'écrirai pas cette fois, mais je pense qu'il peut être nécessaire d'ajuster cette zone en utilisant SoX etc.
Référence: http://webdatareport.hatenablog.com/entry/2016/11/06/161304
Recommended Posts