১. iLBC অডিও ফরম্যাট কী?
দ্য Internet Low Bitrate Codec মূলত তৈরি করা হয়েছিল Global IP Solutions (GIPS) দ্বারা—একটি সুইডিশ অডিও ইঞ্জিনিয়ারিং ফার্ম যা ২০১০ সালে গুগল দ্বারা অধিগৃহীত হয়। ইন্টারনেট ইঞ্জিনিয়ারিং টাস্ক ফোর্স দ্বারা RFC 3951 এর অধীনে সংজ্ঞায়িত এবং RTP পে-লোড এনক্যাপসুলেশন RFC 3952 তে বর্ণিত, iLBC বিশেষভাবে অস্থিতিশীল IP লিঙ্কের উপর দৃঢ় স্পিচ ট্রান্সমিশনের জন্য ডিজাইন করা হয়েছিল।
যদিও আধুনিক ওয়েব ব্রাউজারগুলো প্রায়ই রিয়েল-টাইম যোগাযোগের জন্য Opus কোডেক ব্যবহার করে, iLBC এখনও একটি গুরুত্বপূর্ণ, রয়্যালটি-ফ্রি স্ট্যান্ডার্ড হিসেবে এন্টারপ্রাইজ টেলিফোনি স্ট্যাক, SIP ক্লায়েন্ট, WebRTC ব্যাকওয়ার্ড কম্প্যাটিবিলিটি প্রোফাইল এবং Cisco, Polycom, এবং Asterisk PBX সিস্টেম দ্বারা নির্মিত লিগেসি VoIP ডিভাইসগুলিতে সংযুক্ত রয়েছে।
২. 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{ bits}$ ($20\text{ ms}$) / $400\text{ bits}$ ($30\text{ ms}$) |
| ম্যাজিক হেডার শনাক্তকারী | #!iLBC20\n ($20\text{ ms}$) or #!iLBC30\n ($30\text{ ms}$) |
| লাইসেন্সিং | রয়্যালটি-ফ্রি (৩-ধারা BSD ওপেন সোর্স WebRTC মাধ্যমে) |
৩. গভীর বৈশিষ্ট্য ও আর্কিটেকচারাল ডিজাইন
স্বাধীন ফ্রেম এনকোডিং (শূন্য ত্রুটি প্রচার)
প্রচলিত স্পিচ কম্প্রেশন ফরম্যাট যেমন G.729 এবং CELP-পরিবারের কোডেকগুলি ইন্টার-ফ্রেম প্রেডিকশন ব্যবহার করে, যেখানে প্রতিটি অডিও ফ্রেম পূর্ববর্তী ফ্রেমের স্টেট তথ্য এবং পিচ প্রেডিক্টর ভেক্টরের উপর নির্ভরশীল। যদি একটি প্যাকেট ভিড়পূর্ণ নেটওয়ার্কে হারিয়ে যায়, তখন সেই অনুপস্থিত স্টেটটি সামনে প্রসারিত হয়, ফলে কয়েকশো মিলিসেকেন্ডের জন্য ডাউনস্ট্রিম অডিও বিকৃত হয়ে যায়।
iLBC এই নির্ভরতা দূর করে। iLBC-তে প্রতিটি স্পিচ ফ্রেম স্বাধীনভাবে এনকোড করা হয়। যদি প্যাকেট $N$ ট্রান্সিটের সময় হারিয়ে যায়, প্যাকেট $N+1$ পূর্ণ শব্দগত নির্ভুলতার সাথে ডিকোড হয়।
দ্বৈত অপারেটিং মোড ($20\text{ ms}$ বনাম $30\text{ ms}$)
টেলিকমিউনিকেশন ইঞ্জিনিয়ারদের নমনীয় লেটেন্সি ব্যবস্থাপনা প্রদান করতে, iLBC দুটি বাধ্যতামূলক অপারেটিং মোড সংজ্ঞায়িত করে:
- $20\text{ ms}$ ফ্রেম মোড ($15.20\text{ kbit/s}$):
- প্রতি ফ্রেমে 160টি অডিও স্যাম্পলকে 38 বাইটে ($304\text{ bits}$) এনকোড করে।
- কম অ্যালগরিদমিক বাফারিং লেটেন্সি প্রদান করে, যা ইন্টারেক্টিভ যোগাযোগের জন্য উপযুক্ত করে তোলে।
- $30\text{ ms}$ ফ্রেম মোড ($13.33\text{ kbit/s}$):
- প্রতি ফ্রেমে 240টি অডিও স্যাম্পলকে 50 বাইটে ($400\text{ bits}$) এনকোড করে।
- প্রায় $12%$ বিট ব্যবহার কমায়, দীর্ঘ দূরত্বের সংযোগে নেটওয়ার্ক পে-লোড দক্ষতা অপ্টিমাইজ করে।
উন্নত প্যাকেট লস কনসিলিয়েশন (PLC)
যখন প্যাকেট ড্রপ হয়, iLBC একটি স্টেট-ভেরিয়েবল LPC (লিনিয়ার প্রেডিক্টিভ কোডিং) সিন্থেসিস ফিল্টার ব্যবহার করে যা পার্শ্ববর্তী ফ্রেমের বাউন্ডারি স্টেট ব্যবহার করে অনুপস্থিত পিচ-সাইকেল উপস্থাপনাগুলি পুনর্গঠন করে। ক্লিক, ডিজিটাল পপ বা তীব্র মিউট তৈরি করার পরিবর্তে, ড্রপ হওয়া ভয়েস প্যাকেটগুলি মসৃণভাবে অবনতি হয়।
অডিও গুণমান বনাম বিটরেট প্রোফাইল
আদর্শ নেটওয়ার্ক শর্তে (০% প্যাকেট লস), iLBC প্রায় ৪.১৪ (৫.০ এর মধ্যে) গড় মতামত স্কোর (MOS) অর্জন করে। যদিও এটি অকম্প্রেসড G.711 PCM ($\mu$-law at $\sim 4.3$) এর চেয়ে সামান্য কম, iLBC প্যাকেট লস হার $৫%\text{ to }১০%$ পর্যন্ত উচ্চ হলেও কণ্ঠের স্বচ্ছতা বজায় রাখে, যেখানে G.729 বা G.711 এর বোধগম্যতা উল্লেখযোগ্যভাবে হ্রাস পায়।
৪. কীভাবে .ilbc অডিও ফাইল খুলবেন এবং চালাবেন
কারণ .ilbc একটি বিশেষায়িত রaw টেলিফোনি স্ট্রিম ফরম্যাট, সাধারণ-উদ্দেশ্য ভোক্তা মিডিয়া কন্টেইনার (যেমন MP3 বা WAV) নয়, তাই প্রধানধারার ভোক্তা প্লেয়ারগুলি এটি নিবেদিত কোডেক প্যাক ছাড়া সবসময় সনাক্ত করতে পারে না।
পদ্ধতি ১: Audacity ব্যবহার করে (কাঁচা ডেটা ইম্পোর্ট করুন)
Audacity রaw PCM ডাম্প বা ডিকোডেড iLBC ভয়েস ফাইল ইম্পোর্ট করতে পারে:
- Audacity চালু করুন।
- File > Import > Raw Data… এ যান।
- ফাইলটি নির্বাচন করুন এবং এনকোডিংকে Signed 16-bit PCM, বাইট অর্ডারকে Little-endian, 1 Channel (Mono), এবং স্যাম্পল রেটকে 8000 Hz এ সেট করুন।
পদ্ধতি ২: FFplay এর মাধ্যমে কমান্ড-লাইন প্লেব্যাক
যদি আপনার FFmpeg বিল্ড libilbc এক্সটেনশন দিয়ে কম্পাইল করা থাকে:
ffplay -f ilbc sample.ilbc
পদ্ধতি ৩: নিবেদিত VoIP বিশ্লেষক
নেটওয়ার্ক ডায়াগনস্টিক টুলস যেমন Wireshark ক্যাপচার করা SIP/RTP প্যাকেট সেশনের থেকে সরাসরি .ilbc ভয়েস পে-লোড বের করে এবং পুনর্গঠন করতে পারে, এবং বিল্ট-ইন RTP Player ইউটিলিটি মাধ্যমে সেগুলি প্লে করতে পারে।
৫. কীভাবে .ilbc অডিও ফাইল তৈরি এবং রূপান্তর করবেন
.ilbc অডিও নিয়ে কাজ করতে 16-বিট, একক-চ্যানেল, $8000\text{ Hz}$ ইনপুট অডিও প্রয়োজন।
FFmpeg ব্যবহার করে iLBC এনকোডিং
একটি বিদ্যমান .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
৬. প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)
প্রশ্ন ১: iLBC অডিও ফরম্যাটটি কোন প্রধান সমস্যার সমাধানের জন্য তৈরি করা হয়েছিল?
iLBC ফরম্যাটটি IP নেটওয়ার্ক জুড়ে বক্তৃতার বোধগম্যতা বজায় রাখতে ডিজাইন করা হয়েছে, প্রতিটি অডিও ফ্রেমকে স্বতন্ত্র করে, প্যাকেট লসের ত্রুটি পরবর্তী বক্তৃতা ফ্রেমে ছড়িয়ে পড়া রোধ করে।
প্রশ্ন ২: একটি .ilbc ফাইলের দুটি অপারেশনাল বিটরেট কী?
একটি .ilbc স্ট্রিম হয় $13.33\text{ kbit/s}$ যখন $30\text{ ms}$ ফ্রেম ব্যবহার করা হয়, অথবা $15.20\text{ kbit/s}$ যখন $20\text{ ms}$ ফ্রেমের জন্য কনফিগার করা হয়।
প্রশ্ন ৩: কি iLBC ফরম্যাটটি উচ্চ-ফিডেলিটি সঙ্গীত স্ট্রিমিংয়ের জন্য ব্যবহার করা যেতে পারে?
না, iLBC একটি ন্যারোব্যান্ড স্পিচ কোডেক যা কঠোরভাবে $8\text{ kHz}$ স্যাম্পলিং রেটের মধ্যে সীমাবদ্ধ, এবং শুধুমাত্র $90\text{ Hz}$ থেকে $4000\text{ Hz}$ পর্যন্ত মানব স্পিচের জন্য অপ্টিমাইজ করা হয়েছে।
প্রশ্ন ৪: iLBC অডিও কোডেক কি রয়্যালটি-ফ্রি?
হ্যাঁ, iLBC সম্পূর্ণভাবে IETF RFC 3951 এর অধীনে মানসম্মত এবং WebRTC প্রকল্পের মাধ্যমে একটি ওপেন-সোর্স, রয়্যালটি-ফ্রি ৩-ধারা BSD লাইসেন্সের অধীনে প্রকাশিত হয়েছে।
প্রশ্ন ৫: iLBC আধুনিক Opus কোডেকের তুলনায় কীভাবে তুলনা করা যায়?
যদিও iLBC প্রাথমিক ব্রডব্যান্ড নেটওয়ার্কে ন্যারোব্যান্ড VoIP এর জন্য প্যাকেট-লস কনসিলিয়েশন প্রদান করত, আধুনিক Opus কোডেক ডাইনামিক বিটরেট, ফুল-ব্যান্ড ($48\text{ kHz}$) অডিও, এবং কম অ্যালগরিদমিক লেটেন্সি সমর্থন করে।
৭. অফিসিয়াল স্পেসিফিকেশন ও রেফারেন্স
- IETF RFC 3951 স্পেসিফিকেশন: ইন্টারনেট লো বিট রেট কোডেক (iLBC) স্পিচ এবং অডিও স্ট্যান্ডার্ড
- IETF RFC 3952 পেলোড ফরম্যাট: রিয়েল-টাইম ট্রান্সপোর্ট প্রোটোকল (RTP) iLBC এর জন্য পেলোড ফরম্যাট
- WebRTC ওপেন সোর্স প্রকল্প: WebRTC কোডেক লাইসেন্সিং ও iLBC ইমপ্লিমেন্টেশন
- FFmpeg কোডেক ডকুমেন্টেশন: FFmpeg libilbc সংযোজন নির্দেশিকা