Hangrögzítés mikrofonról arecurd segítségével

Fórumok

Kerestem a Googleval sok a találat át is néztem rengeteget de nekem sajnos nem múködött egyik sem.

Operációs rendszer: Debian Wheezy
A mikrofon analóg, (nem USB) az alaplapi hangkártya mikrofon bemenetébe van dugva
A mikrofon maga működik, a hangszóróban hallható a belemondott szöveg
A rögzített file viszont teljesen üres, csak csönd van benne.
Amkkel próbálkoztam:

arecord -d 10 test.wav
arecord -d 10 -D hw:0,0
arecord -d 10 -D hw:0,0,1
erre: (az erőforrás foglalt)

A végső cél az lenne, hogy egy távoli gépre az itt bemondott szöveget átjuttassam SSH-n.

Köszönöm előre is a segítséget, útbaigazítást!

Péter.

Hozzászólások

Biztos, hogy ssh tunneling kell neked? Seren:

http://hup.hu/node/134497&comments_per_page=9999

Gondolatébresztő:

PULSE_PROP=filter.want=echo-cancel pacat -r | PULSE_PROP=filter.want=echo-cancel pacat -p --latency-msec=100

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Sajnos, a Gondolatébresztőt nem igazán értem.
Userként, vagy rootként kell kiadni ?
És mit csinál ?
Kérlek kissé bővebben magyarázzad el !

Nem a két gép összeköttetése a lényeg, nekem, hanem az, hogy a kimeneten (a test.wav ban) süket csönd van, miközben hallom a mikrofonba mondott szöveget.

P.

Akkor mondom. Egyfelől pulseaudio, amelyet ugyan divat szidni a systemd-vel együtt, elvégre magától a Sátántól származnak ezek, aki nem más, mint Lennart Poettering. :) Ugyanakkor nálam Fedorán mind a systemd, mind a pulseaudio hajlamos működni.

A PULSE_PROP=filter.want=echo-cancel környezeti változó értékadás annak a kliensnek, amely pulseaudio-t fog használni, azt eredményezi, hogy el lesz nyomva a visszhang. Erre nincs szükséged, csak azért mutattam meg, mert jól jöhet adott esetben, ha látsz rá példát, valamint a példámban a mikrofont visszahurkoltam a hangszóróra, ami viszont csúnyán összegerjed, ha nincs visszhangelnyomás.

A pacat -r a mikrofon felől csinál felvételt, s a példában ezt stdout-ra küldené, de pipe fifo lesz belőle. :) Ezt pipe-olom a lejátszáshoz, ami a pacat -p parancs, előtte a visszhangelnyomás környezeti változója átadva neki, utána pedig egy paraméter, hogy kis buffert használjon, mert több másodperces késést nyilván a visszhang elnyomó algoritmus már nem visszhangnak, hanem önálló, független hanganyagnak fog gondolni.

Lehet így felvételt készíteni:

pacat -r --channels=1 --file-format=wav valami.wav

Lejátszani meg így:

pacat -p --file-format valami.wav

Természetesen userként, semmi sem indokolja a root jog használatát. Lejátszásnál a --file-format után nem kell megadni a formátumot, hiszen a wav header tartalmazza. Ezzel a kapcsolóval csak azt jelzem, hogy nem raw data, hanem keretezett hangfile, amelynek a fejlécében van leírva, mit kell lejátszani, s hogyan.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Na, akkor legyél kedves indítani mixert, és iziben megszüntetni a mikrofonról a mute-ot, a nulla erősítést, mit tudom én. Ezt már más is írta.

Az ne zavarjon meg, hogy a hangszóróban hallod a hangot, mert a hangkártyákban van egy hardware-es jelút, ahol vissza lehet hurkolni a bemeneti jelet a kimenetre, de ettől a bemeneted az A/D konverterig, vagy akár azt követően lehet tiltva. Mellesleg épp ezt a félrevezető loopback-et kellene tiltani. Ajánlott eszközök:

pavucontrol

Ha nincs, telepítsd fel. Illetve:

alsamixer -c0

A szolgai módon másolásból pedig nem tanulsz, olvasd a parancsok dokumentációit is:

man pacat
man alsamixer
man oggenc
man ogg123

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Csak azért írtam, hogy szolgai módón jelezzem pontosan azt tetem,amit javasoltál.
A pavucontrol, alsamixer már fel van telepítve
Az alsamixernél F4 után a capture eszközök láthatóak, megjelenik a Mic, de a hangerö csúszkája nem.
Grafikus felületen nem jelenik meg a mic felvétel, csak a master...
Talán hiányoznak további csomagok?
Nagyon köszönöm az eddigi segítséget is !

Aztán, ha spórolnál a filemérettel, lehet például így is:

pacat -r --channels=1 --raw | oggenc -r -C 1 - >valami.ogg

A lejátszás pedig:

ogg123 valami.ogg

Vagy audacious, vagy vlc, vagy bármi. :)

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ugyan nem említettem, de a példákat, amiket írtam neked, azokat ki is próbáltam, természetesen működnek.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE