1. Kas ir iLBC audio formāts?
The Interneta zemas bitrežas kodeks was originally created by Global IP Solutions (GIPS)—a Swedish audio engineering firm acquired by Google in 2010. Defined by the Internet Engineering Task Force under RFC 3951 with RTP payload encapsulation outlined in RFC 3952, iLBC was designed specifically for robust speech transmission over unstable IP links.
While contemporary web browsers often use the Opus codec for modern real-time communication, iLBC remains a pivotal, royalty-free standard embedded in enterprise telephony stacks, SIP clients, WebRTC backward compatibility profiles, and legacy VoIP appliances manufactured by Cisco, Polycom, and Asterisk PBX systems.
2. Galvenās iLBC īpašības
| Parametrs | Specifikācija |
|---|---|
| Standardizācija | IETF RFC 3951 (Kodeks), RFC 3952 (RTP slodzes datu) |
| Kopējie failu paplašinājumi | .ilbc, .lbc |
| MIME mediju tips | audio/iLBC |
| Paraugu frekvence | $8\text{ kHz}$ (šaurjosla) |
| Kvantizācijas izšķirtspēja | 16-bit lineārais PCM |
| Audio kanāli | Mono (Vienkanāla runa) |
| Atbalstītie kadru garumi | $20\text{ ms}$ režīms un $30\text{ ms}$ režīms |
| Operatīvās bitātrādes | $15.20\text{ kbit/s}$ ($20\text{ ms}$) / $13.33\text{ kbit/s}$ ($30\text{ ms}$) |
| Nolādējuma biti uz bloku | $304\text{ bits}$ ($20\text{ ms}$) / $400\text{ bits}$ ($30\text{ ms}$) |
| Burvju galvenes identifikators | #!iLBC20\n ($20\text{ ms}$) or #!iLBC30\n ($30\text{ ms}$) |
| Licencēšana | Bezmaksas (3-pakāpju BSD atvērtā pirmkoda licence caur WebRTC) |
3. Padziļinātas īpašības un arhitektūras dizains
Neatkarīga kadru kodēšana (Nulles kļūdu izplatīšana)
Tradicionāli runas saspiešanas formāti, piemēram, G.729 un CELP-ģimenes kodeki, izmanto inter-frame prediction, kur katrs audio rāmis ir atkarīgs no stāvokļa informācijas un pitch predictor vektoriem no iepriekšējā rāmja. Ja pakete tiek zaudēta pārpildītā tīklā, trūkstošais stāvoklis izplatās uz priekšu, izkropļojot turpmāko audio vairākus simtus milisekunžu.
iLBC likvidē šo atkarību. Katrs runas rāmis iLBC tiek kodēts neatkarīgi. Ja pakete $N$ tiek zaudēta pārvadāšanas laikā, pakete $N+1$ atkodējas ar pilnu akustisko precizitāti.
Divi darbības režīmi ($20\text{ ms}$ pret $30\text{ ms}$)
Lai telekomunikāciju inženieriem nodrošinātu elastīgu latentuma pārvaldību, iLBC definē divus obligātus darbības režīmus:
- $20\text{ ms}$ Rāmu režīms ($15.20\text{ kbit/s}$):
- Kodē 160 audio paraugus uz kadru 38 baitos ($304\text{ bits}$).
- Nodrošina zemāku algoritmisko buferēšanas latentumu, padarot to īpaši piemērotu interaktīvai komunikācijai.
- $30\text{ ms}$ Rāmu režīms ($13.33\text{ kbit/s}$):
- Kodē 240 audio paraugus uz kadru 50 baitos ($400\text{ bits}$).
- Samazina bitu patēriņu aptuveni $12%$, optimizējot tīkla slodzes efektivitāti garajiem savienojumiem.
Uzlabota paketes zuduma maskēšana (PLC)
Kad notiek zaudēti paketes, iLBC izmanto stāvokļa mainīgā LPC (Lineārā prediktīvā kodēšana) sintēzes filtru, kas rekonstruē trūkstošas pitch-cikla attēlojumus, izmantojot robežstāvokļus no blakus kadriem. Tā vietā, lai radītu klikšķus, digitālus sprādzienus vai asus klusinājumus, zaudētās balss paketes pakāpeniski degradējas.
Audio kvalitāte pret bitreita profilu
Pie ideāliem tīkla apstākļiem (0% paketes zuduma), iLBC sasniedz vidējo viedokļa vērtējumu (MOS) aptuveni 4.14 (no 5.0). Lai gan tas ir nedaudz zem nekompresētā G.711 PCM ($\mu$-law pie $\sim 4.3$), iLBC saglabā balss skaidrību pat pie paketes zuduma līmeņa līdz $5%\text{ līdz }10%$, kur G.729 vai G.711 saprotamība krasi samazinās.
4. Kā atvērt un atskaņot .ilbc audio failus
Tā kā .ilbc ir specializēts neapstrādāts telefonijas straumes formāts, nevis vispārējais patērētāju multivides konteineris (piemēram, MP3 vai WAV), galvenie patērētāju atskaņotāji ne vienmēr spēj to noteikt bez īpašiem kodeku pakotnēm.
Metode 1: Izmantojot Audacity (importēt neapstrādātus datus)
Audacity var importēt neapstrādātus PCM izmešus vai atkodētus iLBC balss failus:
- Palaidiet Audacity.
- Navigējiet uz File > Import > Raw Data…
- Izvēlieties failu un iestatiet kodējumu uz Signed 16-bit PCM, Baitu kārtību uz Little-endian, 1 kanāls (Mono), un paraugfrekvenci uz 8000 Hz.
Metode 2: Komandrindas atskaņošana, izmantojot FFplay
Ja jūsu FFmpeg būvējums ir kompilēts ar libilbc paplašinājumu:
ffplay -f ilbc sample.ilbc
Metode 3: Specializēti VoIP analizatori
Tīkla diagnostikas rīki, piemēram, Wireshark, var izvilkt un rekonstruēt .ilbc balss slodzes tieši no noķertām SIP/RTP paketes sesijām un atskaņot tās, izmantojot iebūvēto RTP Player utilītu.
5. Kā izveidot un konvertēt .ilbc audio failus
Darbojoties ar .ilbc audio, nepieciešams 16-bitu, vienkanālu, $8000\text{ Hz}$ ievades audio.
Kodēšana uz iLBC, izmantojot FFmpeg
Lai esošu .wav vai .mp3 audio paraugu pārveidotu par .ilbc bitplūsmu:
ffmpeg -i input_speech.wav \
-ar 8000 \
-ac 1 \
-c:a libilbc \
output_audio.ilbc
-ar 8000: Pārparaugo audio uz nepieciešamo 8 kHz frekvenci.-ac 1: Samazina daudzkanālu audio uz mono.-c:a libilbc: Izmantolibilbcatsauces enkodētāju.
Rāmju režīma norādīšana ($20\text{ ms}$ vai $30\text{ ms}$)
Jūs varat izvēlēties kadru režīmu, izmantojot -mode karogu:
# 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 faila dekodēšana atpakaļ uz standarta WAV
Lai .ilbc failu pārveidotu par nekompresētu WAV failu, kas atskaņojams jebkurā vietā:
ffmpeg -f ilbc -i voice_message.ilbc converted_audio.wav
6. Biežāk uzdotie jautājumi (BUJ)
J1: Kāda galvenā problēma tika radīta, lai iLBC audio formāts to atrisinātu?
iLBC formāts tika izstrādāts, lai saglabātu runas saprotamību IP tīklos, padarot katru audio kadru neatkarīgu, novēršot paketes zuduma kļūdu izplatīšanos uz turpmākajiem runas kadriem.
J2: Kādas ir divas operatīvās bitātrās .ilbc failam?
.ilbc plūsma darbojas vai nu $13.33\text{ kbit/s}$, lietojot $30\text{ ms}$ kadrus, vai $15.20\text{ kbit/s}$, ja konfigurēta $20\text{ ms}$ kadriem.
J3: Vai iLBC formātu var izmantot augstas kvalitātes mūzikas straumēšanai?
Nē, iLBC ir šaurā joslas runas kodeks, stingri ierobežots līdz $8\text{ kHz}$ paraugu ņemšanas frekvencei, optimizēts tikai cilvēka runai diapazonā no $90\text{ Hz}$ līdz $4000\text{ Hz}$.
J4: Vai iLBC audio kodeks ir bez maksas licences?
Jā, iLBC ir pilnībā standartizēts saskaņā ar IETF RFC 3951 un izlaists kā atvērtā koda, bezlicencēšanas maksas 3-punktu BSD licence caur WebRTC projektu.
J5: Kā iLBC salīdzina ar mūsdienīgo Opus kodeku?
Lai gan iLBC nodrošināja paketes zuduma maskēšanu šaurā joslas VoIP agrīnajos platjoslas tīklos, mūsdienu Opus kodeks atbalsta dinamiskus bitu pārraides ātrumus, pilnas joslas ($48\text{ kHz}$) audio un zemāku algoritmisko latentumu.
7. Oficiālās specifikācijas un atsauces
- IETF RFC 3951 specifikācija: Interneta zemas bitu pārraides kodeks (iLBC) runas un audio standarts
- IETF RFC 3952 slodzes formāts: Reālā laika transporta protokola (RTP) slodzes formāts iLBC
- WebRTC atvērtā koda projekts: WebRTC kodeka licencēšana & iLBC īstenošana
- FFmpeg kodeka dokumentācija: FFmpeg libilbc integrācijas vadlīnijas