[ TAG 58 ][18.06.2021] - Erfolgreich - IAP-20210601-20210612-1750 - Abschluss - Schwerpunktsetzung
Ich werde heute einige Analyse/Untersuchungen an folgenden [ WAV-Dateien ] vornehmen. Die [ WAV-Dateien ] habe ich den Modul [ IAP-20210601-20210609-2325 ] entnommen. Die [ WAV-Dateien ] wurden mit [ scipy.io.wavfile ] erstellt.
- Modul: IAP-20210601-20210609-2325
- [ ALOG-20210612_0811.wav ]
- [ ALOG-20210612_0812.wav ]
- [ ALOG-20210612_0813.wav ]
Durch die Kalkulation vom [16.06.21][0830][0930] habe ich die Vermutung aufgestellt, dass in den obengenannten [ WAV-Dateien ] die Samples mit [ 32 Bit FLOAT ] gespeichert werden. Bei der Erarbeitung der [ Soundfile-Library ] habe ich das Attribut [ Subtype ] entdeckt. Dadurch habe ich gelernt, dass eine [ WAV-Datei ] mit unterschiedlichen Bit-Tiefen kodiert werden konnte. Die Bit-Tiefe und viele andere Informationen bezüglich der Datei werden im [ HEADER ] gespeichert. Für die Entschlüsselung des [ WAV-Formates ] eignet sich diese
- Quelle:
- http://soundfile.sapp.org/doc/WaveFormat/
- Hat keine Dokumentation über Extra Fields
- Hat keine Dokumentation über FACT-CHUNK
- https://wavefilegem.com/how_wave_files_work.html
- Enthält Dokumentation über Extra Fields
- Enthält Dokumentation über FACT-CHUNK
Achtung: Bevor ich [ Soundfile] benutzen kann, muss ich numpy installieren.
Für die Analyse der [ WAV-Datei ] wird die Methode [ soundfile.SoundFile(...) ] benutzt. Dabei werden die Attribute ausgegeben von den oben genannten [WAV-Dateien ]. Siehe die Quelle
- Quelle:
- https://pysoundfile.readthedocs.io/en/0.9.0/#soundfile.SoundFile
Code:
import soundfile as sf
import os
print("")
print("")
print("Analyse der ALOG-20210612_0811.WAV")
print("ALOG-20210612_0811.WAV size: "+str(os.stat('ALOG-20210612_0811.wav').st_size)+" Bytes")
with sf.SoundFile('ALOG-20210612_0811.wav') as ALOG_20210612_0811:
print("SoundFile-Object: "+str(ALOG_20210612_0811))
print(".MODE: "+str(ALOG_20210612_0811.mode))
print(".SAMPLERATE:"+str(ALOG_20210612_0811.samplerate))
print(".CHANNELS: "+str(ALOG_20210612_0811.channels))
print(".FORMAT: "+str(ALOG_20210612_0811.format))
print(".SUBTYPE: "+str(ALOG_20210612_0811.subtype))
print("---------------------------------------------")
print(".NAME: "+str(ALOG_20210612_0811.name))
print(".FORMAT_INFO: "+str(ALOG_20210612_0811.format_info))
print(".SUBTYPE_INFO: "+str(ALOG_20210612_0811.subtype_info))
print(".SECTIONS: "+str(ALOG_20210612_0811.sections))
print(".EXTRA_INFO: "+str(ALOG_20210612_0811.extra_info))
print("---------------------------------------------")
print(".CLOSED: " + str(ALOG_20210612_0811.closed))
print(".CLOSED: " + str(ALOG_20210612_0811.closed))
Ausgabe:
Analyse der ALOG-20210612_0811.WAV
ALOG-20210612_0811.WAV size: 705658 Bytes
SoundFile-Object: SoundFile('ALOG-20210612_0811.wav', mode='r', samplerate=44100, channels=2, format='WAV', subtype='FLOAT', endian='FILE')
.MODE: r
.SAMPLERATE:44100
.CHANNELS: 2
.FORMAT: WAV
.SUBTYPE: FLOAT
---------------------------------------------
.NAME: ALOG-20210612_0811.wav
.FORMAT_INFO: WAV (Microsoft)
.SUBTYPE_INFO: 32 bit float
.SECTIONS: 1
.EXTRA_INFO: File : 'ALOG-20210612_0811.wav' (utf-8 converted from ucs-2)
Length : 705658
RIFF : 705650
WAVE
fmt : 18
Format : 0x3 => WAVE_FORMAT_IEEE_FLOAT
Channels : 2
Sample Rate : 44100
Block Align : 8
Bit Width : 32
Bytes/sec : 352800
fact : 4
frames : 88200
data : 705600
End
---------------------------------------------
.CLOSED: False
.CLOSED: True
Es ist jetzt [18.06.2021][0815]. Ich habe genug Daten gesammelt um jetzt das nächste Modul zu eröffnen. Ich denke, wenn es um den Datentypen [WAV] geht, sind meine Analysten vollständig. Während der letzten drei Module habe ich genug Daten gesammelt um jetzt mit Streams anfangen zu können. Ich finde mit [ soundfile ] kann man sehr viel genauer Arbeiten als mit [ scipy.io.wavfile ], weil man auf alle Eigenschaften einer [ WAV-Datei ] zugriff hat, die die [ WAV-Datei ] charakterisieren.
[18.06.2021][1417] Ich beende die heutige Worksession. Ich habe alle Bytes des Headers identifiziert und mit den Attributen von [ soundfile ] verknüpft. Alle Attribute wurden in der Binären [ WAV-Datei ] gefunden und identifiziert.
Für die Datei [ ALOG-20210612_0811.wav ] habe ich den HEADER anhand der Byte-Größe herausgerechnet und die Bytes in eine separate Datei [ALOG-20210612_0811-HEADER.hex] für die Analysen herauskopiert.
Ich schließe das Modul [ IAP-20210601-20210612-1750 ] ab. Die Schwerpunkte des Moduls waren die Library [ soundfile ] und das [ WAV-Datenformat ]. Dafür musste man separat [ numpy ] installieren.
Kommentare
Kommentar veröffentlichen