Seite 1 von 1

command line tool für audioaufnahme

Verfasst: Samstag 21. Januar 2006, 14:18
von Gast
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

Verfasst: Samstag 21. Januar 2006, 14:38
von Mad-Marty
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.

Verfasst: Samstag 21. Januar 2006, 16:04
von modelnine
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.

Verfasst: Samstag 21. Januar 2006, 20:29
von Gast
Hi, "Snack" kann das:

http://www.speech.kth.se/snack/examples.html#minrec

Gruss, Seven