WAV-Daten laden
Um mit beliebigen, nicht standardisierten Daten in Dask Bags zu arbeiten, musst du viele Funktionen selbst schreiben. In dieser Aufgabe analysierst du Audiodaten und brauchst dafür eine eigene Funktion zum Laden.
Bei einigen Audioaufnahmen ist etwas schiefgelaufen, die Tonspur ist dort stumm. Normale Audiodaten sehen wie eine Welle aus, bei der die Amplitude stark in positive und negative Werte ausschlägt. Um zu prüfen, ob eine Aufnahme stumm ist, kannst du also testen, ob der Audioclip insgesamt sehr kleine Amplituden hat.
Das Modul scipy.io.wavfile wurde als wavfile und numpy als np importiert.
Diese Übung ist Teil des Kurses
Parallele Programmierung mit Dask in Python
Anleitung zur Übung
- Verwende in der Funktion
load_wav()wavfile.read(), um die Audiodaten und die Abtastrate zu laden. - Baue in
load_wav()das zurückgegebene Dictionary zusammen. - Gib in der Funktion
not_silent()einen booleschen Wert zurück, der angibt, ob das'audio'-Array im Eingabe-Dictionary einen mittleren Absolutwert größer als 100 hat. Verwende dafürnumpy-Funktionenabs()undmean().
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
def load_wav(filename):
# Load in the audio data
sampling_freq, audio = ____
# Add the filename, audio data, and sampling frequency to the dictionary
data_dict = {
'filename': ____,
'audio': ____,
'sample_frequency': ____,
}
return data_dict
def not_silent(data_dict):
# Check if the audio data is silent
return ____