J'ai eu la chance de traiter un signal pour une source sonore haute résolution il y a quelque temps. À ce moment-là, j'ai recherché diverses bibliothèques Python capables de lire le wav 24 bits, alors prenez-en note.
Il existe scipy.io.wavfile
comme bibliothèque pour lire wav en Python,
Cela ne prend en charge que wav avec le nombre de bits de quantification = {8,16,32,64,96,128}.
En d'autres termes, le wav 24 bits ne peut pas être lu.
La plupart des sources sonores haute résolution dans la rue sont de 24 bits, donc
C'est un problème, j'ai donc essayé de savoir comment lire le wav 24 bits.
(Je ne l'ai pas implémenté, donc je suis désolé si je fais une erreur n)
Cela devrait être bon si l'objet bytes
obtenu par readframes ()
est correctement converti et stocké dans numpy.ndarray.
Cependant, comme il est nécessaire de stocker une chaîne d'octets d'unité de 24 bits dans un type de 32 bits, le traitement de décompression semble être un peu gênant.
scikits.audiolab http://cournape.github.io/audiolab/ Un wrapper libsndfile relativement ancien. Vous pouvez lire et écrire en wav avec une notation de type MATLAB.
test_audiolab.py
from scikits.audiolab import wavread
data, fs, fmt = wavread(fn)
wavio https://github.com/WarrenWeckesser/wavio Une bibliothèque relativement nouvelle. (Il semble qu'il soit implémenté en interne en utilisant wave) Il est possible de lire et d'écrire en wav de n'importe quel nombre de bits de quantification / fs comprenant 24 bits.
test_wavio.py
import wavio
w = wavio.read(fn_in)
fs = w.rate
bit = 8 * w.sampwidth
data = w.data.T
data = data / float( 2**(bit-1) ) # -1.0 to 1.Normalisé à 0
--Compatible avec Python3 --Pure-python (pas de dépendance sur une lib externe)
--Seule wav est pris en charge
Personnellement, je pense que «wavio» est la solution optimale actuelle. Il a l'inconvénient de ne pouvoir être utilisé qu'avec wav, mais au pire il peut être converti avec sox ou ffmpeg.
Si vous ne voulez pas augmenter la dépendance à des bibliothèques non standard, implémentez-le doucement avec wave.
Recommended Posts