command line tool für audioaufnahme

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
Gast

Samstag 21. Januar 2006, 14:18

Hallo zusammen,

kann ich Python für folgende Zwecke nutzen?

Ich möchte über ein command line tool Audiosignale (Mikrofon) aufnehmen. Vorgestellt habe ich mir das wie folgt:

pythonrecord.exe start 44,1 16 2 // soll die Aufnahme mit 44,1 kHz, 16 bit, stereo starten

pythonrecord.exe stop // stoppen der aufnahme

pythonrecord.exe save my_folder my_file.wav // soll die Aufnahme mit einer Bezeichnung versehen und im gewünschten Verzeichnis speichern

Bitte teilt mir freundlicherweise mit, ob das mit Python grundsätzlich möglich wäre.

Beste Wünsche

Gast
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Samstag 21. Januar 2006, 14:38

Ich bin da zwar nicht so der profi, aber ich würde sagen nein ;)

Jedenfalls nicht so einfach.

Warum willst du 2 commandaufrufe machen ?


Ich würde ein programm mit tasten dafür machen, also start / stop taste.


Auch glaub ich, das man den recorder als eine art server schreiben müsste um das mit dem "record stop, record start" tun zu können.

EDIT: also unter windows wirds schwierig, unter *nix könnt ich mir vorstellen das der programmstart in den hintergrund gelegt wird ...

Aber: Prinzipiell geht alles irgendwie ... :)


Eventuell hilft es ja wenn du dein Ziel genauer beschreibst,
wenn es nur um ein "Aufnahmetool" geht, würd ich wie gesagt Tasten zur Steuerung wählen.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Samstag 21. Januar 2006, 16:04

Also, theoretisch ist das kein Problem, unter Unix eigentlich praktisch auch nicht, da Du im Endeffekt einen Prozess schreibst der das Modul ossaudiodev zum Beispiel benutzt um aufzunehmen, sich vorher aber per fork() selbständig gemacht hat, und einen Unix-Domain-Socket offen hält über den die Kommunikation mit ihm vom Aufnahmeclient passiert.

Folgende Dinge willst Du nachgucken, falls das was für Dich ist:

1. ossaudiodev in der Python-Doku, Global Module Index
2. Daemonize im Cookbook. Da ist ein gutes Rezept wie man einen Prozess dämonisieren, also in den Hintergrund bringen kann (DAEMON hat nix mit Dämon zu tun, auch wenn's im Deutschen häufig so geschrieben wird, sondern heißt Disk And Execution MONitor)
3. sockets in der Python-Doku, im besonderen zu Unix-Domain-Sockets vielleicht auch noch mal irgendwo eine Webseite
4. cPickle in der Python-Doku um zwischen Client und Server zu kommunizieren über den Socket
und 5. threads in der Python-Doku, wobei Du das Programm so strukturieren solltest dass Du einen Aufnahme-Thread hast, und einen Socket-Thread, der sich darum kümmert den Aufnahmethread zu starten und zu stoppen.

Das fertige Programm dürfte um die 600 Zeilen haben, das ist eine größe die ich bestimmt nicht als Beispiel schreibe. ;-)

--- Heiko.
Antworten