Charger des données wav
Pour travailler avec des données non standard avec des Dask bags, vous devrez écrire vous-même de nombreuses fonctions. Dans cette tâche, vous analysez des données audio et avez donc besoin d’une fonction personnalisée pour les charger.
Certaines des prises audio ont échoué, et l’enregistrement est silencieux dans ces cas. Des données audio normales ressemblent à une onde, où l’amplitude prend de grandes valeurs positives et négatives. Ainsi, pour vérifier si un enregistrement est silencieux, vous pouvez contrôler si le clip audio a des amplitudes globalement très faibles.
Le module scipy.io.wavfile a été importé dans votre environnement sous le nom wavfile, et numpy a été importé sous le nom np.
Cet exercice fait partie du cours
Programmation parallèle avec Dask en Python
Instructions
- Dans la fonction
load_wav(), utilisezwavfile.read()pour charger les données audio et la fréquence d’échantillonnage. - Dans
load_wav(), construisez le dictionnaire renvoyé. - Dans la fonction
not_silent(), retournez un booléen indiquant si le tableau'audio'contenu dans le dictionnaire d’entrée a une valeur absolue moyenne supérieure à 100, en utilisant les fonctionsabs()etmean()denumpy.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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 ____