4.3 ENREGISTRER DES SONS

 

 

INTRODUCTION

 

Il est également possible d’utiliser le système sonore pour enregistrer et sauvegarder des sons. Il faut pour cela commencer par connecter une source sonore telle qu’un microphone ou un appareil de lecture audio à l’entrée de la carte son. Les ordinateurs portables disposent en général d’un microphone rudimentaire intégré.

CONCEPTS DE PROGRAMMATION: Fonctions bloquantes et non bloquantes

 

 

ENREGISTREUR DE SONS

 

Avant d’effectuer un enregistrement, il faut, pour préparer le système d’enregistrement, appeler la fonction openMonoRecorder() en spécifiant le taux d’échantillonnage en guise de premier paramètre. On peut ensuite démarrer l’enregistrement à l’aide de la fonction capture() qui est une fonction non bloquante retournant immédiatement. Pour terminer l’enregistrement, il faut appeler la fonction stopCapture(). Les échantillons ainsi enregistrés sont copiés dans une liste qu’il est possible de récupérer à l’aide de getCapturedSound(). Dans le programme suivant, on effectue un enregistrement de 5 secondes qui est ensuite rejoué immédiatement.

from soundsystem import *

openMonoRecorder(22050)
print("Recording...")
capture()
delay(5000)
stopCapture()
print("Stopped")
sound = getCapturedSound()

openMonoPlayer(sound, 22050)
play()
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

MEMENTO

 

Une commande telle que capture(), qui déclenche une action et retourne immédiatement est appelée « fonction non bloquante ». De telles fonctions permettent de contrôler depuis le programme des tâches de fond qui se déroulent indépendamment de l’exécution du programme principal. Cela permet par exemple de les interrompre en cours d’exécution.

 

 

REPRÉSENTATION SONORE DU SON ENREGISTRÉ

 

On s’intéresse très souvent à la représentation graphique du son enregistré. Vous devriez normalement déjà savoir comment réaliser cette représentation graphique à l’aide de GPanel.
Le graphique adjacent représente l’enregistrement des mots
"one two three for five six seven eight nine ten".

 

 


from soundsystem import *

openMonoRecorder(22050)
print("Recording...")
capture()
delay(5000)
stopCapture()
print("Stopped")
sound = getCapturedSound()
from gpanel import *
makeGPanel(0, len(sound), -33000, 33000)
for i in range(len(sound)):
    draw(i, sound[i])
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

 

MEMENTO

 

On peut utiliser la longueur de la liste des échantillons pour déterminer le nombre d’échantillons enregistrés. Pour dessiner la représentation graphique il suffit d’utiliser une structure for. Amusez-vous quelques minutes en représentant graphiquement différents enregistrements sonores et assurez-vous de bien comprendre ce que représente la courbe du son.

 

 

ENREGISTREMENT DE FICHIERS WAV

 

Il est également possible de sauver le son enregistré dans un fichier WAV à l’aide de la fonction writeWavFile().

from soundsystem import *

openMonoRecorder(22050)
print("Recording...")
capture()
delay(5000)
stopCapture()
print("Stopped")
sound = getCapturedSound()
writeWavFile(sound, "mysound.wav")
Sélectionner le code (Ctrl+C pour copier, Ctrl+V pour coller)

 

 

MEMENTO

 

Après avoir enregistré le son dans un fichier, il est possible de le rejouer à l’aide d’un programme Python ou de tout autre lecteur multimédia installé sur votre machine.

 

 

EXERCICES

 

1.


Enregistrer des mots individuels


2.


Arranger les mots précédemment enregistrés pour construire une phrase.


3*.


Développer un programme qui prend un numéro de téléphone en entrée, en tant que chaine de caractères, et utilise des enregistrements sonores des différents chiffres pour prononcer le numéro de téléphone lu en entrée.