aspose.info
UK

Посібник з формату аудіо iLBC: особливості, архітектура та як відкрити файли .ilbc

Оновлено

1. Що таке аудіоформат iLBC?

The Internet Low Bitrate Codec спочатку був створений компанією Global IP Solutions (GIPS) — шведською аудіоінженерною фірмою, яку у 2010 році придбала Google. Визначений Internet Engineering Task Force у рамках RFC 3951 з інкапсуляцією RTP‑пейлоаду, описаною в RFC 3952, iLBC був розроблений спеціально для надійної передачі мови по нестабільних IP‑з’єднаннях.

Хоча сучасні веб‑браузери часто використовують кодек Opus для сучасного реального часу зв’язку, iLBC залишається важливим безкоштовним стандартом, вбудованим у корпоративні телефонні стеки, SIP‑клієнти, профілі зворотної сумісності WebRTC та застарілі VoIP‑пристрої, виготовлені Cisco, Polycom та системами Asterisk PBX.

2. Ключові характеристики iLBC

ПараметрСпецифікація
СтандартизаціяIETF RFC 3951 (Кодек), RFC 3952 (RTP‑пейлоад)
Загальні розширення файлів.ilbc, .lbc
MIME тип медіаaudio/iLBC
Частота дискретизації$8\text{ kHz}$ (вузькосмуговий)
Роздільна здатність квантування16‑бітний лінійний PCM
АудіоканалиМоно (Одноканальна мова)
Підтримувані довжини кадрів$20\text{ ms}$ режим та $30\text{ ms}$ режим
Операційні бітрейти$15.20\text{ кбіт/с}$ ($20\text{ мс}$) / $13.33\text{ кбіт/с}$ ($30\text{ мс}$)
Біти корисного навантаження за блок$304\text{ біт}$ ($20\text{ мс}$) / $400\text{ біт}$ ($30\text{ мс}$)
Ідентифікатор магічного заголовка#!iLBC20\n ($20\text{ мс}$) or #!iLBC30\n ($30\text{ мс}$)
ЛіцензуванняБез роялті (відкритий код 3‑клаузовий BSD через WebRTC)

3. Детальні особливості та архітектурний дизайн

Незалежне кодування кадрів (нульове поширення помилок)

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

iLBC усуває цю залежність. Кожен мовний кадр у iLBC кодується незалежно. Якщо пакет $N$ втрачається під час передачі, пакет $N+1$ декодується з повною акустичною достовірністю.

Два режими роботи ($20\text{ ms}$ проти $30\text{ ms}$)

Щоб надати інженерам телекомунікацій гнучке управління затримкою, iLBC визначає два обов’язкові режими роботи:

  1. $20\text{ ms}$ Режим кадру ($15.20\text{ kbit/s}$):
    • Кодує 160 аудіо зразків на кадр у 38 байт ($304\text{ bits}$).
    • Забезпечує нижчу алгоритмічну затримку буферизації, що робить його добре придатним для інтерактивних комунікацій.
  2. $30\text{ ms}$ Режим кадру ($13.33\text{ kbit/s}$):
    • Кодує 240 аудіо зразків на кадр у 50 байт ($400\text{ bits}$).
    • Знижує споживання бітів приблизно на $12%$, оптимізуючи ефективність мережевого навантаження на довгих з’єднаннях.

Розширене приховування втрати пакетів (PLC)

Коли виникають втрачені пакети, iLBC використовує синтезуючий фільтр стану змінної LPC (Linear Predictive Coding), який відновлює відсутні представлення циклів висоти тону, використовуючи граничні стани сусідніх кадрів. Замість створення клацань, цифрових вибухів або різких приглушень, втрачені голосові пакети деградують плавно.

Якість аудіо проти профілю бітрейту

За ідеальних умов мережі (0% втрати пакетів) iLBC досягає середньої оцінки сприйняття (MOS) приблизно 4.14 (з 5.0). Хоча трохи нижче, ніж у некодованого G.711 PCM ($\mu$-law при $\sim 4.3$), iLBC зберігає чіткість голосу при рівнях втрати пакетів до $5%\text{ to }10%$, де зрозумілість G.729 або G.711 суттєво падає.

4. Як відкрити та відтворити аудіофайли .ilbc

Оскільки .ilbc є спеціалізованим форматом необробленого телефонного потоку, а не універсальним контейнером медіа для споживачів (як MP3 або WAV), основні споживчі програвачі не завжди можуть його розпізнати без спеціальних кодек‑пакетів.

Метод 1: Використання Audacity (імпорт необроблених даних)

Audacity може імпортувати необроблені дампи PCM або декодовані iLBC голосові файли:

  1. Запустіть Audacity.
  2. Перейдіть до File > Import > Raw Data…
  3. Виберіть файл і встановіть кодування Signed 16-bit PCM, порядок байтів Little-endian, 1 канал (моно), а частоту дискретизації — 8000 Гц.

Метод 2: Відтворення з командного рядка за допомогою FFplay

Якщо ваша збірка FFmpeg скомпільована з розширенням libilbc:

ffplay -f ilbc sample.ilbc

Метод 3: Спеціалізовані аналізатори VoIP

Інструменти діагностики мережі, такі як Wireshark, можуть витягувати та відтворювати голосові корисні навантаження .ilbc безпосередньо з захоплених SIP/RTP сесій пакетів і відтворювати їх за допомогою вбудованої утиліти RTP Player.

5. Як створювати та конвертувати аудіофайли .ilbc

Робота з аудіо .ilbc вимагає 16‑бітного, одноканального, $8000\text{ Hz}$ вхідного аудіо.

Кодування в iLBC за допомогою FFmpeg

Щоб перетворити існуючий аудіо‑зразок у форматі .wav або .mp3 у бітовий потік .ilbc:

ffmpeg -i input_speech.wav \
  -ar 8000 \
  -ac 1 \
  -c:a libilbc \
  output_audio.ilbc
  • -ar 8000: Пересамплює аудіо до необхідної частоти 8 кГц.
  • -ac 1: Зводить багатоканальне аудіо до моно.
  • -c:a libilbc: Використовує референтний енкодер libilbc.

Вказування режиму кадру ($20\text{ ms}$ або $30\text{ ms}$)

Ви можете вибрати режим кадру, використовуючи прапорець -mode:

# Encode using 30ms mode (13.33 kbit/s)
ffmpeg -i input_speech.wav -ar 8000 -ac 1 -c:a libilbc -mode 30 output_30ms.ilbc

# Encode using 20ms mode (15.20 kbit/s)
ffmpeg -i input_speech.wav -ar 8000 -ac 1 -c:a libilbc -mode 20 output_20ms.ilbc

Декодування файлу .ilbc назад у стандартний WAV

Щоб перетворити файл .ilbc у не стиснутий WAV‑файл, який можна відтворювати будь-де:

ffmpeg -f ilbc -i voice_message.ilbc converted_audio.wav

6. Часто задавані питання (FAQ)

Q1: Яку головну проблему було створено аудіоформат iLBC, щоб вирішити?

Формат iLBC був розроблений для збереження зрозумілості мови в IP‑мережах, роблячи кожен аудіо‑кадр незалежним, що запобігає поширенню помилок втрати пакетів на наступні кадри мови.

Q2: Які два робочі бітрейти має файл .ilbc?

Потік .ilbc працює зі швидкістю $13.33\text{ kbit/s}$ при використанні кадрів $30\text{ ms}$ або $15.20\text{ kbit/s}$ при налаштуванні кадрів $20\text{ ms}$.

Q3: Чи можна використовувати формат iLBC для потокової передачі музики високої якості?

Ні, iLBC — це вузькосмуговий голосовий кодек, строго обмежений частотою дискретизації $8\text{ kHz}$, оптимізований виключно для людської мови в діапазоні від $90\text{ Hz}$ до $4000\text{ Hz}$.

Q4: Чи є аудіокодек iLBC безкоштовним щодо роялті?

Так, iLBC повністю стандартизовано згідно IETF RFC 3951 і випущено під відкритою, без роялті ліцензією BSD з трьома пунктами через проєкт WebRTC.

Q5: Як iLBC порівнюється з сучасним кодеком Opus?

Хоча iLBC забезпечував приховування втрати пакетів для вузькосмугового VoIP у ранніх широкосмугових мережах, сучасний кодек Opus підтримує динамічні бітрейти, повно‑смугове ($48\text{ kHz}$) аудіо та нижчу алгоритмічну затримку.


7. Офіційні специфікації та посилання