In C verwende ich die Libsndfile-Bibliothek, um mir zu helfen, die Werte einer WAV-Datei zu lesen, damit ich ihnen einige Berechnungen danach machen kann. Obwohl, wenn ich die Ausgabe der Datei bekomme, bin ich mir nicht sicher, was diese Zahlen bedeuten. Warum sind die Zahlen in Millionen? Zuerst dachte ich, es wäre Hz, aber es ergab keinen Sinn in meinem Kopf. Die Informationen bezüglich der WAV-Datei können unten gesehen werden. Darunter verwende ich die Funktion sf_read_int(), um die Werte in den Speicher zu schreiben.Werte einer WAV-Datei
Was macht sf_read_int()? Dies wurde von der API-Dokumentation von libsndfile erhalten:
- die Datei schreiben Artikel Funktionen die Daten im Array schreiben, um auf die Datei von ptr zeigt. Der Parameter items muss ein ganzzahliges Produkt der Anzahl der Kanäle sein, sonst tritt ein Fehler auf.
entschied ich mich einige dieser großen Werte in einem Diagramm zu zeichnen, und es sieht sehr ähnlich, was die WAV-Datei sollte wie folgt aussehen (Wenn ich in Kühnheit importiert und gezoomt an einem bestimmten Ort würde ich das sehen). Beachten Sie, dass die angezeigten Werte nicht dieselben Werte in der Grafik sind. Ich habe die Werte zu einem beliebigen Zeitpunkt abgetastet. Also ich denke, die wirkliche Frage ist, warum sind diese Werte so groß (in Millionen)? Und was repräsentieren sie? (Sind sie Bytes?)
Welches Beispielformat enthält die Datei? Sie könnten Schwimmer sein? – cleblanc
Ich werde ehrlich zu dir sein, ich habe keine Ahnung, wie ich das überprüfen soll. Ich habe eine einfache MP3-Datei in eine WAV-Datei konvertiert und diese als Datei verwendet. Obwohl, wenn ich sf_read_float() versuche, meine Ausgabe alle Nullen ist. – VedhaR
http://soundfile.sapp.org/doc/WaveFormat/ – KevinDTimm