CommencerCommencez gratuitement

Trouver les horodatages

Nous savons que la fréquence d'échantillonnage de notre onde sonore est de 48 kHz, mais si ce n'était pas le cas ? Nous pourrions la retrouver en divisant la longueur du tableau de notre onde sonore par la durée de cette onde. Cependant, le module wave de Python propose mieux. Appeler getframerate() sur un objet wave renvoie la fréquence d'images (frame rate) de cet objet.

Nous pouvons ensuite utiliser la méthode linspace() de NumPy pour calculer l'horodatage de chaque entier dans notre tableau d'onde sonore. Cela nous aidera à visualiser notre onde plus tard.

La méthode linspace() prend les paramètres start, stop et num et renvoie num valeurs régulièrement espacées entre start et stop.

Dans notre cas, start sera zéro, stop sera la longueur du tableau de notre onde sonore divisée par la fréquence d'images (autrement dit, la durée de notre fichier audio), et num sera la longueur de notre tableau d'onde sonore.

Cet exercice fait partie du cours

<cours>Traitement du langage parlé en Python</cours>
Voir le cours

Instructions de l’exercice

  • Convertissez les octets de l'onde sonore en entiers.
  • Récupérez la fréquence d'images du fichier audio « good morning » avec getframerate().
  • Définissez stop comme la longueur de soundwave_gm divisée par la fréquence d'images.
  • Définissez num comme la longueur de soundwave_gm.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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])
Modifier et exécuter le code