Поскольку с помощью специального оборудования сложно измерить задержку ввода или вывода по отдельности, задержка звука измеряется как задержка полного цикла, которая представляет собой комбинированную задержку ввода и вывода.
Техника
Тестовое ПО автоматически выполняет следующие действия:
- Программа генерирует сложный тон, используя короткие вспышки белого шума разной длины, создавая легко узнаваемую структуру.
- Звук воспроизводится через аудиовыход устройства.
- Тест возвращает аудиовыход на аудиовход.
- Для тестирования динамика и микрофона дополнительное оборудование не требуется, так как встроенный микрофон записывает звук, воспроизводимый встроенным динамиком.
- Аналоговые разъемы 3,5 мм используют специальный аудиоадаптер с обратной связью.
- В USB-портах используется либо адаптер USB – 3,5 мм в сочетании с петлевым адаптером, либо аудиоинтерфейс USB с кабелями, соединяющими выход с входом.
- Тестовое ПО записывает аудио, полученное по шлейфу.
- Тестовое ПО использует полнодуплексный поток для синхронизации и одновременной записи выходного и входного аудиопотоков.
На рисунке ниже показана схема тестирования.
Рисунок 1. Измерьте задержку аудио.
Задержка туда и обратно определяется путем измерения смещения по времени между выходом и входом с использованием алгоритма нормализованной корреляции для обнаружения выходного тона во входном потоке.
На рисунке ниже показано, как рассчитывается задержка в обе стороны.
Рисунок 2. Рассчитывать время приема-передачи.
Подробную информацию об оборудовании для обратной связи можно найти в статье Аудиопериферия CTS Verifier.
Тестовые приложения
В этом разделе описаны два основных приложения для измерения задержки. Оба метода используют одинаковые техники и должны давать сопоставимые результаты.
OboeTester
OboeTester – это набор тестов, разработанный для библиотеки Oboe. Он позволяет выполнять различные проверки, в том числе измерять задержку при передаче данных туда и обратно.
Получить OboeTester можно двумя способами:
- Создайте приложение из исходного кода, который можно найти на GitHub.
- Установите приложение из Google Play.
Чтобы измерить задержку в приложении OboeTester, выполните следующие действия:
- Запустите OboeTester.
- Нажмите Задержка туда и обратно.
- Нажмите Измерить.
- Проверьте значение
latency.msecдля задержки при передаче данных туда и обратно.
Вы можете провести этот тест, используя намерение для непрерывной интеграции.
CTS Verifier
Чтобы определить, соответствует ли задержка при передаче в обе стороны требованиям CDD, ознакомьтесь с разделом Audio loopback latency test (Проверка задержки при передаче аудио в обе стороны) в CTS Verifier.