módulos de Python diferentes para leer wav:
hay al menos estas bibliotecas siguientes para leer el archivo de audio de onda:
El ejemplo más sencillo:
Este es un simple ejemplo con Pysoundfile:
import soundfile as sf
data, samplerate = sf.read('existing_file.wav')
formato de la salida:
advertencia, los datos no siempre están en el mismo formato, que depende de la biblioteca. Por ejemplo:
from scikits import audiolab
from scipy.io import wavfile
from sys import argv
for filetest in argv[1:]:
[x, fs, nbBits] = audiolab.wavread(filePath)
print '\nReading with scikits.audiolab.wavread: ', x
[fs, x] = wavfile.read(filetest)
print '\nReading with scipy.io.wavfile.read: ', x
lectura con scikits.audiolab.wavread: [0. 0. 0. ..., -0.00097656 -0.00079346 -0.00097656] lectura con scipy.io.wavfile.read: [0 0 0 ..., -32 -26 -32]
PySoundFile y Audiolab devuelven flotación entre -1 y 1 (como lo hace matab, esa es la convención para la señal de audio). Los enteros Scipy y wave return, que se pueden convertir en float según el número de bits de codificación.
Por ejemplo:
from scipy.io.wavfile import read as wavread
[samplerate, x] = wavread(audiofilename) # x is a numpy array of integer, representing the samples
# scale to -1.0 -- 1.0
if x.dtype == 'int16':
nb_bits = 16 # -> 16-bit wav files
elif x.dtype == 'int32':
nb_bits = 32 # -> 32-bit wav files
max_nb_bit = float(2 ** (nb_bits - 1))
samples = x/(max_nb_bit + 1.0) # samples is a numpy array of float representing the samples
Es realmente confuso cuando alguien más con mi nombre publica una pregunta que estoy preguntando, pero no recuerdo haberlo hecho :) – Roman
¿Qué demonios son los números hexagonales? – glglgl
@glglgl Probablemente no era lo que se quería decir: https://en.wikipedia.org/wiki/Hexagonal_number :-) – JakeD