[PYTHON] Créez des données audio bruyantes avec SoX

É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

Mélanger le bruit avec les données audio

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.

Production de masse en frappant shell avec python

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 ...

Mise en garde

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

Créez des données audio bruyantes avec SoX
Incorporer des données audio avec Jupyter
Comment créer des exemples de données CSV avec hypothèse
Créez des données de test comme ça avec Python (partie 1)
Analyse de données avec python 2
[Python] Créer un tableau structuré (stocker des données hétérogènes avec NumPy)
Lecture de données avec TensorFlow
Visualisation des données avec les pandas
Créez des jeux avec Pygame
Créer un filtre avec scipy
Manipulation des données avec les Pandas!
Mélangez les données avec les pandas
Augmentation des données avec openCV
Normariser les données avec Scipy
Analyse de données avec Python
Créer des données de polyèdre régulières
CHARGER DES DONNÉES avec PyMysql
Demandez à Google Text-to-Speech de créer des données audio (narration) pour le matériel vidéo (avec des échantillons C # et Python)
Créez des applications, enregistrez des données et partagez-les avec un seul e-mail
Graphique des données Excel avec matplotlib (1)
Génération artificielle de données avec numpy
Créer un environnement avec virtualenv
Créez Cloud TPU avec tf-nightly
Créer une API avec Django
Créer / rechercher / créer une table avec PynamoDB
Extraire les données Twitter avec CSV
Créer un gif 3D avec python3
tracé Créer un graphique avec un bouton
Créer une page d'accueil avec django
Apprenez de nouvelles données avec PaintsChainer
Binariser les données photo avec OpenCV
Graphique des données Excel avec matplotlib (2)
Créer une visionneuse d'images avec Tkinter
Créez des règles personnalisées avec ElastAlert
Créez une carte des brevets avec Streamlit
Créer un répertoire avec python
Créer un fichier xlsx avec XlsxWriter
Conseils de traitement des données avec Pandas
Lire des données json avec python
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données