Затримка аудіо петлі — чого не виявляє тест

Більшість аудіо тестів перевіряють лише, чи звук відтворюється і чи мікрофон захоплює. Жоден не вимірює затримку round-trip — час від входу аудіо події в мікрофон до виходу обробленого сигналу через динаміки. Це єдине число визначає, чи музиканти можуть записувати під клік, чи відеодзвінки природні, і чи просторовий звук в іграх точний. Система може пройти кожен тест відтворення, маючи катастрофічну затримку.

Кожна перевірка обладнання починається однаково. Підключіть нові динаміки, відтворіть тестовий тон, підтвердіть звук. Підключіть мікрофон, говоріть, дивіться рівень. Ці два тести підтверджують вихідний і вхідний шляхи. Жоден не вимірює питання: скільки часу звуку потрібно від мікрофона, через комп’ютер, до динаміка? Це число — затримка round-trip, і вона непомітно визначає, з якими завданнями ваша система може справитися:

  • Запис музики. Гра під клік або мінус вимагає, щоб ваш власний звук повертався до вух майже миттєво. Понад приблизно сорок мілісекунд round-trip ваш таймінг збивається, кожен дубль звучить мляво, і жодна практика цього не виправить. Аудіоінтерфейси, що розділяють USB-контролер з іншими пристроями, також можуть страждати від конкуренції за смугу USB, що додає скачки затримки поверх буферних затримок.
  • Розмови. Відеодзвінки відчуваються природно лише тоді, коли аудіопайплайн залишається щільним. Зайва затримка породжує ехо, перебивання та інший ритм супутникового дзвінка.
  • Ігри зі спатіальним звуком. Позиційний звук працює лише тоді, коли аудіо приходить у такт з тим, що ви бачите. Коли звукова траєкторія відстає від зображення, кроки та постріли відокремлюються від дії на екрані. Тест динаміка і тест мікрофона відповідають «чи працює?». Тест затримки loopback відповідає «наскільки швидко?». Ця сторінка пояснює, що таке затримка round-trip, звідки вона береться і як її зменшити. Цифри тут базуються на загальному досвіді з різними апаратними та програмними конфігураціями — реальний ASIO на Focusrite Scarlett 2i2 дасть інші числа, ніж вбудований кодек Realtek на Windows 11. Ваші результати залежатимуть від вашого інтерфейсу, драйвера та налаштувань буфера. Професійний аудіо інтерфейс у студійному записі

Тон не вимірює затримку

Тест динаміка відтворює тон і підтверджує, що звук виходить. Це перевірка працездатності з результатом «так» або «ні»: кабель підключено, драйвер завантажено, звук не вимкнено, цифро-аналоговий перетворювач працює. Якщо ви чуєте тон — вихідний шлях працює. Це все, що може показати тест.

Тест мікрофона робить те саме для напрямку входу: записує те, що ви говорите, показує індикатор рівня і підтверджує, що мікрофон, попередній підсилювач і аналого-цифровий перетворювач працюють.

Вимірювання затримки — зовсім інший вид тесту. Замість питання, чи може сигнал пройти шляхом, воно запитує, скільки часу це займає. Процедура проста: надішліть відомий сигнал — імпульс, клік, короткий сплеск — через вихід, зчитайте його на вході і обчисліть різницю часу між передачею і прийомом. Ця різниця є затримкою round-trip, вираженою в мілісекундах.

Ця відмінність важлива, оскільки два вимірювання незалежні. Система може пройти кожен тест відтворення, маючи катастрофічну затримку. Динаміки Bluetooth — класичний приклад: вони відтворюють тон якісно, тест динаміка повідомляє про успіх, але бездротовий кодек додає сто-сто вісімдесят мілісекунд затримки, яку жоден тест відтворення не помічає.

Шлях затримки round-trip від мікрофона до динаміка

Буфер наповнюється

  1. Вхідний буфер. 2.7 мс
  2. A/D. 1-3 мс
  3. OS планування. кілька до 20+ мс
  4. Обробка.
  5. D/A. 1-3 мс
  6. Вихідний буфер. 5-8 мс

Спільний режим: 30-60 мс.

Один номер, два визначення

Аудіо ПЗ рідко наводить одне число. Відкривши налаштування професійного застосунку, ви зазвичай побачите два: затримку входу — час від мікрофона до застосунку, і затримку виходу — час від застосунку до динаміків. Такі драйвери, як ASIO, повідомляють обидва значення окремо, а маркетингові матеріали часто цитують те, яке виглядає краще.

