Wie werden rohe PCM-Audiodaten ohne eine Audiobibliothek bearbeitet?

8

Ich bin daran interessiert, Teile einer PCM-WAV-Datei bis auf die Sample-Ebene genau zu extrahieren. Die meisten Audiomodule scheinen auf plattformspezifische Audiobibliotheken angewiesen zu sein. Ich möchte diese plattformübergreifende und Geschwindigkeit machen ist kein Problem, gibt es native Python-Audiomodule, die das tun können?

Wenn nicht, muss ich die PCM-Binärdatei interpretieren. Während ich sicher bin, dass ich die PCM-Spezifikationen ziemlich leicht ausgraben kann und rohe Formate einfach zu laufen sind, habe ich in Python noch nie mit binären Daten gearbeitet. Gibt es irgendwelche guten Quellen, die erklären, wie man das macht? Speziell in Bezug auf Audio wäre nur Icing.

    
Soviut 08.05.2009, 17:57
quelle

5 Antworten

6

Ich habe die Frage und die Antworten gelesen und fühle, dass ich etwas völlig Offensichtliches vermissen muss, weil niemand die folgenden zwei Module erwähnte:

  • audioop : manipuliere rohe Audiodaten
  • wave : Lese und schreibe WAV-Dateien

Vielleicht komme ich aus einem Paralleluniversum und Guidos Zeitmaschine ist eigentlich eine Raum-Zeit-Maschine:)

Wenn Sie Beispielcode benötigen, können Sie gerne fragen.

PS Unter der Annahme einer Abtastfrequenz von 48 kHz ist ein Videoframe bei 24 / 1.001 == 23.976023976 ... fps 2002 Audio-Samples lang, und bei 25 fps sind es 1920 Audio-Samples.

    
tzot 08.05.2009, 19:15
quelle
5

Ich habe nur einen PCM-Leser in C ++ und Java geschrieben, aber das Format selbst ist ziemlich einfach. Eine anständige Beschreibung finden Sie hier: Ссылка

Früher sollten Sie in der Lage sein, es einfach einzulesen (Binärdatei lesen, Ссылка ) ) und kümmere dich einfach um das resultierende Array. Sie müssen möglicherweise ein Bit-Shifting verwenden, um die Alignments richtig zu bekommen ( Ссылка ), aber abhängig davon, wie Du liest es ein, du brauchst es vielleicht nicht.

Alles in allem würde ich mich immer noch David nähern.

    
JaCraig 08.05.2009 18:28
quelle
1

Ist es wirklich wichtig, dass Ihre Lösung reines Python ist, oder würden Sie etwas akzeptieren, das mit nativen Audiobibliotheken auf verschiedenen Plattformen funktionieren kann (also effektiv plattformübergreifend)? Es gibt einige Beispiele für Letzteres in Ссылка

    
David Z 08.05.2009 18:11
quelle
1

Scheint wie eine Kombination aus offenem (..., "rb"), Strukturmodul und einigen anderen Details über das wav / riff-Dateiformat (wahrscheinlich eine bessere Referenz da draußen) werden die Aufgabe erledigen.

Nur neugierig, was beabsichtigen Sie mit den rohen Beispieldaten zu machen?

    
basszero 08.05.2009 18:20
quelle
0

Ich habe nachgesehen und das gefunden: Ссылка Es erfordert Numpy (und Matplotlib, wenn Sie es grafisch darstellen möchten)

%Vor%

Weitere Informationen finden Sie auf der Website des ursprünglichen Autors.

    
Ian Conway 28.07.2015 18:46
quelle

Tags und Links