Ich versuche, eine WAV-Datei zu lesen, und manipuliere dann deren Inhalt, Beispiel für Beispiel
Folgendes habe ich bisher:
%Vor%Das Ergebnis ist:
%Vor%usw.
Es liest richtig, denn wenn ich print data[i]
schreibe, bekomme ich normalerweise Arrays ungleich Null von der Größe 2.
Das von data
zurückgegebene Array wavfile.read
ist ein numpy Array mit einem ganzen -Datentyp. Der Datentyp eines numpy Arrays kann nicht vor Ort geändert werden, daher diese Zeile:
wandelt das Ergebnis von math.sin
in eine ganze Zahl um, die immer 0 ist.
Erstellen Sie anstelle dieser Zeile ein neues Fließkomma-Array, um Ihr berechnetes Ergebnis zu speichern.
Oder verwenden Sie numpy.sin
, um den Sinus aller Elemente im Array auf einmal zu berechnen:
Aus Ihren zusätzlichen Kommentaren scheint hervorzugehen, dass Sie den Sinus jedes Werts verwenden und das Ergebnis als neue WAV-Datei ausgeben möchten.
Hier ist ein Beispiel, das (denke ich) macht, was Sie wollen. Ich verwende die Datei 'M1F1-int16-AFsp.wav' von hier: Ссылка . Die Funktion show_info
ist nur eine bequeme Möglichkeit, die Ergebnisse jedes Schrittes zu veranschaulichen. Wenn Sie eine interaktive Shell verwenden, können Sie damit die Variablen und ihre Attribute überprüfen.
Hier ist die Ausgabe. (Die erste Warnung bedeutet, dass sich in der Datei möglicherweise Metadaten befinden, die von scipy.io.wavfile.read
nicht verstanden werden.)
Die neue Datei 'newname.wav' enthält zwei Kanäle mit vorzeichenbehafteten 16-Bit-Werten.