Aan de slagGa gratis aan de slag

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

Cursus bekijken

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, met numpy’s abs()- en mean()-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 ____
Code bewerken en uitvoeren