Затримка round-trip — це сума обох, плюс час обробки самого застосунку. Якщо система цитує двадцять мілісекунд в один бік, round-trip становить приблизно сорок мілісекунд. Користувач, який читає «20 мс затримки» і вважає, що це та затримка, яку він почує, помиляється вдвічі — і ця помилка поширена, оскільки односторонні цифри — це ті, що надруковані в специфікаціях.

Що ви сприймаєте — завжди round-trip. Коли музикант моніторить свій голос або інструмент, звук має вийти з мікрофона, пройти через систему і повернутися в навушники, перш ніж він його почує. Це повний шлях. Одностороння цифра описує лише половину шляху.

OS вирішує до вас

Той самий мікрофон, ті самі динаміки і той самий кабель дають різну затримку на різних операційних системах, оскільки кожна платформа маршрутизує аудіо через різний програмний стек. Стек визначає, скільки буферизації та накладних витрат планування додається до неминучого часу перетворення.

Windows: спільний режим, ексклюзивний режим і ASIO

Windows пропонує три способи доступу до обладнання:

  • WASAPI спільний режим — стандартний шлях, який використовує кожен застосунок (Microsoft Learn: WASAPI Shared Mode, 2023). Типова затримка round-trip — 32-64 мс.
  • WASAPI ексклюзивний режим або ASIO обходить мішер і дає застосунку прямий доступ до пристрою, зазвичай знижуючи затримку до ~10 мс (Microsoft Learn: WASAPI Exclusive Mode, 2023).
  • ASIO — протокол драйвера, який обходить стек аудіо Windows і спілкується безпосередньо з обладнанням (Steinberg: ASIO Host and Driver Guide v2.3, 2021). Зазвичай досягає 8-15 мс.

macOS: Core Audio

Core Audio від Apple добре оптимізований, і нативні застосунки зазвичай досягають 8-20 мс round-trip. Спільний шлях ефективний, тому навіть затримка в браузері на macOS зазвичай краща, ніж на Windows.

Linux: ALSA, PulseAudio та PipeWire

Затримка на Linux є рухливою ціллю. ALSA, низькорівневий інтерфейс драйвера, швидкий, але специфічний для застосунків. PulseAudio історично додавав помітну затримку буферизації. PipeWire, сучасна заміна, розроблена для низькозатримного аудіо і може перевершувати інші платформи при правильному налаштуванні.

Діапазони затримки аудіо

60 мс означає

Сира цифра в мілісекундах нічого не означає, поки ви не зіставите її з тим, що збираєтесь робити. Чотири зони охоплюють практичний діапазон:

  • <20 мс — відмінно. Професійне виробництво музики комфортне тут. Музиканти можуть записувати під клік, моніторити себе з ефектами і грати в такт.
  • 20-60 мс — прийнятно для більшості випадків. Подкастинг, відеодзвінки, ігри та звичайний запис працюють добре. Щільний музичний трекинг починає страждати ближче до верхньої межі.
  • 60-120 мс — проблемно для продакшну, прийнятно для звичайного використання. Караоке, голосовий чат і прослуховування — нормально. Запис під backing track стає справді складним.
  • >120 мс — погано. Робота, чутлива до часу, фактично неможлива. Дзвінки розвивають чутне ехо, виступи відчуваються відірваними.

Три важелі: частота дискретизації, буфер, драйвер

Три елементи керування визначають, де знаходиться ваша затримка, і вони не рівні за впливом.

Частота дискретизації задає пропускну здатність конвеєра, а не затримку напряму. Вона взаємодіє з буфером: 128 семплів займають 2.9 мс при 44.1 kHz, але лише 1.3 мс при 96 kHz. Але вища частота вимагає більше обробки, що часто змушує збільшити буфер для стабільності, скасовуючи виграш. Використовуйте 48 kHz для музики та відео.

Розмір буфера — основний важіль затримки. Він з’являється двічі в round-trip — на вході та виході. Зменшення буфера вдвічі зменшує цю частину затримки, але також вдвічі зменшує час системи на доставку наступного блоку, підвищуючи ризик underrun. Практична матриця при 48 kHz:

  • 64 семпли — приблизно 8-12 мс round-trip на ASIO.
  • 128 семплів — приблизно 12-20 мс. Оптимальний ASIO.
  • 256 семплів — приблизно 20-35 мс.
  • 512 семплів — приблизно 35-60 мс.
  • 1024 семпли — приблизно 60-100 мс.

Драйвер задає нижню межу. ASIO допускає 32-128 семплів; спільний режим має вищу межу; Bluetooth додає 100+ мс до того, як буфер взагалі розглядається.

Браузер не DAW

