aspose.info
BG

Ръководство за аудио формат iLBC: Характеристики, архитектура и как да отворим .ilbc файлове

Обновено

1. Какъв е аудио форматът iLBC?

The Internet Low Bitrate Codec беше първоначално създаден от Global IP Solutions (GIPS) — шведска фирма за аудио инженеринг, придобита от Google през 2010 г. Дефиниран от 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{ kbit/s}$ ($20\text{ ms}$) / $13.33\text{ kbit/s}$ ($30\text{ ms}$)
Битове на полезния товар на блок$304\text{ бита}$ ($20\text{ ms}$) / $400\text{ бита}$ ($30\text{ ms}$)
Идентификатор на магическа заглавка#!iLBC20\n ($20\text{ ms}$) или #!iLBC30\n ($30\text{ ms}$)
ЛицензиранеБезплатен (3-клауза BSD отворен код чрез WebRTC)

3. Подробни функции и архитектурен дизайн

Независимо кодиране на кадри (Нулево разпространение на грешки)

Традиционните формати за компресия на реч, като G.729 и кодеци от семейството CELP, използват inter-frame prediction, при което всеки аудио кадър зависи от информация за състоянието и вектори на предиктора на височината от предишния кадър. Ако пакет се загуби в претоварена мрежа, липсващото състояние се разпространява напред, като изкривява последващия аудио за няколко стотин милисекунди.

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 Hz.

Метод 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 kHz.
  • -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 и е издаден под отворен код, безплатен от роялти 3‑клауза BSD лиценз чрез проекта WebRTC.

Q5: Как се сравнява iLBC с модерния кодек Opus?

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


7. Официални спецификации и референции