Comece agoraComece grátis

Encontrando os carimbos de tempo

Sabemos que a frequência da nossa onda sonora é 48 kHz, mas e se não soubéssemos? Poderíamos encontrá-la dividindo o comprimento do nosso array de onda sonora pela duração da nossa onda. No entanto, o módulo wave do Python tem uma forma melhor. Chamar getframerate() em um objeto wave retorna a taxa de quadros desse objeto.

Depois, podemos usar o método linspace() do NumPy para encontrar o carimbo de tempo de cada inteiro no nosso array de onda sonora. Isso vai ajudar você a visualizar a nossa onda sonora no futuro.

O método linspace() recebe os parâmetros start, stop e num e retorna num valores igualmente espaçados entre start e stop.

No nosso caso, start será zero, stop será o comprimento do nosso array de onda sonora dividido pela taxa de quadros (ou a duração do nosso arquivo de áudio) e num será o comprimento do nosso array de onda sonora.

Este exercicio faz parte do curso

Processamento de Linguagem Falada em Python

Ver curso

Instruções do exercicio

  • Converta os bytes da onda sonora em inteiros.
  • Obtenha a taxa de quadros do arquivo de áudio good morning usando getframerate().
  • Defina stop como o comprimento de soundwave_gm dividido pela taxa de quadros.
  • Defina num como o comprimento de soundwave_gm.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Read in sound wave and convert from bytes to integers
good_morning = wave.open('good_morning.wav', 'r')
signal_gm = good_morning.readframes(-1)
soundwave_gm = np.frombuffer(____, dtype='int16')

# Get the sound wave frame rate
framerate_gm = good_morning.____

# Find the sound wave timestamps
time_gm = np.linspace(start=0,
                      stop=____/____,
					  num=____)

# Print the first 10 timestamps
print(time_gm[:10])
Editar e Executar Código