21.5. wave
— Lecture et écriture des fichiers WAV¶
Code source : Lib/wave.py
Le module wave
fournit une interface pratique pour le format de son WAV. Il ne gère pas la compression ni la décompression, mais gère le mono et le stéréo.
Le module wave
définit la fonction et l’exception suivante :
-
wave.
open
(file[, mode])¶ If file is a string, open the file by that name, otherwise treat it as a seekable file-like object. mode can be any of
'r'
,'rb'
Mode lecture seule.
'w'
,'wb'
Mode écriture seule.
Notez que ce module ne permet pas de manipuler des fichiers WAV en lecture/écriture.
A mode of
'r'
or'rb'
returns aWave_read
object, while a mode of'w'
or'wb'
returns aWave_write
object. If mode is omitted and a file-like object is passed as file,file.mode
is used as the default value for mode (the'b'
flag is still added if necessary).Si vous donnez un objet de type fichier, l’objet wave ne le ferme pas lorsque sa méthode
close()
est appelée car c’est l’appelant qui est responsable de la fermeture.
-
exception
wave.
Error
¶ Une erreur est levée lorsque quelque chose est impossible car elle enfreint la spécification WAV ou rencontre un problème d’implémentation.
21.5.1. Objets Wave_read¶
Les objets Wave_read, tels qu’ils sont renvoyés par open()
, ont les méthodes suivantes :
-
Wave_read.
close
()¶ Ferme le flux s’il a été ouvert par
wave
et rend l’instance inutilisable. Ceci est appelé automatiquement lorsque l’objet est détruit .
-
Wave_read.
getnchannels
()¶ Renvoie le nombre de canaux audio (
1
pour mono,2
pour stéréo).
-
Wave_read.
getsampwidth
()¶ Renvoie la largeur de l’échantillon en octets.
-
Wave_read.
getframerate
()¶ Renvoie la fréquence d’échantillonnage.
-
Wave_read.
getnframes
()¶ Renvoie le nombre de trames audio.
-
Wave_read.
getcomptype
()¶ Renvoie le type de compression (
'NONE'
est le seul type géré).
-
Wave_read.
getcompname
()¶ Version compréhensible de
getcomptype()
. Généralement,'not compressed'
équivaut à'NONE'
.
-
Wave_read.
getparams
()¶ Returns a tuple
(nchannels, sampwidth, framerate, nframes, comptype, compname)
, equivalent to output of theget*()
methods.
-
Wave_read.
readframes
(n)¶ Reads and returns at most n frames of audio, as a string of bytes.
-
Wave_read.
rewind
()¶ Remet le pointeur de fichier au début du flux audio.
Les deux méthodes suivantes sont définies pour la compatibilité avec le module aifc
; elles ne font rien d’intéressant.
-
Wave_read.
getmarkers
()¶ Renvoie
None
.
-
Wave_read.
getmark
(id)¶ Lève une erreur.
Les deux fonctions suivantes utilisent le vocabulaire « position ». Ces positions sont compatible entre elles, la « position » de l’un est compatible avec la « position » de l’autre. Cette position est dépendante de l’implémentation.
-
Wave_read.
setpos
(pos)¶ Place le pointeur du fichier sur la position spécifiée.
-
Wave_read.
tell
()¶ Renvoie la position actuelle du pointeur du fichier.
21.5.2. Objets Wave_write¶
Les objets Wave_write, tels qu’ils sont renvoyés par open()
, ont les méthodes suivantes :
-
Wave_write.
close
()¶ Make sure nframes is correct, and close the file if it was opened by
wave
. This method is called upon object collection.
-
Wave_write.
setnchannels
(n)¶ Définit le nombre de canaux.
-
Wave_write.
setsampwidth
(n)¶ Définit la largeur de l’échantillon à n octets.
-
Wave_write.
setframerate
(n)¶ Définit la fréquence des trames à n.
-
Wave_write.
setnframes
(n)¶ Set the number of frames to n. This will be changed later if more frames are written.
-
Wave_write.
setcomptype
(type, name)¶ Définit le type de compression et la description. Pour le moment, seul le type de compression
NONE
est géré, c’est-à-dire aucune compression.
-
Wave_write.
setparams
(tuple)¶ Le tuple doit être
(nchannels, sampwidth, framerate, nframes, comptype, compname)
, avec des valeurs valides pour les méthodesset*()
. Tous les paramètres sont obligatoires et doivent être définis.
-
Wave_write.
tell
()¶ Renvoie la position actuelle dans le fichier, avec les mêmes réserves que pour les méthodes
Wave_read.tell()
etWave_read.setpos()
.
-
Wave_write.
writeframesraw
(data)¶ Écrit les trames audio sans corriger nframes.
-
Wave_write.
writeframes
(data)¶ Write audio frames and make sure nframes is correct.
Notez qu’il est impossible de définir des paramètres après avoir appelé writeframes()
ou writeframesraw()
, et toute tentative en ce sens lève une wave.Error
.