WAVE Resampling und mehr

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bats
User
Beiträge: 11
Registriert: Dienstag 20. September 2011, 09:28

Hallo zusammen

Ich benutze OS X und möchte folgende vier Dinge mit einer gegebenen wav Datei machen:

1. Falls die Datei Stero ist diese in Mono umwandeln indem einfach nur ein Kanal benutzt wird und der andere verworfen wird.
2. Resampling
3. Die Datei verlangsamen, bzw. beschleunigen.
4. Auf eine andere Bitrate skalieren.

Für die Einzelschritte habe ich Lösungen aber das ganze ist langsam und schlecht wartbar weil ich verschiedene Tools benutzen muss.
Gibt es keine Python library oder auch Konsolenprogramm welches das alles in einem Schritt erledigt?

Die Schritte führe ich im moment so durch:

1. sox
2. afconvert
3. selbst gebastelted C Script
4. python wave

Vielen Dank!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich würde mir mal audacity angucken; k.A. ob das auf dem MAC läuft, könnte mir das aber gut vorstellen. Iirc kann das Ding auf Makros.

Oder soll es def. per Python-Script gehen?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Bats
User
Beiträge: 11
Registriert: Dienstag 20. September 2011, 09:28

Vielen Dank für deine Antwort! Aber ja, es muss ein Scritp sein, es wird in unsere Applikation integriert. Ich sehe gerade, dass sox ziemlich vieles kann. Ich werde es mal damit versuchen.
Bats
User
Beiträge: 11
Registriert: Dienstag 20. September 2011, 09:28

./sox in.wav -b 16 out.wav speed 1 rate 315000 remix 1

Ist zwar nicht Python, macht aber das was ich wollte.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Das kannst Du aber ja via `subprocess` aus Python aufrufen ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten