2017-07-13 2 views
2

Für ein Projekt dekodiere ich WAV-Dateien und verwende die Werte im Datenkanal. Ich benutze das Knotenpaket "node-wav". Von dem, was ich verstehe, sollten die Werte in den Tausenden sein, aber ich sehe Werte, die zwischen -1 und 1 skaliert werden. Wenn ich die tatsächlichen Werte will, muss ich den skalierten Wert mit einer Zahl multiplizieren?Wie werden WAV-Kanaldatenwerte skaliert?

Teil des Grundes, den ich frage, ist, dass ich immer noch nicht vollständig verstehe, wie WAV-Dateien die notwendigen Daten speichern.

Antwort

3

ich nicht genau wissen, wie node.js ist aber in der Regel Audiodaten werden in Float-Werten gespeichert, so dass es sinnvoll, sie zwischen -1 skaliert, um zu sehen macht und 1.

Was ich von der Website gezogen:

Datenformat

Daten werden immer als Float32Arrays zurückgegeben. Beim Lesen und Schreiben von 64-Bit-Float-WAV-Dateien werden Daten auf 32-Bit-Floats verkürzt.

Und endianness, wenn Sie es aus irgendeinem Grund brauchen:

Endianness

Dieses Modul nimmt eine Little-Endian-CPU, die für so ziemlich jeden Prozessor in diesen Tagen (insbesondere wahr ist Intel und ARM).

Wenn Sie es von der Fließkommazahl zur festen Ganzzahl skalieren möchten, würden Sie den Wert mit der Anzahl der Bits multiplizieren. Zum Beispiel, wenn Sie versuchen, in 16-Bit-Integer zu konvertieren; y = (2^15 - 1) * x, wobei x der Datenwert ist, y ist der skalierte Wert.

Verwandte Themen