Caricare dati wav
Per lavorare con dati non standard usando i Dask bag, dovrai scrivere molte funzioni personalizzate. In questo esercizio stai analizzando dati audio, quindi ti serve una funzione ad hoc per caricarli.
Alcune registrazioni audio non sono riuscite e risultano mute. I dati audio “normali” assomigliano a un’onda, in cui l’ampiezza assume valori positivi e negativi anche molto grandi. Perciò, per verificare se una registrazione è muta, puoi controllare se il clip audio ha ampiezze complessivamente molto piccole.
Il modulo scipy.io.wavfile è stato importato nell’ambiente come wavfile e numpy è stato importato come np.
Questo esercizio fa parte del corso
Programmazione parallela con Dask in Python
Istruzioni dell'esercizio
- All'interno della funzione
load_wav(), usawavfile.read()per caricare i dati audio e la frequenza di campionamento. - All'interno di
load_wav(), costruisci il dizionario da restituire. - All'interno della funzione
not_silent(), restituisci un booleano che indichi se l'array'audio'dentro il dizionario in input ha un valore assoluto medio maggiore di 100, usando le funzioniabs()emean()dinumpy.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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 ____