WAV-data laden
Om met niet-standaard gegevens te werken met Dask bags, moet je veel functies zelf schrijven. In deze taak analyseer je audiogegevens, dus heb je een eigen functie nodig om ze te laden.
Sommige geluidsopnamen zijn mislukt en bevatten stilte. Normale audiogegevens zien eruit als een golf, waarbij de amplitude naar grote positieve en negatieve waarden gaat. Om te controleren of een opname stil is, kun je daarom nagaan of het fragment over het geheel genomen heel kleine amplitudes heeft.
De module scipy.io.wavfile is in je omgeving geïmporteerd als wavfile, en numpy als np.
Deze oefening maakt deel uit van de cursus
Parallel programmeren met Dask in Python
Oefeninstructies
- Gebruik binnen de functie
load_wav()wavfile.read()om de audiogegevens en bemonsteringsfrequentie te laden. - Stel binnen
load_wav()de geretourneerde dictionary samen. - Laat in de functie
not_silent()een boolean teruggeven of de'audio'-array in de invoer-dictionary een gemiddelde absolute waarde groter dan 100 heeft, metnumpy’sabs()- enmean()-functies.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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 ____