Задача: т.к. в моем ноутбуке Lenovo E555 присутствует микрофон – нужно организовать возможность активации его и прослушивания с функцией записи происходящего в радиусе действия.

На ноутбуке нажимаю клавишу F4 – чтобы включить микрофон, затем открываю настройки звука:

или же програмно нажимаю через консоль командной строки:

ekzorchik@navy:~$ sudo showkey --scancodes

[sudo] password for ekzorchik:

режим kb был RAW

[ если вы пытаетесь проделать это под X-ами, то, возможно,

это не сработает, так как X-сервер тоже читает /dev/console ]

нажмите любую клавишу (программа завершается через 10 секунд после последнего нажатия на клавиатуре)…

0x5a 0xda – вот мой код при нажатии клавиши на клавиатуре F4

^Cпойман сигнал 2, очистка…

Решение данной задачи будет освящено в одной из следующих заметок.

Ubuntu 12.04.5 Desktop amd64 (рабочее окружение: Gnome Classic)

Приложения – Системные утилиты – Параметры системы – Звук (Оборудование) – вкладка “Вход” в момент когда начинаю говорить/шуршать шкала “Уровень записи” начинает изменять свое значение.

Проверяю работоспособность микрофона в ноутбуке Lenovo ThinkPad E555

Информация по аудиосистеме:

ekzorchik@navy:~$ cat /proc/asound/cards

0 [Generic ]: HDA-Intel – HD-Audio Generic

HD-Audio Generic at 0xf0c40000 irq 45

1 [Generic_1 ]: HDA-Intel – HD-Audio Generic

HD-Audio Generic at 0xf0c44000 irq 16

29 [ThinkPadEC ]: ThinkPad EC – ThinkPad Console Audio Control

ThinkPad Console Audio Control at EC reg 0x30, fw unknown

ekzorchik@navy:~$ apt-cache search arecord

alsa-utils – Utilities for configuring and using ALSA

arecord, aplay – command-line sound recorder and player for ALSA sound‐

card driver

ekzorchik@navy:~$ arecord -l

**** Список CAPTURE устройств ****

карта 1: Generic_1 [HD-Audio Generic], устройство 0: CX20751/2 Analog [CX20751/2 Analog]

Подустройства: 0/1

Подустройство №0: subdevice #0

или же:

Ctrl + Alt + T → alsamixer, потом клавиша F2 и опускаемся до строки /proc/asound/pcm и нажимаем клавишу Enter

Информация по текущему оборудованию микрофона

Настраиваем чуствительно микрофона:

Ctrl + Alt + T → alsamixer – нажимаем клавишу F6, выбираю устройство (в моем случае оно под пунктом 1), дальше столбец с подписью PCM

Управляем чувствительностью микрофона

Помимо клавиш “вверх” и “вниз” – можно каждое значение изменять посредством клавиш “q” и “w”.

Чувствительность измеряется в дБ: → напряжение на выходе микрофона к звуковому давлению при заданной частоте (обычно 1000 Гц), выраженное в милливольтах на паскаль (мВ/Па). Чем больше данное значение, тем чувствительнее микрофон. Формула: дБ = 10*2*lg(V1/V0), где V0=1В/Па. Пример: 7мВ = 10*2*(lg7/1000) = -43дБ

ekzorchik@navy:~$ sudo apt-get install apcalc -y

расчет с помощью утилиты calc, или

Приложения – Стандартные – Калькулятор – Режим – Расширенный, формула выглядит следующим образом: 10×2×log (7÷1000) = -43дБ

Как рассчитывается чувствительность микрофона

Чем ближе значение к 0 (нулю; значение минус обычно не принимается в расчет и его опускают), тем выше чувствительность микрофона.

Записать звук (проговариваю все что угодно) подаваемый в микрофон продолжительность 15 секунд:

ekzorchik@navy:~/Documents$ arecord -d 15 test-mic.wav

Запись WAVE ‘test-mic.wav’ : Unsigned 8 bit, Частота 8000 Гц, Моно

ekzorchik@navy:~/Documents$ soxi test-mic.wav

Input File : ‘test-mic.wav’

Channels : 1

Sample Rate : 8000

Precision : 8-bit

Duration : 00:00:15.00 = 120000 samples ~ 1125 CDDA sectors

File Size : 120k

Bit Rate : 64.0k

Sample Encoding: 8-bit Unsigned Integer PCM

ekzorchik@navy:~/Documents$ file test-mic.wav

test-mic.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 8 bit, mono 8000 Hz

ekzorchik@navy:~/Documents$ dir -sh test-mic.wav

