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».
Справка: показать синтаксис.
Выберите звуковую карту для тестирования по имени.
Выберите устройство воспроизведения PCM.
Выберите устройство захвата PCM.
Образец формата
Распознаваемые форматы примеров: 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.
Количество каналов. По умолчанию используется один канал. Допустимые значения на данный момент: 1 или 2.
Частота дискретизации в герцах. Частота по умолчанию составляет 44100 Гц. Допустимые значения зависят от аппаратной поддержки.
Длительность генерируемого сигнала. Значение может быть в одной из двух форм:
1. Десятичное целое, означает количество кадров;
2. Число с плавающей запятой с суффиксом 's' означает количество секунд.
По умолчанию 2 секунды.
Значение Sigma k для анализа.
Функция анализа считывает данные из файла WAV, запускает БПФ для данных, чтобы получить величину векторов частот, а затем вычисляет среднее значение и стандартное отклонение векторов частот. После этого определяем порог:
порог=k * стандартное_отклонение + среднее_значение
Частоты с амплитудой, превышающей пороговое значение, будут распознаны как пиковые, а частота с наибольшим пиковым значением будет распознана как обнаруженная частота.
Затем ALSABAT сравнивает обнаруженную частоту с заданной частотой, чтобы решить, проходит ли обнаружение успешно или нет.
Значение по умолчанию — 3,0.
Целевая частота для генерации и анализа сигналов, в герцах. Значение по умолчанию — 997,0 Гц. Допустимый диапазон: (DC_THRESHOLD, 40% * частота дискретизации).
Общее количество периодов для игры или захвата.
Запишите выходные данные stderr и stdout в этот файл журнала.
Введите файл WAV для воспроизведения.
Целевой файл WAV для сохранения содержимого теста захвата.
Режим внутреннего шлейфа. Воспроизведение, захват и анализ только внутри ALSABAT. Это предназначено для разработчиков, чтобы протестировать новые функции ALSABAT, поскольку звук не направляется за пределы ALSABAT.
Добавьте поддержку автономного режима, в котором ALSABAT будет работать на другом компьютере, отличном от тестируемого. В автономном режиме звуковые данные могут генерироваться, воспроизводиться и записываться так же, как и в обычном режиме, но не анализируются. ALSABAT, собираемый без поддержки libfftw3, всегда находится в автономном режиме. ALSABAT в обычном режиме также может обойти анализ данных, используя опцию "--standalone".
Тест задержки туда и обратно. Задержка аудио — это задержка во времени, когда аудиосигнал проходит через систему. Существует много видов показателей задержки звука. Одной из полезных метрик является задержка приема-передачи, которая представляет собой сумму задержки вывода и задержки ввода.
Порог обнаружения шума в SNR (дБ). 26 дБ означает 5% шума по амплитуде. ALSABAT вернет ошибку, если сигнал SNR меньше порогового значения.
Порог обнаружения шума в процентах от амплитуды шума (%). ALSABAT вернет ошибку, если амплитуда шума больше порогового значения.
Сгенерируйте и воспроизведите синусоиду 250 Гц с 2 каналами и форматом S32_LE, а затем запишите и проанализируйте.
Воспроизведите файл 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.