Как измерить задержку аудио

Поскольку с помощью специального оборудования сложно измерить задержку ввода или вывода по отдельности, задержка звука измеряется как задержка полного цикла, которая представляет собой комбинированную задержку ввода и вывода.

Техника

Тестовое ПО автоматически выполняет следующие действия:

  1. Программа генерирует сложный тон, используя короткие вспышки белого шума разной длины, создавая легко узнаваемую структуру.
  2. Звук воспроизводится через аудиовыход устройства.
  3. Тест возвращает аудиовыход на аудиовход.
    • Для тестирования динамика и микрофона дополнительное оборудование не требуется, так как встроенный микрофон записывает звук, воспроизводимый встроенным динамиком.
    • Аналоговые разъемы 3,5 мм используют специальный аудиоадаптер с обратной связью.
    • В USB-портах используется либо адаптер USB – 3,5 мм в сочетании с петлевым адаптером, либо аудиоинтерфейс USB с кабелями, соединяющими выход с входом.
  4. Тестовое ПО записывает аудио, полученное по шлейфу.
  5. Тестовое ПО использует полнодуплексный поток для синхронизации и одновременной записи выходного и входного аудиопотоков.

На рисунке ниже показана схема тестирования.

Как измерить задержку аудио

Рисунок 1. Измерьте задержку аудио.

Задержка туда и обратно определяется путем измерения смещения по времени между выходом и входом с использованием алгоритма нормализованной корреляции для обнаружения выходного тона во входном потоке.

На рисунке ниже показано, как рассчитывается задержка в обе стороны.

Как рассчитать задержку туда и обратно

Рисунок 2. Рассчитывать время приема-передачи.

Подробную информацию об оборудовании для обратной связи можно найти в статье Аудиопериферия CTS Verifier.

Тестовые приложения

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

OboeTester

OboeTester – это набор тестов, разработанный для библиотеки Oboe. Он позволяет выполнять различные проверки, в том числе измерять задержку при передаче данных туда и обратно.

Получить OboeTester можно двумя способами:

  • Создайте приложение из исходного кода, который можно найти на GitHub.
  • Установите приложение из Google Play.

Чтобы измерить задержку в приложении OboeTester, выполните следующие действия:

  1. Запустите OboeTester.
  2. Нажмите Задержка туда и обратно.
  3. Нажмите Измерить.
  4. Проверьте значение latency.msec для задержки при передаче данных туда и обратно.

Вы можете провести этот тест, используя намерение для непрерывной интеграции.

CTS Verifier

Чтобы определить, соответствует ли задержка при передаче в обе стороны требованиям CDD, ознакомьтесь с разделом Audio loopback latency test (Проверка задержки при передаче аудио в обе стороны) в CTS Verifier.