L'écriture d'un fichier wav en Python avec wavfile.écrire à partir de SciPy

J'ai ce code:

import numpy as np
import scipy.io.wavfile
import math

rate, data = scipy.io.wavfile.read('xenencounter_23.wav')

data2 = []

for i in range(len(data)):
    data2.append([int(round(math.sin(data[i][0])*3000)), int(round(math.sin(data[i][1])*3000))])

data2 = np.asarray(data2)

print data2

scipy.io.wavfile.write('xenencounter_23sin3.wav',rate,data2)

Cette affiche (tronquée):

[[-2524  2728]
 [ -423 -2270]
 [ 2270   423]
 ..., 
 [-2524     0]
 [ 2524 -2728]
 [-2270   838]]

Le wav fichier s'ouvre et joue dans Windows Media Player, donc au moins, le bon format. Cependant, lors de l'ouverture avec de l'Audace et de la recherche dans les échantillons individuels, ils sont tous à 0, et de façon concordante le fichier joue pas de son du tout.

Ce que je ne comprends pas comment est ce que un tableau numpy énumérés ci-dessus devient 0. Il devrait être inférieur à la valeur maximale pour un échantillon (ou ci-dessus, si elle est négative).

qu'advient-il si vous le recharger avec scipy? est-il de zéros ou les valeurs que vous avez enregistré?
Il retourne la même chose que de l'imprimer avant de les écrire.
Pouvez-vous ajouter un print data déclaration après la ligne rate, data = scipy.io.wavfile.read('xenencounter_23.wav'). Je veux voir ce que l'apparence des données.
Il imprime cette [[-1 2] [-3 4] [-4 3] ..., [-1 0] [ 1 -2] [ 4 -6]] Cependant, dans une autre partie du tableau, il énumère: [-2050 -1856] [-1814 -1621] [-1493 -1295] [-2042 -1848], de manière assez similaire
essayez scipy.io.wavfile.write('xenencounter_23sin3.wav',rate,data) - vous voulez savoir si la méthode d'écriture ou de l'opération que vous faites sur les données est le problème.

OriginalL'auteur JVE999 | 2013-09-05