alsabat - справочное руководство, опции, примеры команд


ИМЯ

alsabat - звуковой тестер командной строки для драйвера звуковой карты ALSA

СИНТАКСИС

alsabat [flags]

ОПИСАНИЕ

ALSABAT(ALSA Basic Audio Tester) – это простая утилита командной строки, предназначенная для автоматизации тестирования аудиодрайверов и звуковых серверов с минимальным вмешательством человека. ALSABAT можно использовать для проверки качества звука, функций стресс-тестирования и тестирования звука до и после изменения состояния PM.

Конструкция ALSABAT относительно проста. ALSABAT воспроизводит аудиопоток и захватывает тот же поток в цифровой или аналоговой петле. Затем он сравнивает захваченный поток с помощью БПФ с оригиналом, чтобы определить, проходит ли тестовый пример или нет.

ALSABAT может либо полностью работать на тестируемой целевой машине (автономный режим), либо работать в режиме клиент/сервер, когда клиент alsabat запускается на целевой машине и работает как сервер на отдельной тестовой машине. Режим клиент/сервер по-прежнему требует некоторого ручного взаимодействия для синхронизации, но это активно разрабатывается для будущих выпусков.

Конфигурация тестирования оборудования может потребовать использования аналогового кабеля, соединяющего цель с тестерами, или кабеля для создания аналогового шлейфа, если на тестируемом звуковом оборудовании режим шлейфа недоступен. Аналоговый шлейфовый кабель можно использовать для соединения разъемов «линейный вход» и «линейный выход» для создания шлейфа. Если доступны только разъемы для наушников и микрофона (или комбинированный разъем), то для создания аналоговой петли можно использовать следующую простую схему:

https://source.android.com/devices/audio/loopback.html

Если в системе установлена tinyalsa, пользователь может выбрать tinyalsa в качестве серверной библиотеки alsabat с опцией настройки «--enable-alsabat-backend-tiny».

ПАРАМЕТРЫ

-h, --help

Справка: показать синтаксис.

-D

Выберите звуковую карту для тестирования по имени.

-P

Выберите устройство воспроизведения PCM.

-C

Выберите устройство захвата PCM.

-f

Образец формата
Распознаваемые форматы примеров: U8 S16_LE S24_3LE S32_LE
Некоторые из них могут быть недоступны на выбранном оборудовании
Доступные ярлыки форматов:

-f cd (16 bit little endian, 44100, stereo) [-f S16_LE -c2 -r44100]
-f dat (16 bit little endian, 48000, stereo) [-f S16_LE -c2 -r48000]

Если формат не указан, используется S16_LE.

-c

Количество каналов. По умолчанию используется один канал. Допустимые значения на данный момент: 1 или 2.

-r

Частота дискретизации в герцах. Частота по умолчанию составляет 44100 Гц. Допустимые значения зависят от аппаратной поддержки.

-n

Длительность генерируемого сигнала. Значение может быть в одной из двух форм:
1. Десятичное целое, означает количество кадров;
2. Число с плавающей запятой с суффиксом 's' означает количество секунд.
По умолчанию 2 секунды.

-k

Значение Sigma k для анализа.
Функция анализа считывает данные из файла WAV, запускает БПФ для данных, чтобы получить величину векторов частот, а затем вычисляет среднее значение и стандартное отклонение векторов частот. После этого определяем порог:
порог=k * стандартное_отклонение + среднее_значение
Частоты с амплитудой, превышающей пороговое значение, будут распознаны как пиковые, а частота с наибольшим пиковым значением будет распознана как обнаруженная частота.
Затем ALSABAT сравнивает обнаруженную частоту с заданной частотой, чтобы решить, проходит ли обнаружение успешно или нет.
Значение по умолчанию — 3,0.

-F

Целевая частота для генерации и анализа сигналов, в герцах. Значение по умолчанию — 997,0 Гц. Допустимый диапазон: (DC_THRESHOLD, 40% * частота дискретизации).

-p

Общее количество периодов для игры или захвата.

--log=#

Запишите выходные данные stderr и stdout в этот файл журнала.

--file=#

Введите файл WAV для воспроизведения.

--saveplay=#

Целевой файл WAV для сохранения содержимого теста захвата.

--local

Режим внутреннего шлейфа. Воспроизведение, захват и анализ только внутри ALSABAT. Это предназначено для разработчиков, чтобы протестировать новые функции ALSABAT, поскольку звук не направляется за пределы ALSABAT.

--standalone

Добавьте поддержку автономного режима, в котором ALSABAT будет работать на другом компьютере, отличном от тестируемого. В автономном режиме звуковые данные могут генерироваться, воспроизводиться и записываться так же, как и в обычном режиме, но не анализируются. ALSABAT, собираемый без поддержки libfftw3, всегда находится в автономном режиме. ALSABAT в обычном режиме также может обойти анализ данных, используя опцию "--standalone".

--roundtriplatency

Тест задержки туда и обратно. Задержка аудио — это задержка во времени, когда аудиосигнал проходит через систему. Существует много видов показателей задержки звука. Одной из полезных метрик является задержка приема-передачи, которая представляет собой сумму задержки вывода и задержки ввода.

--snr-db=#

Порог обнаружения шума в SNR (дБ). 26 дБ означает 5% шума по амплитуде. ALSABAT вернет ошибку, если сигнал SNR меньше порогового значения.

--snr-pc=#

Порог обнаружения шума в процентах от амплитуды шума (%). ALSABAT вернет ошибку, если амплитуда шума больше порогового значения.

ПРИМЕРЫ

alsabat -P plughw:0,0 -C plughw:0,0 -c 2 -f S32_LE -F 250

Сгенерируйте и воспроизведите синусоиду 250 Гц с 2 каналами и форматом S32_LE, а затем запишите и проанализируйте.

alsabat -P plughw:0,0 -C plughw:0,0 --file 500Hz.wav

Воспроизведите файл RIFF WAV «500Hz.wav», который содержит данные LPCM формы волны 500 Гц, а затем запишите и проанализируйте.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


В случае успеха возвращает 0.
Если пик не обнаружен, возвращает -1001;
Если обнаружен только DC, возвращает -1002;
Если пиковая частота не соответствует целевой частоте, возвращается -1003.

СМОТРИТЕ ТАКЖЕ

aplay(1)

ОШИБКИ

В настоящее время поддерживается только формат RIFF WAV с данными PCM. Пожалуйста, сообщайте о любых ошибках в список рассылки alsa-devel.

АВТОР

alsabat — Лиам Гирдвуд liam.r.girdwood@linux.intel.com, Бернар Готье bernard.gautier@intel.com и Хан Лу han.lu@intel.com. Авторами этого документа являются Лайам Гирдвуд liam.r.girdwood@linux.intel.com и Хан Лу han.lu@intel.com.