ho questo codice:Scrittura del file wav in Python con wavfile.write da SciPy
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)
Questo stampa (troncato):
[[-2524 2728]
[ -423 -2270]
[ 2270 423]
...,
[-2524 0]
[ 2524 -2728]
[-2270 838]]
Il file wav si apre e si svolge in Windows Media Player, quindi almeno è il formato corretto. Tuttavia, aprendolo con Audacity e osservando i singoli campioni, sono tutti 0 e, in modo concorde, il file non emette alcun suono.
Quello che non capisco è come quella matrice numpy sopra elencata diventa tutti 0. Dovrebbe essere inferiore al valore massimo per un campione (o superiore, se è negativo).
cosa succede se lo ricarichi con scipy? sono zeri o i valori che hai salvato? –
Restituisce la stessa cosa stampata prima della scrittura. – JVE999
È possibile aggiungere un'istruzione 'print data' dopo la riga' rate, data = scipy.io.wavfile.read ('xenencounter_23.wav') '. Voglio vedere come sono fatti questi dati. –