120K test-mic.wav – через утилиту soxi данный размер также выводится.

Открываю приложения для воспроизведения аудио и данный аудиофрагмент:

ekzorchik@navy:~/Documents$ mplayer test-mic.wav

или же так:

ekzorchik@navy:~/Documents$ aplay test-mic.wav

Воспроизведение WAVE ‘test-mic.wav’ : Unsigned 8 bit, Частота 8000 Гц, Моно

^CПрервано сигналом Прерывание…

Получаю, что произносимое аудио довольно таки неплохого качества на мой взгляд.

А если бы у меня в системе было бы несколько карт аудио то можно было ее задействовать при формировании аудио фрагмента:

ekzorchik@navy:~/Documents$ arecord hw=1,0 -d 15 test-audio.wav

ну как-то так, проверить к сожалению не могу. (под рукой нет второй карты, но как будет то обязательно рассмотрю и этот вариант).

Проверяю уже по другому, установив в системе пакет Audacity

ekzorchik@navy:~$ sudo apt-get install audacity -y

Запускаю его:

Приложения – Аудио и Видео – Audacity, затем в запущенной программе нажимаю на кружочек (красный) во всплывающем сообщении запись Record и начинаю произность, т.е. генерирую из себя голос и любые другие звуки. В этом момент в основном экране программы начинает генерировать изображения амплитуды, по прошествии некоторого времени дабы не закромождать рабочую область нажимаю Stop, а затем Play с целью воспроизвести:

Запись и воспроизведение звука записанного с использованием микрофона ноутбука

Отлично запись воспроизводится. Сохраняю данный трек выше: File – Save Project As – если нужно в дальнейшем его использовать то сохранив в формате *.aup

(ekzorchik@navy:~/Documents$ file test.aup

test.aup: XML document text) смогу к нему вернуться когда он мне понадобиться.

Аудио запись сделанная через Audacity редактируется только с помощью Audactiy

а если же нужно получить законченный аудиофрагмент, то File – Export

имя: test

Формат: WAV (Microsoft) signed 16 bit PCM

Нажимаю Save, затем поля тегов не заполняю, а просто нажимаю Ok, полученный файл представляет из себя: (это пока несколько способов которые я знаю чтобы получить информацию по аудио файлу)

ekzorchik@navy:~/Documents$ file test.wav

test.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz

Через программу mplayerв консоль будет выводиться информация по работе воспроизведения аудио файла:

ekzorchik@navy:~/Documents$ mplayer -identify test.wav

Creating config file: /home/ekzorchik/.mplayer/config

MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team

mplayer: could not connect to socket

mplayer: No such file or directory

Failed to open LIRC support. You will not be able to use your remote control.

Playing test.wav.

libavformat version 53.21.1 (external)

Mismatching header version 53.19.0

ID_AUDIO_ID=0

Audio only file format detected.

Load subtitles in ./

ID_FILENAME=test.wav

ID_DEMUXER=audio

ID_AUDIO_FORMAT=1

ID_AUDIO_BITRATE=1411200

ID_AUDIO_RATE=0

ID_AUDIO_NCH=2

ID_START_TIME=0.00

ID_LENGTH=6.00

ID_SEEKABLE=1

ID_CHAPTERS=0

==========================================================================

Opening audio decoder: [pcm] Uncompressed PCM audio decoder

AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/100.00% (ratio: 176400->176400)

ID_AUDIO_BITRATE=1411200 (Битрейк)

ID_AUDIO_RATE=44100 (Частота дискритизации)

ID_AUDIO_NCH=2 (Количество каналов)

Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)

==========================================================================

AO: [pulse] 44100Hz 2ch s16le (2 bytes per sample)

ID_AUDIO_CODEC=pcm

Video: no video

Starting playback…

A: 3.7 (03.7) of 6.0 (06.0) 0.0%

MPlayer interrupted by signal 2 in module: play_audio

ID_SIGNAL=2

A: 3.9 (03.9) of 6.0 (06.0) 0.0%

Exiting… (Quit)

ID_EXIT=QUIT

ekzorchik@navy:~$ sudo apt-get install sox -y

ekzorchik@navy:~/Documents$ soxi test.wav

Input File : ‘test.wav’

Channels : 2

Sample Rate : 44100

Precision : 16-bit

Duration : 00:00:06.35 = 280042 samples = 476.262 CDDA sectors

File Size : 1.12M

Bit Rate : 1.41M

Sample Encoding: 16-bit Signed Integer PCM

Подведя черту под рассмотренным выше я открыл для себя много нового. Пока следует завершить данную заметку. С уважением автор блога – ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru