Sie durch die wave module
Die open()
Methode öffnet die Datei und readframes(n)
kehrt mit so tun können, müssen zu erhalten (maximal) n Frames von Audio als eine Folge von Bytes, genau was Audioop will.
Nehmen wir zum Beispiel an, Sie müssen die avg()
-Methode von audioop verwenden. Dies ist, wie Sie es tun könnte:
import wave
import audioop
wav = wave.open("piano2.wav")
print(audioop.avg(wav.readframes(wav.getnframes()), wav.getsampwidth()))
Ausgänge:
-2
Auch können Sie in der rewind()
Methode aus dem Wellenmodul interessiert. Es setzt die Leseposition zurück an den Anfang der WAV-Datei.
Wenn Sie durch Ihre WAV-Datei lesen, müssen zweimal Sie dieses schreiben kann:
wav = wave.open("piano2.wav")
print(audioop.avg(wav.readframes(wav.getnframes()), wav.getsampwidth()))
# if you don't call rewind, next readframes() call
# will return nothing and audioop will fail
wav.rewind()
print(audioop.max(wav.readframes(wav.getnframes()), wav.getsampwidth()))
Oder alternativ können Sie die Zeichenfolge Cache:
wav = wave.open("piano2.wav")
string_wav = wav.readframes(wav.getnframes())
print(audioop.avg(string_wav, wav.getsampwidth()))
# wav.rewind()
print(audioop.max(string_wav, wav.getsampwidth()))
Danke dafür, sehr gründlich! – Will