Команда speaker-test тестирует каналы динамиков. Вот пример команды для простой стерео-установки с двумя динамиками:
$ speaker-test -t wav -D plug:front -c2 -l2
speaker-test 1.0.14
Playback device is plug:front
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 16 to 16384
Period size range from 8 to 8192
Using max buffer size 16384
Periods = 4
was set period_size = 4096
was set buffer_size = 16384
0 - Front Left
1 - Front Right
Time per period = 2.731660
0 - Front Left
1 - Front Right
Time per period = 2.986495
В ходе тестирования вы должны слышать приятный женский голос, говорящий «Front left, front right». В данном примере -c2 означает два канала, а -l2 означает запуск теста два раза.
В большинстве случаев, даже на встроенных звуковых микросхемах реализована звуковая схема 5:1 «звук вокруг». Вы можете протестировать ее с помощью той же команды speaker-test:
$ speaker-test -t wav -D plug:surround51 -c6 -l2
Обратите внимание на то, как нумеруются различные каналы. Для тестирования единственного динамика выберите его опцией -s. Следующий пример команды, генерирующей синусоидальную волну с тоном частотой 45 Гц, звук которой подобен мощному гудению на низкочастотном (LFE) канале:
$ speaker-test -t sine -f 45 -D plug:surround51 -c6 -s6
Будьте внимательны с нумерацией каналов — номера динамиков выводимые командой speaker-test начинаются с нуля, в то время как номер опции -s начинается с единицы. Система требует точности!
LFE (Low Frequency Effects) означает низкочастотные эффекты, которые обычно подразумевают работу вашего сабвуфера. Естественно, они более сложные, чем те, что описывались выше (для более подробной информации смотрите «Что такое LFE канал?»).
«Раскопки» в звуковых картах
Как вы можете узнать какой тип вывода поддерживает ваша звуковая карта? Команда aplay вам поможет:
$ aplay -L
front:CARD=V8237,DEV=0
VIA 8237, VIA 8237
Front speakers
(Фронтальные динамики)
surround40:CARD=V8237,DEV=0
VIA 8237, VIA 8237
4.0 Surround output to Front and Rear speakers
(Окружение 4.0 Вывод на фронтальные и тыловые динамики)
surround41:CARD=V8237,DEV=0
$ aplay -L front:CARD=V8237,DEV=0 VIA 8237, VIA 8237 Front speakers (Фронтальные динамики) surround40:CARD=V8237,DEV=0 VIA 8237, VIA 8237 4.0 Surround output to Front and Rear speakers (Окружение 4.0 Вывод на фронтальные и тыловые динамики) surround41:CARD=V8237,DEV=0 VIA 8237, VIA 8237 4.1 Surround output to Front, Rear and Subwoofer speakers (Окружение 4.1 Вывод на фронтальные, тыловые динамики и сабвуфер) surround50:CARD=V8237,DEV=0 VIA 8237, VIA 8237 5.0 Surround output to Front, Center and Rear speakers (Окружение 5.0 Вывод на фронтальные, центральные и тыловые динамики) surround51:CARD=V8237,DEV=0 VIA 8237, VIA 8237 5.1 Surround output to Front, Center, Rear and Subwoofer speakers (Окружение 5.1 Вывод на фронтальные, центральные, тыловые динамики и сабвуфер) iec958:CARD=V8237,DEV=0 VIA 8237, VIA 8237 IEC958 (S/PDIF) Digital Audio Output (Вывод на Цифровой аудио выход S/PDIF) Прим.переводчика: перевод сообщений на русский язык в выводе команды вы, естественно, не увидите.
Из вывода данной команды вы можете определить все имеющиеся в системе PCM устройства; например, front, surround40, surround41 и так далее - все это те PCM устройства, которые были созданы автоматически, при первом запуске системы. Вы можете протестировать их командой aplay следующим образом:
$ aplay -D front test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian,
Rate 44100 Hz, Stereo
Вы можете также протестировать воспроизведение путем использования номеров «карта+устройство». Это некий тип «сырого» тестирования, поскольку он не зависит от корректности конфигурации PCM устройств, используя взамен идентификаторы (ID) карт, назначенные ядром. Aplay -l показывает «сырые» номера «карта+устройство». 0,0 — это первое устройство, 1,0 — второе устройство и так далее:
$ aplay -D hw:1,0 test.wav
Если вы имеете второе звуковое устройство, например USB-гарнитуру, вы можете сконфигурировать имена PCM устройств как глобально в файле /etc/asound.conf, так и для отдельных пользователей в файле ~.asoundrc. Просто, но эффективно:
pcm.v8237 {type hw card V8237}
ctl.v8237 {type hw card V8237}
pcm.headset {type hw card Headset}
ctl.headset {type hw card Headset}
Для pcm.v8237 часть pcm является обязательной. При этом v8237 может быть тем, что вы хотите и то же самое относится к ctl строкам. type hw card — необходимая часть. V8237 и Headset взяты из вывода команды aplay -l. В этих же целях вы можете использовать команду asoundconf:
$ asoundconf list
Names of available sound cards:
V8237
Headset
Теперь, вместо aplay -D hw:1,0 test.wav можно использовать aplay -D headset test.wav. То есть, происходит замена идентификаторов ядра (0,0- 1,0) именами (V8237, Headset) , поскольку идентификаторы ядра могут меняться, и особенно это касается udev устройств.
Запись с использованием ALSA
arecord — это записывающая утилита включенная в ALSA. Это не мощный микширующий рекордер, переполненный функциями, а простая утилита для выполнения аудиозаписи в формате WAV. Вы можете точно указать частоту выборки, интервалы прерываний, размер буфера, формат выборки и всевозможные детальные установки. Что касается меня, то я приклеиваю ярлыки: опция -f cd записывает звук в CD формате, опция -f dat в формате цифрового аудио. Это очень здорово и удобно для написания сценариев, а также хороший и быстрый тест результатов записи и воспроизведения:
$ arecord -vv -D headset -f cd test.wav
$ aplay -vv -D v8237 test.wav
Для того, чтобы остановить выполнение команды, нажмите Ctrl+C.
Напоследок, несколько полезных советов.
Чтобы узнать версию ALSA, запустите cat /proc/asound/version.