Sound aufnehmen?

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.
Janux
User
Beiträge: 78
Registriert: Donnerstag 12. Juni 2008, 21:11

Mittwoch 24. September 2008, 20:38

Hallo!
Wie kann ich mit Python (und Windows) Sound von einem Mikrofon aufnehmen?
Janux
User
Beiträge: 78
Registriert: Donnerstag 12. Juni 2008, 21:11

Mittwoch 24. September 2008, 20:52

Damit funktioniert es hoffentlich auch bei mir....

http://twistedmatrix.com/pipermail/twis ... 09136.html
und
http://pymedia.org/tut/index.html

EDIT: Download von pymedia für Python 2.5 hier ....
http://indashpc.org/vbullettin/viewtopic.php?t=778
Zuletzt geändert von Janux am Donnerstag 25. September 2008, 10:29, insgesamt 1-mal geändert.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Mittwoch 24. September 2008, 22:00

Janux hat geschrieben:Wie kann ich mit Python (und Windows) Sound von einem Mikrofon aufnehmen?
Hallo Janux!

http://www.python-forum.de/topic-15035.html

mfg
Gerold
:-)
[url]http://halvar.at[/url] | [url=http://halvar.at/elektronik/kleiner_bascom_avr_kurs/]Kleiner Bascom AVR Kurs[/url]
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Janux
User
Beiträge: 78
Registriert: Donnerstag 12. Juni 2008, 21:11

Donnerstag 25. September 2008, 07:28

gerold hat geschrieben:
Janux hat geschrieben:Wie kann ich mit Python (und Windows) Sound von einem Mikrofon aufnehmen?
Hallo Janux!

http://www.python-forum.de/topic-15035.html

mfg
Gerold
:-)
sorry, habs mit google nicht gefunden
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 25. September 2008, 09:43

Hi Janux,

ich mache das mit Snack.
http://www.speech.kth.se/snack/

Hat viele nützliche Funktionen:
http://www.speech.kth.se/snack/man/snac ... n-man.html

Gruß,
Seven
Janux
User
Beiträge: 78
Registriert: Donnerstag 12. Juni 2008, 21:11

Donnerstag 25. September 2008, 10:22

snakeseven hat geschrieben:Hi Janux,

ich mache das mit Snack.
http://www.speech.kth.se/snack/

Hat viele nützliche Funktionen:
http://www.speech.kth.se/snack/man/snac ... n-man.html

Gruß,
Seven
Danke für den Tipp!
mfg ... Janux
Janux
User
Beiträge: 78
Registriert: Donnerstag 12. Juni 2008, 21:11

Donnerstag 25. September 2008, 12:28

snakeseven hat geschrieben:Hi Janux,

ich mache das mit Snack.
http://www.speech.kth.se/snack/

Hat viele nützliche Funktionen:
http://www.speech.kth.se/snack/man/snac ... n-man.html

Gruß,
Seven
Kannst du mir bitte sagen, wie ich bei Sounds vorne und hinten das
Lautlose abschneiden kann? (wie 'strip()' bei Strings..)
mfg ... Janux
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 25. September 2008, 12:54

Hi Janux,
die Funktion heißt bei Snack

Code: Alles auswählen

Sound.crop(start,end)
Autotrimmen kann crop aber nicht. Das kann dafür Sox:
http://sox.sourceforge.net/

Autotrimmen mit Sox:

Code: Alles auswählen

args = ''.join(('C:/Ablage/sox12181/sox -q ', QUELLDATEI.WAV ZIELDATEI.WAV ', 'highpass ',FILTERVALUE,' silence 1 0 ',THRESHOLD-START,' d fade l 200s reverse silence 1 0 ',THRESHOLD-END,' d fade t 2000s reverse'))

proz = subprocess.Popen(args,shell=True); proz.wait()
FILTERVALUE: Hier kann man einen Hochpassfilterwert (HZ) eingeben (tiefe Frequenzen werden gefiltert)
THRESHOLD-START / THRESHOLD-END (ms): Es wird vor dem Abschneiden vor und hinter dem Nutzsignal eine Blende gesetzt

Alle Parameter sind durch ein Leerzeichen voneinander getrennt.
Gruß, Seven
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Donnerstag 25. September 2008, 15:12

@snakeseven: Man sollte `subprocess.Popen()` eine Liste mit Argumenten übergeben und nicht die Argumente händisch zusammenbasteln und auf das ``shell=True`` sollte auch verzichtet werden.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 25. September 2008, 19:47

Hi Trundle,
ja das mit der Liste ist auf jeden Fall besser. Ist halt ein älterer Code von mir, wo ichs noch nicht besser wußte :oops: Schaden richtet es so aber nicht an.

Gruß, Seven
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 25. September 2008, 20:12

snakeseven hat geschrieben:Schaden richtet es so aber nicht an.
So gesehen eigentlich schon, da er 1) unsicher 2) komplizierter als nötig ist. Also bei einem Review würde das nicht durchkommen und jemandem das als Tipp geben sollte man eigentlich auch nicht. Nichts gegen dich, aber so sollte man es einfach nicht machen. Das wird sonst genauso problematisch wie Stern-Importe.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lunar

Donnerstag 25. September 2008, 20:17

snakeseven hat geschrieben:Schaden richtet es so aber nicht an.
Wenn "shell=True" falsch eingesetzt wird, richtet es mitunter riesigen Schaden an. Ich denke da an einen Webserver, der Nutzereingaben an ein Subprozess weitergibt ... wenn da nicht penibel maskiert wird, kann ein Angreifer mitunter beliebige Prozesse auf dem Webserver starten.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 25. September 2008, 21:54

Ja, bei solch heiklen Angelegenheiten wie einem Webserver kann man nicht vorsichtig genug sein. Aber die Variante ohne Liste in einem kleinen Standalone Script tut eher weniger weh. Ich habe diese Variante jedenfalls über Jahre so eingesetzt, weil ich es nicht besser wußte und es gab keine Probleme.

Dennoch sehe ich ein, dass genaues Hinschauen in einem Forum wie diesem sehr sinnvoll ist, denn viele hier sind Anfänger, oder noch nicht so weit fortgeschritten. Und auslernen tut man schließlich nie.

Die Frage die ich mir stelle ist nur, soll man darauf verzichten jemandem zu helfen, nur weil man ein suboptimales Codebeispiel hat ?

Grüße, Seven
lunar

Donnerstag 25. September 2008, 22:29

snakeseven hat geschrieben:Ja, bei solch heiklen Angelegenheiten wie einem Webserver kann man nicht vorsichtig genug sein. Aber die Variante ohne Liste in einem kleinen Standalone Script tut eher weniger weh. Ich habe diese Variante jedenfalls über Jahre so eingesetzt, weil ich es nicht besser wußte und es gab keine Probleme.
Es kann auch bei kleinen Standalone-Scripten kann es Probleme geben, z.B. mit Eingaben, die Sonderzeichen der Shell enthalten. Das ist zwar nicht unbedingt ein Sicherheitsproblem, aber das Skript funktioniert halt nicht.
Die Frage die ich mir stelle ist nur, soll man darauf verzichten jemandem zu helfen, nur weil man ein suboptimales Codebeispiel hat ?
Nö, wenn es nicht optimal ist, kommt sicher jemand, und korrigiert ist ;)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 25. September 2008, 23:01

lunar hat geschrieben:Nö, wenn es nicht optimal ist, kommt sicher jemand, und korrigiert ist ;)
Was ja hiermit geschehen ist (und statt dem "ist" gehört da ein "es" hin und damit sind wir für die "Weißheit" von letztens quitt :D - SCNR).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten