कोड-एक्साइटेड लीनियर प्रेडिक्शन

कोड-एक्साइटेड लीनियर प्रेडिक्शन (सीईएलपी) लीनियर प्रेडिक्टिव कोडिंग स्पीच कोडिंग एल्गोरिदम है जिसे मूल रूप से 1985 में मैनफ्रेड आर. श्रोएडर और बिष्णु एस. अटल द्वारा प्रस्तावित किया गया था। उस समय, यह उपस्थित कम बिट-रेट एल्गोरिदम की तुलना में अधिक उत्तम गुणवत्ता प्रदान करता था, जैसे कि रेसीड्यूल-एक्साइटेड लीनियर प्रेडिक्शन (आरईएलपी) और लीनियर प्रेडिक्टिव कोडिंग (एलपीसी) वोकोडर्स (उदाहरण के लिए, एफएस-1015) है। बीजगणितीय सीईएलपी, रिलैक्स्ड सीईएलपी, कम-विलंब सीईएलपी और वेक्टर सम एक्साइटेड लीनियर प्रेडिक्शन जैसे इसके वेरिएंट के साथ, यह वर्तमान में सबसे व्यापक रूप से उपयोग किया जाने वाला स्पीच कोडिंग एल्गोरिदम है। इसका उपयोग एमपीईजी-4 ऑडियो स्पीच कोडिंग में भी किया जाता है। सीईएलपी सामान्यतः एल्गोरिदम के वर्ग के लिए सामान्य शब्द के रूप में उपयोग किया जाता है, न कि किसी विशेष कोडेक के लिए उपयोग किया जाता है।

पृष्ठभूमि
सीईएलपी एल्गोरिथ्म चार मुख्य विचारों पर आधारित है:
 * लीनियर प्रेडिक्शन (एलपी) के माध्यम से स्पीच प्रोडक्शन के सोर्स-फ़िल्टर मॉडल का उपयोग करना (टेक्स्टबुक स्पीच कोडिंग एल्गोरिदम देखें)।
 * एलपी मॉडल के इनपुट (उत्तेजना) के रूप में अनुकूली और निश्चित कोडबुक का उपयोग करना।
 * अवधारणात्मक रूप से वेटेड डोमेन में क्लोज्ड-लूप में परिक्षण करना।
 * वेक्टर परिमाणीकरण (वीक्यू) प्रारम्भ करना।

1983 में श्रोएडर और अटल द्वारा सिम्युलेटेड मूल एल्गोरिदम को क्रे-1 सुपरकंप्यूटर पर चलाने पर स्पीच के 1 सेकंड को एनकोड करने के लिए 150 सेकंड की आवश्यकता होती थी। तब से, कोडबुक को प्रारम्भ करने के अधिक कुशल विधियों और कंप्यूटिंग क्षमताओं के सुधार ने मोबाइल फोन जैसे एम्बेडेड उपकरणों में एल्गोरिदम को चलाना संभव बना दिया है।

सीईएलपी डिकोडर
सीईएलपी की काम्प्लेक्स एन्कोडिंग प्रक्रिया की परिक्षण करने से पहले हम यहां डिकोडर का परिचय देते हैं। चित्र 1 सामान्य सीईएलपी डिकोडर का वर्णन करता है। उत्तेजना निश्चित (a.k.a. स्टोकेस्टिक या इनोवेशन) और अनुकूली (a.k.a. पिच) कोडबुक से योगदान को जोड़कर उत्पन्न होती है:


 * $$e[n]=e_f[n]+e_a[n]\,$$

जहाँ $$e_{f}[n]$$ निश्चित (a.k.a. स्टोकेस्टिक या इनोवेशन) कोडबुक योगदान है और $$e_{a}[n]$$ अनुकूली (पिच) कोडबुक योगदान है। निश्चित कोडबुक वेक्टर परिमाणीकरण शब्दकोश है जो कोडेक में (स्पष्ट रूप से या स्पष्ट रूप से) हार्ड-कोडित है। यह कोडबुक बीजगणितीय (एसीईएलपी) हो सकती है या स्पष्ट रूप से संग्रहीत की जा सकती है (उदाहरण के लिए स्पीक्स)। अनुकूली कोडबुक में प्रविष्टियों में उत्तेजना के विलंबित संस्करण सम्मिलित हैं। इससे आवधिक संकेतों, जैसे वोइस साउंड को कुशलतापूर्वक कोड करना संभव हो जाता है।

उत्तेजना को आकार देने वाले फ़िल्टर में फॉर्म का ऑल-पोल मॉडल $$1/A(z)$$ होता है, जहाँ $$A(z)$$ इसे प्रेडिक्शन फ़िल्टर कहा जाता है और इसे लीनियर प्रेडिक्शन (लेविंसन-डर्बिन एल्गोरिदम) का उपयोग करके प्राप्त किया जाता है। ऑल-पोल फ़िल्टर का उपयोग किया जाता है क्योंकि यह ह्यूमन वोकल पथ का उत्तम प्रतिनिधित्व करता है और क्योंकि इसकी गणना करना सरल है।

सीईएलपी एनकोडर
सीईएलपी के पीछे मुख्य सिद्धांत को विश्लेषण-दर-संश्लेषण (एबीएस) कहा जाता है और इसका तात्पर्य है कि एन्कोडिंग (विश्लेषण) क्लोज्ड लूप में डिकोडेड (संश्लेषण) सिग्नल को अवधारणात्मक रूप से अनुकूलित करके किया जाता है। सिद्धांत रूप में, सबसे उत्तम सीईएलपी स्ट्रीम सभी संभावित बिट संयोजनों को परिक्षण करके और सबसे उत्तम साउंड डिकोडेड सिग्नल उत्पन्न करने वाले को चयन करके तैयार किया जाएगा। यह स्पष्ट रूप से दो कारणों से व्यवहार में संभव नहीं है: आवश्यक काम्प्लेक्स वर्तमान में उपलब्ध किसी भी हार्डवेयर से परे है और "सर्वोत्तम साउंड" चयन पैरामीटर का तात्पर्य ह्यूमन लिसनर से है।

सीमित कंप्यूटिंग संसाधनों का उपयोग करके वास्तविक समय एन्कोडिंग प्राप्त करने के लिए, सीईएलपी परिक्षण को सरल अवधारणात्मक वेट फ़ंक्शन का उपयोग करके छोटी, अधिक प्रबंधनीय, अनुक्रमिक परिक्षण में विभाजित किया गया है। सामान्यतः, एन्कोडिंग निम्नलिखित क्रम में की जाती है:


 * लीनियर प्रेडिक्टिव कोडिंग (एलपीसी) की गणना और मात्रा निर्धारित की जाती है, सामान्यतः लाइन स्पेक्ट्रल पेयर्स (एलएसपी) के रूप में है।
 * अनुकूली (पिच) कोडबुक का परिक्षण किया जाता है और उसका योगदान हटा दिया जाता है।
 * निश्चित (नवाचार) कोडबुक का परिक्षण किया जाता है।

नॉइज़ वेटिंग
अधिकांश (यदि सभी नहीं) आधुनिक ऑडियो कोडेक्स कोडिंग नॉइज़ को आकार देने का प्रयास करते हैं जिससे यह प्रायः आवृत्ति क्षेत्रों में दिखाई दे जहां इअर इसको ज्ञात नहीं कर सकते है। उदाहरण के लिए, इअर स्पेक्ट्रम के उन भागों में नॉइज़ के प्रति अधिक सहनशील होते है जो तीव्र होते हैं और इसके विपरीत होते हैं। इसीलिए सरल द्विघात एरर को कम करने के अतिरिक्त, सीईएलपी अवधारणात्मक रूप से वेटेड डोमेन के लिए एरर को कम करता है। वेटिंग फ़िल्टर W(z) सामान्यतः बैंडविड्थ विस्तार के उपयोग से एलपीसी फ़िल्टर से प्राप्त होता है:


 * $$W(z) = \frac{A(z/\gamma_1)}{A(z/\gamma_2)}$$

जहाँ $$\gamma_1 > \gamma_2$$

यह भी देखें

 * एमपीईजी-4 भाग 3 (एमपीईजी-4 ऑडियो ऑब्जेक्ट प्रकार के रूप में सीईएलपी)
 * G.728 - कम-विलंब कोड एक्साइटेड लीनियर प्रेडिक्शन का उपयोग करके 16 kbit/s पर स्पीच की कोडिंग
 * G.718 - दो-चरण कोडिंग संरचना में बैंड (50-6400 Hz) के लिए निचली दो परतों के लिए सीईएलपी का उपयोग करता है
 * G.729.1 - तीन-चरण कोडिंग संरचना में निचले बैंड (50-4000 Hz) के लिए सीईएलपी कोडिंग का उपयोग करता है
 * ऑडियो कोडिंग प्रारूपों की तुलना
 * सीईएलटी संबंधित ऑडियो कोडेक है जो सीईएलपी से कुछ विचार उधार लेता है।

संदर्भ

 * B.S. Atal, "The History of Linear Prediction," IEEE Signal Processing Magazine, vol. 23, no. 2, March 2006, pp. 154–161.
 * M. R. Schroeder and B. S. Atal, "Code-excited linear prediction (सीईएलपी): high-quality speech at very low bit rates," in Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), vol. 10, pp. 937–940, 1985.

बाहरी संबंध

 * This article is based on a paper presented at Linux.Conf.Au
 * Some parts based on the Speex codec manual
 * reference implementations of सीईएलपी 1016A (सीईएलपी 3.2a) and LPC 10e.
 * Linear Predictive Coding (LPC)

चयनित रीडिंग

 * सीईएलपी कोडिंग का परिचय
 * वाक् प्रसंस्करण: एलपीसी विश्लेषण और संश्लेषण का सिद्धांत