CommencezCommencez gratuitement

Trouver les estampilles temporelles

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 trouver en divisant la longueur de notre tableau d'onde sonore par la durée de notre onde. Toutefois, le module wave de Python offre mieux. L'appel de getframerate() sur un objet wave retourne la fréquence d'images de cet objet.

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

La méthode linspace() prend les paramètres start, stop et num, et retourne num valeurs également espacées entre start et stop.

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

Cette activité fait partie du cours

Traitement de la langue parlée en Python

Voir le cours

Instructions de l’exercice

  • Convertissez les octets de l'onde sonore en entiers.
  • Obtenez la fréquence d'images du fichier audio good morning à l'aide de 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