Браузер може оцінити затримку round-trip за допомогою Web Audio API (MDN: Web Audio API, 2024), яка планує імпульс через вихід і зчитує сигнал на вході мікрофона. Типове вимірювання Web Audio loopback зазвичай повідомляє 55-70 мс — у кілька разів більше за ASIO. Виміряний час включає акустичний шлях через повітря, transducers динаміка та мікрофона, обробку echo cancellation та весь стек аудіо системи. Це називається акустичною затримкою round-trip, і вона є релевантною для браузерних дзвінків, караоке та ігор у браузері, але не еквівалентна ASIO затримці.

Браузер не може досягти найкращого результату обладнання. Він використовує спільний аудіо шлях OS, не може отримати ексклюзивний доступ до пристрою, не може завантажити ASIO драйвери і не може контролювати розмір аудіо буфера або пріоритет потоку. Вимірювання відображає стелю спільного режиму вашої платформи, а не справжній мінімум обладнання.

Шість способів зменшення затримки

  1. Виправте режим драйвера першим. На Windows встановіть ASIO драйвер для вашого аудіо інтерфейсу або переключіться на WASAPI ексклюзивний режим. Це найбільший важіль, і він безкоштовний.
  2. Зменшіть розмір буфера. Крок за кроком з 512 до 256 до 128 до 64 семплів, тестуючи кожне налаштування, поки не почуєте клацання. Потім поверніться на один рівень вище.
  3. Перевірте частоту дискретизації. Використовуйте 48 kHz для музики та відео. Погоня за 96 або 192 kHz зазвичай змушує збільшити буфер і в підсумку сповільнює.
  4. Закрийте конкуруючі застосунки. Стримінг, захват та зайняті вкладки браузера крадуть CPU час у аудіо потоку.
  5. Розгляньте аудіо інтерфейс. Спеціалізоване обладнання надає кращі перетворювачі, належні ASIO драйвери та розміри буфера, недоступні вбудованому аудіо.
  6. Віддавайте перевагу дротовим з’єднанням. Для будь-чого, чутливого до часу, дротові навушники перевершують Bluetooth на сто і більше мілісекунд.

Підсумок

Тест відтворення підтверджує, що динаміки працюють. Тест петлі підтверджує, що вони працюють вчасно — і це різні питання з різними відповідями. Запустіть тест динаміка для перевірки вихідного шляху і тест мікрофона для перевірки вхідного шляху.

Виміряйте один раз і збережіть результат. Менше двадцяти мілісекунд означає професійний таймінг. Двадцять-шістдесят покриває більшість повсякденної роботи. Понад сто двадцять — кожна задача, чутлива до часу, буде протидіяти вам, і виправлення зазвичай починається з драйвера, а не з обладнання. Якщо ви ніколи не вимірювали це число, ви лише гадаєте про кожну задачу, що залежить від таймінгу.

Поширені запитання

Чи може тест динаміка розповісти про затримку аудіо?

Ні. Тест динаміка відтворює тон через динаміки і підтверджує, що звук виходить. Він перевіряє вихідний шлях, а не вимірює час проходження сигналу через ланцюг входу і виходу. Затримка — це вимір часу, не функціональний тест, і ці два вимірювання є незалежними: система може пройти кожен тест відтворення, маючи катастрофічну затримку. Для вимірювання round-trip затримки потрібен одночасний запис і відтворення з вимірюванням затримки між надісланим і прийнятим сигналом. Тест динаміка перевіряє лише вихідний шлях — чи звук фізично виходить — але не каже нічого про затримку сигналу через операційну систему, буфер і драйвер. Класичний приклад — Bluetooth-навушники: тест динаміка повідомляє про успіх, тоді як кодек додає сотню-сто вісімдесят мілісекунд затримки, яку жоден тест відтворення не помічає.

Що таке затримка round-trip?

Загальний час від входу сигналу в систему до виходу з динаміків. Включає вхідний буфер, перетворення analog-to-digital, планування OS, обробку застосунку, перетворення digital-to-analog, і вихідний буфер. Вимірюється в мілісекундах. У WASAPI shared mode на Windows типово 30-60 мс; з ASIO 8-15 мс. На macOS з Core Audio 10-15 мс. На Linux з ALSA/JACK 5-10 мс. Кожен етап додає затримку, і загальна сума визначає, чи можливий запис у реальному часі. Варто зазначити, що вимірювання в браузері охоплюють акустичний round-trip через повітря, тоді як ASIO звітує внутрішній електричний шлях — це не однакові числа, хоча обидва описують затримку від мікрофона до динаміка в різних контекстах використання.

Моя затримка 80 мс — це погано для музики?

Для більшості виробництва — високе. Музиканти зазвичай віддають перевагу затримці нижче сорока мілісекунд — вище цієї значення затримка між грою ноти і її звучанням через монітор відчутна, кожен запис звучить мляво, і жодна кількість практики це не виправляє. На вісімдесяти мілісекундах затримка помітно слід і порушує синхронізацію з метрономом або backing track. Для аматорського запису або подкастингу затримка помітна, але часто терпима. Для live monitoring під час запису вісімдесят мілісекунд зазвичай непрактичне. Професійні аудіоінтерфейси з ASIO досягають 8-15 мс, що достатньо для більшості сценаріїв запису в студії.

Чому затримка в браузері вища за професійне ПЗ?

Браузери розроблені для кросплатформової сумісності і безпеки, а не для професійної аудіо продуктивності. Вони не можуть прямо доступатися до аудіоапаратного забезпечення — мусять проходити через шар аудіо операційної системи, який додає затримку через мікшування і планування. Професійне ПЗ як Reaper або Ableton використовує ASIO на Windows, який обходить шар OS і отримує прямий доступ до апаратного забезпечення, досягаючи 8-15 мс. Браузери використовують Web Audio API, який базується на WASAPI shared mode, типово додаючи 30-60 мс затримки. Це фундаментальне обмеження архітектури браузера — браузер не може отримати ексклюзивний доступ до пристрою, завантажити ASIO драйвери або контролювати розмір аудіо буфера.

Скільки ASIO зменшує затримку?

З WASAPI спільного на ASIO або WASAPI ексклюзивний: 30-60 до 8-15 мс. Точне зменшення залежить від аудіо інтерфейсу та реалізації драйвера. ASIO обходить шар аудіо OS і отримує прямий доступ до буферів обладнання, даючи застосунку прямий доступ до драйвера звукової карти. Не кожна звукова карта підтримує ASIO — потрібен професійний аудіоінтерфейс або драйвер ASIO4ALL для споживчих пристроїв. Core Audio на macOS також забезпечує нижчу затримку, типово 10-15 мс. На Linux JACK з ALSA може досягти 5-10 мс. Зменшення буфера далі знижує затримку, але збільшує ризик underrun — завжди тестуйте найменший буфер, який працює без glitch на вашому обладнанні.

Вища частота = менша затримка?

Не прямо. Частота дискретизації визначає, скільки разів на секунду аудіо вимірюється, що впливає на частотну характеристику і обробку, але не на затримку буфера безпосередньо. Розмір буфера — основний контроль затримки. Кожен буфер повинен заповнитися перед обробкою, тому більший буфер означає більше затримки. Вища частота дискретизації означає більше семплів на буфер, але кожен семпл займає менше часу, тому ефект на затримку мінімальний при фіксованому розмірі буфера. 48 kHz є професійним стандартом. Вищі частоти як 96 kHz збільшують навантаження CPU без значного зменшення затримки, і часто змушують збільшити буфер для стабільності. Завжди використовуйте 48 kHz для продакшну і мінімізуйте розмір буфера.

Як розмір буфера впливає?

Менший буфер означає меншу затримку, але підвищує ризик underrun — ситуації, коли буфер не заповнюється достатньо швидко і чути тріск, клацання або переривання звуку. Буфер 64 або 128 семплів є хорошим компромісом на надійному обладнанні з ASIO. При 48 kHz буфер 128 семплів — близько 2.7 мс вхідної затримки, плюс відповідний вихідний буфер — загальна round-trip затримка близько 8-15 мс з ASIO. На слабшому обладнанні або без ASIO буфер 256 або 512 семплів може бути необхідним для стабільної роботи без glitch. Завжди тестуйте найменший буфер, який працює стабільно на вашому обладнанні, і збільшуйте його лише якщо чути артефакти.

Чому Bluetooth має високу затримку?

Кодеки Bluetooth додають значну затримку обробки для компресії і бездротової передачі. Стандарт SBC додає 100-180 мс (Bluetooth.com), aptX 40-80 мс (Qualcomm, 2014), aptX Low Latency 32-40 мс. Ця затримка є невіддільною від бездротового протоколу — кодек повинен стиснути, передати і розпакувати кожен кадр. Затримка додається до затримки системи, роблячи моніторинг у реальному часі неможливим з Bluetooth. Для виробництва музики або гри наживо завжди використовуйте дротове з'єднання — USB або jack. Bluetooth прийнятний тільки для прослуховування без часових вимог, де затримка не має значення для користувацького досвіду.