mam ten kod:Zapisywanie pliku wav w Pythonie z wavfile.write od 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)
Drukuje (obcięty):
[[-2524 2728]
[ -423 -2270]
[ 2270 423]
...,
[-2524 0]
[ 2524 -2728]
[-2270 838]]
Plik wav otwiera się i odtwarza w programie Windows Media Player więc przynajmniej jego właściwy format. Jednak po otwarciu z Audacity i przejrzeniu poszczególnych próbek, wszystkie mają wartość 0, a plik nie odtwarza w ogóle żadnego dźwięku.
To, czego nie rozumiem, to to, jak powyższa tablica numpy jest wymieniona powyżej. Powinien być poniżej maksymalnej wartości dla próbki (lub powyżej, jeśli jest ujemny).
co się stanie, jeśli załadujesz go ponownie scipy? to są zera lub zapisane wartości? –
Powraca to samo, co wydrukowano przed zapisaniem. – JVE999
Czy możesz dodać instrukcję 'print data' po linii' rate, data = scipy.io.wavfile.read ('xenencounter_23.wav') '. Chcę zobaczyć, jak wyglądają te dane. –