Muitas repetições de sons
Neste exercício, você vai começar com talvez a técnica de classificação mais simples: fazer a média ao longo das dimensões de um conjunto de dados e inspecionar o resultado visualmente.
Você usará os dados de batimentos cardíacos descritos no último capítulo. Algumas gravações são de atividade cardíaca normal, enquanto outras são de atividade anormal. Vamos ver se você consegue perceber a diferença.
Dois DataFrames, normal e abnormal, cada um com formato (n_times_points, n_audio_files) contendo o áudio de vários batimentos cardíacos, estão disponíveis no seu ambiente. Além disso, a frequência de amostragem foi carregada em uma variável chamada sfreq. Uma função prática de plotagem show_plot_and_make_titles() também está disponível no seu ambiente.
Este exercício faz parte do curso
Machine Learning para dados de séries temporais em Python
Instruções do exercício
- Primeiro, crie o array de tempo para esses arquivos de áudio (todos têm o mesmo comprimento).
- Em seguida, empilhe os valores dos dois DataFrames juntos (
normaleabnormal, nessa ordem) para obter um único array com formato(n_audio_files, n_times_points). - Por fim, use o código fornecido para iterar por cada item da lista/eixo e plotar o áudio ao longo do tempo no objeto de eixo correspondente.
- Você vai plotar batimentos normais na coluna da esquerda e os anormais na coluna da direita
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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()