Saltar al contenido

Python: escribe un archivo wav en numpy float array

No olvides que en la informática un error casi siempere puede tener varias resoluciones, por lo tanto nosotros aquí enseñaremos la mejor y más eficiente.

Solución:

>>> from scipy.io.wavfile import read
>>> a = read("adios.wav")
>>> numpy.array(a[1],dtype=float)
array([ 128.,  128.,  128., ...,  128.,  128.,  128.])

por lo general, serían bytes que luego son enteros … aquí solo lo convertimos a tipo flotante

puede leer sobre leer aquí https://docs.scipy.org/doc/scipy/reference/tutorial/io.html#module-scipy.io.wavfile

Siete años después de que se hiciera la pregunta…

import wave
import numpy

# Read file to get buffer                                                                                               
ifile = wave.open("input.wav")
samples = ifile.getnframes()
audio = ifile.readframes(samples)

# Convert buffer to float32 using NumPy                                                                                 
audio_as_np_int16 = numpy.frombuffer(audio, dtype=numpy.int16)
audio_as_np_float32 = audio_as_np_int16.astype(numpy.float32)

# Normalise float32 array so that values are between -1.0 and +1.0                                                      
max_int16 = 2**15
audio_normalised = audio_as_np_float32 / max_int16

Utilizar librosa paquete y simplemente cargue el archivo wav a numpy array con:

y, sr = librosa.load(filename)

carga y decodifica el audio como una serie de tiempo y, representada como un punto flotante NumPy unidimensional array. La variable sr contiene la frecuencia de muestreo de y, es decir, el número de muestras por segundo de audio. Por defecto, todo el audio es mixed a mono y remuestreado a 22050 Hz en el momento de la carga. Este comportamiento se puede anular proporcionando argumentos adicionales a librosa.load().

Más información en la documentación de la biblioteca de Librosa

Te mostramos comentarios y puntuaciones

Si eres capaz, tienes la libertad de dejar una crónica acerca de qué le añadirías a este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *