[PYTHON] Erstellen Sie mit SoX rauschgefüllte Audiodaten

Da die Anzahl der Sprachdatenabtastungen aufgrund des maschinellen Lernens gering war, haben wir Rauschdaten und massenproduzierte Sprachdaten eingegeben. Ich werde das Verfahren zu diesem Zeitpunkt vorstellen.

Grundsätzlich werden wir mit der Diskussion unter der Voraussetzung fortfahren, dass die zu behandelnde Audiodatei eine WAV-Datei ist. Bitte verzeihen Sie mir ...

SoX(Sound eXchange) Sie können dies verwenden, um verschiedene Stimmen zu verarbeiten. Dieses Mal werde ich versuchen, mit einigen dieser Funktionen rauschhaltige Audiodaten in Massen zu produzieren.

Zuerst installieren.

brew install sox --with-lame

Mischen Sie Rauschen mit Audiodaten

Lassen Sie uns sofort das Rauschen mischen. Nehmen wir Rauschdaten aus freien Materialien auf. Wenn Sie nach "freie materielle Stimme" suchen, finden Sie Daten, die als Rauschen verwendet werden können, z. B. Geräusche des täglichen Lebens.

sox -m sound.wav -v 0.1 noise.wav noise_mix.wav trim 0 3

Sie können Noise_Mix.Wav erstellen, indem Sie Sound.Wav und Noise.Wav mit dem obigen Befehl mischen.

-m bedeutet, zwei Audiodateien zu mischen. -v ist die Lautstärkeregelung des Rauschens (zweite Audiodaten), 1 ist die ursprüngliche Lautstärke. Trimmen ist Trimmen, diesmal Trimmen von der 0. auf die 3. Sekunde.

Massenproduktion durch Schlagen der Schale mit Python

Wenn es um Massenproduktion geht, denke ich, dass es mit for-Anweisungen ausgeführt wird. In Python können Sie Befehle mithilfe des Unterprozessmoduls ausführen. Daher dachte ich, es wäre gut, die for-Anweisung in dieser zu ändern, also habe ich den Code geschrieben. Ich denke, dass sich der Code abhängig von der Verzeichnisstruktur usw. ändern wird, also ist es nur ein Beispiel, aber es sieht wie folgt aus.

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)

Ich sollte es etwas schöner schreiben können, also nur als Referenz ...

Hinweis

Ein Fehler tritt auf, wenn die zu mischenden Daten und die Anzahl der Abtastraten unterschiedlich sind. Daher werde ich diesmal nicht schreiben, aber ich denke, dass es erforderlich sein kann, diesen Bereich mit SoX usw. anzupassen.

Referenz: http://webdatareport.hatenablog.com/entry/2016/11/06/161304

Recommended Posts

Erstellen Sie mit SoX rauschgefüllte Audiodaten
Betten Sie Audiodaten in Jupyter ein
Erstellen von CSV-Beispieldaten mit Hypothese
Erstellen Sie solche Testdaten mit Python (Teil 1)
Datenanalyse mit Python 2
[Python] Strukturiertes Array erstellen (heterogene Daten mit NumPy speichern)
Daten mit TensorFlow lesen
Datenvisualisierung mit Pandas
Erstelle Spiele mit Pygame
Erstellen Sie einen Filter mit scipy
Datenmanipulation mit Pandas!
Daten mit Pandas mischen
Datenerweiterung mit openCV
Daten mit Scipy normieren
Datenanalyse mit Python
Erstellen Sie reguläre Polyederdaten
LADEN SIE DATEN mit PyMysql
Lassen Sie von Google Text-to-Speech Audiodaten (Kommentare) für Videomaterial erstellen (mit C # - und Python-Beispielen).
Erstellen Sie Anwendungen, registrieren Sie Daten und teilen Sie sie mit einer einzigen E-Mail
Zeichnen Sie Excel-Daten mit matplotlib (1)
Künstliche Datengenerierung mit Numpy
Erstellen Sie eine Umgebung mit virtualenv
Erstellen Sie Cloud-TPU mit tf-nightly
Erstellen Sie eine API mit Django
Erstellen / Suchen / Erstellen einer Tabelle mit PynamoDB
Extrahieren Sie Twitter-Daten mit CSV
Erstellen Sie ein 3D-GIF mit Python3
Plotly Erstellen Sie ein Diagramm mit einer Schaltfläche
Erstellen Sie eine Homepage mit Django
Lernen Sie neue Daten mit PaintsChainer
Binarisieren Sie Fotodaten mit OpenCV
Zeichnen Sie Excel-Daten mit matplotlib (2)
Erstellen Sie den Image Viewer mit Tkinter
Erstellen Sie benutzerdefinierte Regeln mit ElastAlert
Erstellen Sie eine Patentkarte mit Streamlit
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie eine Xlsx-Datei mit XlsxWriter
Datenverarbeitungstipps mit Pandas
Lesen von JSON-Daten mit Python
Erstellen Sie ein USB-Boot-Ubuntu mit einer Python-Umgebung für die Datenanalyse