Erste Schritte mit PySoundFile
PySoundFile ist ein Python-Modul, das zum Lesen und Schreiben von Audiodateien verwendet wird. Sehen Sie sich eine Audiodatei als NumPy- Array an, einschließlich Tonhöhen und allem. Dieses Modul kann die Audiodatei lesen, dh es extrahiert das NumPy-Array aus Audio (WAV-Dateien) und kann es auch schreiben
Installation : Führen Sie den folgenden pip-Befehl aus:
pip install PySoundFile
PySoundFile unterstützt alle Formate, die libsndfile unterstützt, z. B. WAV-, FLAC-, OGG- und MAT-Dateien
Hier ist der Link der Audiodatei in den Beispielen verwendeten Link
Audiodatei lesen:
Audiodateien können mit der Funktion read() gelesen werden.
Syntax: read (Datei, Frames = -1, Start = 0, Stop = Keine, Füllwert = Keine, Samplerate = Keine, Kanäle = Keine, Subtyp = Keine)
Parameter:
- Datei: Pfad der Audiodatei
- Frames : Dieses Argument wird verwendet, um die Anzahl der zu lesenden Frames anzugeben. Standardmäßig hat es den Wert -1, der die gesamte zu lesende Datei angibt
- Start, Stopp : Um Start und Ende für das Lesen der Audiodatei festzulegen, wird standardmäßig die gesamte Datei gelesen
- fill_value : Wenn die Datei weniger Daten enthält als angefordert, werden die restlichen Frames mit fill_value gefüllt. Wenn kein fill_value angegeben ist, wird das kleinere Array zurückgegeben
Rückgabe: 2 Werte
- Daten: Numpy-Array (Länge sollte 44.100 Elemente betragen) Wenn ein 1-D-Numpy-Array zurückgegeben wird, wird das Audio-Lesen monokanalisiert
- Samplerate: Die Samplerate (oder „Sampling Rate“) definiert, wie oft pro Sekunde ein Sound abgetastet wird. Technisch gesehen ist dies die Frequenz der Samples, die bei einer digitalen Aufzeichnung verwendet werden. Die Standard-Samplerate für Audio-CDs beträgt 44,1 Kilohertz. Auch für diese Datei gilt dies
Unterstützte Dateiformate: WAV, AIFF, AU, PAF, SVX, NIST, VOC, IRCAM, W64, MAT4, MAT5, PVF, XI, HTK, SDS, AVR, WAVEX, SD2, FLAC, CAF, WVE, OGG, MPC2K, RF64
Beispiel: Wir werden die folgende Datei lesen:
[wenn IE 9]>import
soundfile as sf
data, samplerate
=
sf.read(
'noice.wav'
)
(data)
(
"---------------------"
)
(
"Sample Rate is "
, samplerate)
(
"---------------------"
)
(
"Done"
)
Ausgabe:
Schreiben einer Datei: Wir können eine Datei mit der Funktion write() schreiben .
Syntax: Schreiben (Datei, Daten, Samplerate, Subtyp = Keine, Endian = Keine, Format = Keine, closefd = True)
Parameter:
- Datei: Pfad der Ausgabedatei
- Daten: zu schreibende Daten
- Samplerate: Samplerate der Audiodaten
Rückgabe: Nichts
Um eine Audiodatei zu schreiben, benötigen wir ein NumPy-Array (dh Daten), da die Abtastrate den Standardwert hat. Es öffnet die Datei im wb-Modus. Wenn der gleiche Name vorhanden ist, schreibt das Programm sie neu
Beispiel: Wir werden die folgende Datei lesen:
import
soundfile as sf
data, samplerate
=
sf.read(
'Sample.wav'
)
sf.write(
'writing_file_output.wav'
, data, samplerate)
Ausgabe: Dies ist die Ausgabedatei: