Відповіді на питання читачів, prosound

Відповіді на питання читачів ProSound.iXBT.com

Олексій Лукін, головний розробник алгоритмів iZotope RX

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

Відповіді на питання читачів, prosound

Звідки розробники черпають свої ідеї, якщо не секрет? Побажання користувачів враховуються?
Ідеї ​​розробникам iZotope приходять з різних джерел. Це і спілкування з користувачами на виставках, і робота з бета-тестувальниками, і огляди новинок від конкурентів, і власні задумки. Зазвичай в ідеях не бракує. Складніше - з ресурсами для їх реалізації і плануванням: що робити в першу чергу, а що залишити на потім. При розробці RX 3 на прохання користувачів були додані такі можливості, як інверсія виділення, ручне виділення гармонік за номерами і статистика рівнів сигналу. Також нам приходило багато побажань щодо денойзера для діалогів з хорошою автоматизацією. В результаті вийшов Dialogue Denoiser.

Чи дає RX 3 перевага використання 64-бітної архітектури останніх процесорів?
RX поставляється як в 32-бітної, так і в 64-бітової версії. Особливої ​​різниці по швидкодії між ними немає. Головна перевага 64-бітової версії - в можливості використання більшого обсягу оперативної пам'яті. При одночасній обробці декількох файлів необхідний обсяг пам'яті зростає пропорційно кількості файлів. Крім того, на вибір версії може вплинути бажання завантаження сторонніх плагінів: 32-бітове додаток RX завантажує тільки 32-бітові плагіни, а 64-бітове - тільки 64-бітові.

Наскільки збільшилася швидкодія ресурсномістких ефектів у порівнянні з RX 2?
Більшість обробок в RX 3 виконуються швидше, ніж в RX 2. Особливо різниця помітна в додатку: обробка довгих файлів в ньому більш ефективно распараллеливается між ядрами процесорів. Прискорення зазвичай становить 1.5-2 рази, але сильно залежить від конкретного алгоритму і процесора.

Чи є інструкція по всіх інструментах пакету iZotope RX російською? Якщо немає, то буде?
Офіційною інструкції російською не існує. На жаль, англійські керівництва по продуктах iZotope поки не переводяться ні на які мови. У планах iZotope є створення локалізованих версій продуктів, але чи вистачить на це сил - велике питання. Адже грамотний переклад сотень сторінок технічного тексту - непросте завдання. Додам, що керівництва пишуться не мною, інакше б російська версія, звичайно, була.
Для деяких програм iZotope можна знайти неофіційні перекази, зроблені користувачами. Я бачив переклад керівництва "Mastering with iZotope Ozone" від Олега Єршова. Нещодавно Олег також показував мені майже готовий переклад "Audio Repair with RX 3" - керівництва по реставрації. У ньому розглядається більшість можливостей RX.

Регулярно займаюся спектральним редагуванням. Мене хвилюють артефакти, які залишаються під час вирізання частини спектра з дефектом. Як їх краще всього мінімізувати?
У RX є безліч способів видалення артефактів. Найперша порада - акуратно робити виділення потрібної (точніше, непотрібної) частини спектра. Якщо короткі клацання займають весь спектр, їх виділяють на осциллограмме хвилі широкосмугового, тобто тільки по часу. Якщо якісь звуки займають лише частину частотного діапазону, то користуються спектрограммой і виділенням за часом і частоті ( «прямокутник»). Для окремих тонів і їх гармонік можна користуватися більш тонкими інструментами: чарівною паличкою та ін.

Коли виділення зроблено, потрібно правильно вибрати модуль і режим обробки. Вибір правильного модуля в RX - це окрема велика тема, і для зацікавлених читачів я підготував схему (натисніть для збільшення). Дам кілька порад саме по спектральному редагування.

Якщо видаляється об'єкт - це короткий клацання, в межах декількох мілісекунд, то його можна видалити за допомогою ручної інтерполяції в модулі деклікера. Якщо клацання довший, то якісних результатів зазвичай можна домогтися в модулі спектрального ремонту (Spectral Repair). Якщо клацання має довжину близько 10 мс, то рекомендується число смуг (Num. Bands) в модулі вибирати невеликим. Це підвищить точність обробки за часом. Якщо виділений об'єкт довший (30-50 мс і більше), то число смуг можна залишити за замовчуванням - це дозволить більш акуратно проаналізувати тональні компоненти сигналу.

Відповіді на питання читачів, prosound

Рекомендована послідовність операцій при реставрації сигналу в iZotope RX

При відкритті модуля Spectral Repair насамперед постає питання про вибір режиму роботи. Режимів є чотири: Attenuate (аттенюаціі), Replace (заміщення), Pattern (шаблон) і Partials + Noise (гармоніки + шум).

  • Режим аттенюаціі (Attenuate) зменшує амплітуду виділеного фрагмента так, щоб він злився з оточенням. Оточення можна вибирати як горизонтальним (Horizontal), так і вертикальним (Vertical), і навіть двовимірним (2D), тобто вертикальних і горизонтальних відразу. Якщо виділене подія короткий і широкосмугове (тобто виділення переважно вертикальне), то зазвичай вибирають горизонтальну інтерполяцію. І навпаки: для довгих горизонтальних виділень вибирають вертикальну інтерполяцію. Режим аттенюаціі хороший, якщо перешкода в повному обсязі перекрила собою корисний сигнал, і перешкоду не потрібно повністю видалити, а досить лише зменшити її за амплітудою до злиття з фоном.
  • Режим заміщення (Replace) викидає вміст виділення і намагається синтезувати сигнал для його заміщення. При цьому використовується «горизонтальний» тип інтерполяції: події зліва і праворуч від виділення з'єднуються один з одним. Режим заміщення корисний, коли ділянку сигналу повністю зіпсований і його краще синтезувати заново.
  • Режим шаблону (Pattern) намагається підставити на місце виділення інший фрагмент сигналу зі схожими характеристиками оточення. Якщо в запису є повторення (наприклад, петля ударних інструментів), то замість синтезу часто краще спробувати знайти схожий ділянку неушкодженого сигналу і скопіювати його. Режим шаблону дозволяє полегшити пошук цього схожого фрагмента.
  • Режим «гармоніки + шум» (Partial + Noise) схожий на режим заміщення (Replace), але використовує більш складний алгоритм синтезу. Він підходить для випадків, коли ліва і права сторона виділення погано з'єднуються по горизонталі: наприклад, якщо змінилася висота тону інструменту або є вібрато. Режим «гармоніки + шум» намагається зв'язати гармоніки зліва і праворуч від виділення з урахуванням зміни їх висоти і можливого вібрато.

У всіх режимах інструменту Spectral Repair є регулятори настройки області оточення, тобто сигналу, який алгоритм використовує для синтезу. Область оточення показується на спектрограмі пунктирними дужками. При інтерполяції фрагмента бажано, щоб сигнал в області оточення добре відповідав сигналу, який потрібно отримати всередині виділення.

Наприклад, якщо пригнічується скрип гітарної струни, то в область оточення часто потрапляє наступний акорд гітари, який йде відразу після скрипу. Щоб цього не сталося, можна скористатися регулятором Before / afterweighting для зміщення області оточення вліво, переважно до скрипу. Тоді інтерполяція буде будуватися на матеріалі попереднього акорду.

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

Які переваги iZotope RX3 має перед іншими інструментами спектрального редагування? Що рекомендується спробувати в першу чергу?
Я вважаю, що головною перевагою є гнучкість налаштувань: 4 різних режими інтерполяції, настройки розміру області оточення. Також можна відзначити безліч інструментів для виділення областей на спектрі: кисть, ласо, чарівна паличка. У версії RX 3 доданий інструмент ручного виділення гармонік по їх номерами, а також поліпшена акуратність роботи чарівної палички. Ну і, нарешті, спектрограмма в RX - найбільш зручна з усіх, що я бачив. Вона автоматично підлаштовує розмір FFT в процесі роботи, щоб показати максимум деталей.

Чи є ще технологічний запас у математичних методів, застосованих в iZotope RX?
Ми намагаємося реалізовувати алгоритми з якістю, близьким до максимального. Коли алгоритм виходить повільним, ми дозволяємо користувачу вибрати рівень якості. Тому саме технологічного запасу, в моєму розумінні, немає. Однак ми завжди працюємо над поліпшенням алгоритмів за рахунок нових ідей. І в цьому сенсі - шляхи розвитку ще далеко не вичерпані.

Чи не планується замінити Short-time FFT і пов'язані з цим трудомісткі методи осереднення яким-небудь ще більш складним методом розкладання на окремі функції, який би дав більш рівномірний розподіл елементів по логарифмічною шкалою? Чому не можна впровадити логарифмічна БПФ?
Поки що у нас немає мети відмовитися від звичайного FFT. Справа в тому, що у iZotope є алгоритми використання FFT багатьма способами, що дозволяють при необхідності наблизити логарифмічна дозвіл по частоті. Це так звані багатомасштабного (multiresolution) FFT. Вони дозволяють не тільки отримати розподіл частот, близьке до логарифмическому, але і підстроїти сітку частот під особливості сигналу. Традиційне FFT з лінійним розподілом частот використовується в цих алгоритмах як складової блок. Завдяки йому вдається досягти хорошого співвідношення якості і швидкодії.

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

AMD анонсувала SDK, де є звукова обробка - TrueAudio. У зв'язку з цим питання по вашим планам. У мене особисто поки що скептичне ставлення. Але люди кажуть, що там все добре продумано і можна мало не в реальному часі обробляти звук без затримки.
Затримка при обробці звуку необов'язково пов'язана з недоліком обчислювальної потужності. У багатьох випадках вона походить від необхідності заглядання вперед за часом. Наприклад, лімітер повинен знизити посилення до приходу піку. Або еквалайзер з лінійної фазою повинен включати затримку, необхідну для цього типу фільтрації.

У програмах iZotope для оптимізації обчислень використовуються бібліотеки Intel IPP на PC і vDSP на Mac. Вони мають широкий набір функцій і не прив'язані до конкретного типу заліза, драйверу або операційній системі. Іноді ми пишемо невеликі фрагменти коду на асемблері або вбудованому асемблері (intrinsics).

Також у версії RX 3 для розпаралелювання обчислень стали більш активно використовуватися багатоядерні процесори.

Чи є в RX механізм, що визначає затримку і зсув фази сигналу між двома звуковими доріжками, записаними одночасно з одного джерела (наприклад, двома мікрофонами з різних позицій).
Так, інструмент називається азимут-корекцією (Azimuth correction) і знаходиться в модулі канальних операцій (Channel Ops). Він поки що працює не з окремими файлами, а з лівим і правим каналами стереофайла: вирівнює затримку правого каналу щодо лівого з точністю порядку 1/100 відліку. Інструмент добре працює в тому випадку, якщо канали вже приблизно вирівняні один відносно одного і форми хвилі в лівому і правому каналах близькі. Для його застосування до пари різних доріжок потрібно створити стереофайл, де одна доріжка буде в правому каналі, а інша в лівому.

Чи можна автоматизувати виявлення і придушення низькочастотних домішок, типу 50 Гц, фону (і його гармонік) і гулу?
Низькочастотний фон можна визначати за допомогою кнопки Learn в модулі Hum. Вона автоматично встановлює потрібну частоту режекторного фільтрів. Можна також скористатися денойзером, в т. Ч. В режимі Adaptive, коли властивості фону змінюються в часі. Більш повна автоматизація зараз навряд чи можлива: для найкращих результатів потрібно вручну показати програмі, що саме потрібно видаляти.

Хочу зазначити, що, незважаючи на назву модуля Hum Removal, у багатьох випадках з придушенням шуму і фону краще справляється модуль денойзера. Це пов'язано з тим, що Hum Removal - це просто набір режекторного фільтрів, які пригнічують на певних частотах як фон, так і корисний сигнал. Оскільки фільтри гострі, то при попаданні на їх частоту корисного сигналу вони будуть помітно дзвеніти і спотворювати сигнал. Тому, коли фон сильно перетинається по частотах з корисним сигналом або містить безліч гармонік, рекомендується використовувати денойзер. Відмінність денойзера в тому, що він розрізняє сигнал і фон не тільки по частоті, як Hum Removal, а й за рівнем. Сигнал, що знаходиться на близьких частотах, але перевищує фон за рівнем, спотворюватися не буде.

Чи можна виявляти в треку мінливість ритму (швидкості обертання пластинки) і коригувати?
Ні, автоматично коригувати wowflutter в RX зараз неможливо. Це один з напрямів подальших розробок. Однак в RX 3 Advanced можна вручну намалювати криву зміни швидкості і застосувати її (модуль TimePitch, вкладка Pitch Contour).

У другій версії RX вантажиш плагін Gain, він сканує трек - і бачиш в плагіні рівень щодо 0 dB! У третій версії просто повзунок. Навіщо втратили такий потрібний функціонал плагіна Gain?
Було вирішено розбити цю функціональність на дві частини:
1. Закладка Normalize в модулі Gain - для нормалізації,
2. Вікно Waveform Statistics (Alt + D) - для вимірювання рівнів.

Дякуємо Олексія Лукіна за витрачений час і за цікаві відповіді!

Відповіді на питання читачів, prosound

Схожі статті