Muchas repeticiones de sonidos
En este ejercicio, empezarás con la técnica de clasificación quizá más sencilla: promediar las dimensiones de un conjunto de datos e inspeccionar visualmente el resultado.
Utilizarás los datos del latido descritos en el último capítulo. Algunas grabaciones son de actividad normal de los latidos del corazón, mientras que otras son de actividad anormal. Veamos si puedes detectar la diferencia.
Dos DataFrames, normal
y abnormal
, cada uno con la forma de (n_times_points, n_audio_files)
que contienen el audio de varios latidos, están disponibles en tu espacio de trabajo. Además, la frecuencia de muestreo se carga en una variable llamada sfreq
. También dispones de una cómoda función de trazado show_plot_and_make_titles()
en tu espacio de trabajo.
Este ejercicio forma parte del curso
Machine learning para datos de series temporales en Python
Instrucciones de ejercicio
- Primero, crea la matriz de tiempo para estos archivos de audio (todos los audios tienen la misma duración).
- A continuación, apila los valores de los dos DataFrames (
normal
yabnormal
, en ese orden) de modo que tengas una única matriz de forma(n_audio_files, n_times_points)
. - Por último, utiliza el código proporcionado para recorrer cada elemento de la lista / eje, y traza el audio a lo largo del tiempo en el objeto eje correspondiente.
- Trazarás los latidos normales en la columna de la izquierda y los anormales en la de la derecha
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
fig, axs = plt.subplots(3, 2, figsize=(15, 7), sharex=True, sharey=True)
# Calculate the time array
time = np.arange(____) / ____
# Stack the normal/abnormal audio so you can loop and plot
stacked_audio = np.hstack([____, ____]).T
# Loop through each audio file / ax object and plot
# .T.ravel() transposes the array, then unravels it into a 1-D vector for looping
for iaudio, ax in zip(stacked_audio, axs.T.ravel()):
ax.plot(time, iaudio)
show_plot_and_make_titles()