Datos devueltos por scipy.io.wavfile.read

Estoy tratando de obtener los datos de un archivo wav en Python y trazarlos. Cuando uso scipy.io.wavfile.read (), recupero una matriz que se parece a esto:

[[ -1.49836736e-02 -1.27559584e-02] [ -1.84625713e-02 -1.63264061e-02] [ -2.17888858e-02 -1.95001373e-02] ..., [ 6.10332937e-05 6.10332937e-05] [ -3.05166468e-05 0.00000000e+00] [ 3.05166468e-05 -6.10332937e-05]] 

¿Por qué es un conjunto de matrices con longitud 2 en lugar de una matriz larga con el valor en cada muestra? ¿Qué representan los datos que se devuelven? Gracias por adelantado.

 convert_16_bit = float(2**15) sr, samples = scipy.io.wavfile.read('singingonenote.wav') x = np.linspace(0, 2000, 0.01) samples = samples / (convert_16_bit + 1.0) y = samples print samples plt.plot(x, y) plt.show() 

El archivo que estás leyendo parece ser un archivo estéreo. Estos contienen datos bidimensionales: una pista para la izquierda y otra para el altavoz derecho.

El concepto general se explica aquí: https://en.wikipedia.org/wiki/Stereophonic_sound

Si desea seleccionar solo el canal de audio izquierdo de su secuencia de datos bidimensionales, puede seleccionarlo como

 y = samples[:,0] 

Para seleccionar el canal correcto, reemplace el 0 con un 1.

Como alternativa, asegúrese de que el progtwig que utiliza para generar el archivo guarde los archivos de onda mono en primer lugar. Dependiendo de lo que esté intentando hacer, este podría ser el error real.