CommencerCommencer gratuitement

Trouver les repères temporels

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

Nous pouvons ensuite utiliser la méthode linspace() de NumPy pour calculer le repère temporel (time stamp) de chaque entier de notre tableau d’onde sonore. Cela nous aidera à visualiser notre onde par la suite.

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 vaudra zéro, stop sera la longueur de notre tableau d’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

Traitement du langage parlé en Python

Afficher le cours

Instructions

  • 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 cet exemple de code.

# 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