Ich möchte die von numpy gespeicherten Schallwellenformdaten in einer Datei speichern. Ich möchte jedoch nur Standardmodule verwenden, nicht scikits.audiolab.
In Wave_write-Klassendokumentation Die vierte Anzahl von Frames unter den von setparams übergebenen Parametern ist "Die Anzahl der Frames ändert sich, wenn Frames später geschrieben werden." Es heißt, aber das Setzen auf 0 hat nicht funktioniert.
So erstellen Sie eine Binärdatei, die die Wellenform darstellt, die an Schreibrahmen der Welle übergeben werden soll. Mit numpy.tostring () funktionierte es nicht, und nachdem es mit Array in 'h' konvertiert wurde, funktionierte tostring einwandfrei.
import numpy, wave, array
filename = "wave_file_name.wav"
# save wav file
buf = <Enthält numpy Wellenformdaten>
w = wave.Wave_write(filename)
w.setparams((
1, # channel
2, # byte width
16000, # sampling rate
len(buf), # number of frames
"NONE", "not compressed" # no compression
))
w.writeframes(array.array('h', buf).tostring())
w.close()