Sattuisiko joku tietämään mitään koodin pätkää
Linux:lle, jolla voisi yksinkertaisesti vain seurata mikrofonin äänenvoimakkuutta?
Linus:n puolella.
C, C tai vaikkapa Python tai perl kelpaisivat hyvin, jos niillä voi seurata äänen tasoa, siis mikrofonista tulevan input äänen tasoa.
Tai jos jollakin shell-skriptillä tms. asia onnistuu, niin kertokaappa!
Linux:lle, jolla voisi yksinkertaisesti vain seurata mikrofonin äänenvoimakkuutta?
Linus:n puolella.
C, C tai vaikkapa Python tai perl kelpaisivat hyvin, jos niillä voi seurata äänen tasoa, siis mikrofonista tulevan input äänen tasoa.
Tai jos jollakin shell-skriptillä tms. asia onnistuu, niin kertokaappa!
Vastaukset 3
Vanhimmat
Tässä saattaa olla jotain
http://www.oreilly.de/catalog/multilinux/excerpt/ch14-07.htm
Jokin tällainen ehkä.
. int vol;
. ioctl(fd, MIXER_READ(SOUND_MIXER_MIC), &vol);
. printf("Mic gain is at %d %%\n", vol);
En päässyt vielä kokeilemaan.
Jos joku tietää muita keinoja,
niin tieto kyllä kelpaa!
gcc filename.c
/tmp/cc6d3s6d.o:(.eh_frame 0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
En tutkinut mitä kaikkea tarvitaan,
jotta saisi kääntymään tai toiiko ollenkaan
näin helposti.
Olin kääntänyt .cpp-päätteisenä
(toisin kuin edellisessä viestissä laitoin esimerkiksi).
Nyt käänsin .c-päätteisenä,
eikä valittanut.
Mutta ei se kyllä näytä mikin äänenvoimakkuutta, siis tarkoitan, että kun mikkiin puhuu, niin näyttäisi isomman arvon. Mitä kovempi ääni, niin näyttäisi sitä isomman arvon.
Mixer Device Recording Active Stereo Current
Channel Available Source Source Device Level
7 Mic yes yes yes no 39%
Pitänee vielä tutkia.
En lukenut linkin materiaaliakaan vielä eteenpäin.
int vol;
ioctl(fd, MIXER_READ(SOUND_MIXER_MIC), &vol);
printf("Mic gain is at %d %%\n", vol);
Tulee koko ajan tällainen tulos:
Mic gain is at 10023 %