امروزه در عصر ارتباطات و گسترش روزافزون استفاده از شبكه های تلفن ،موبایل و اینترنت در جهان ومحدودیت پهنای باند در شبكه های مخابراتی ، كدینگ و فشرده سازی صحبت امری اجتناب ناپذیر است . در چند دهه اخیر روش های كدینگ مختلفی پدیدآمده اند ولی بهترین و پركاربردترین آنها كدك های آنالیزباسنتز هستند كه توسط Atal & Remedeدر سال 1982 معرفی شدند [2] . اخیرا مناسبترین الگوریتم برای كدینگ صحبت با كیفیت خوب در نرخ بیت های پائین و زیر 16 kbps ، روش پیشگویی خطی باتحریک كد (CELP) می باشد كه در سال 1985 توسط Schroeder & Atal معرفی شد [8] و تا كنون چندین استاندارد مهم كدینگ صحبت بر اساس CELP تعریف شده اند .
در سال 1988 CCITT برنامه ای برای استانداردسازی یک كدك 16 kbps با تاخیراندك و كیفیت بالا در برابر خطاهای كانال آغاز نمود و برای آن كاربردهای زیادی همچون شبكه PSTN ،ISDN ،تلفن تصویری و غیره در نظر گرفت . این كدك در سال 1992 توسط Chen et al. تحت عنوان LD-CELP معرفی شد[6] و بصورت استاندارد G.728 در آمد[9] و در سال 1994 مشخصات ممیز ثابت این كدك توسط ITU ارائه شد[10] . با توجه به كیفیت بالای این كدك كه در آن صحبت سنتزشده از صحبت اولیه تقریبا غیرقابل تشخیص است و كاربردهای آن در شبكه های تلفن و اینترنت و ماهواره ای در این گزارش به پیاده سازی این كدك می پردازیم .
در فصل اول به معرفی وآنالیز سیگنال صحبت پرداخته می شود و در فصل دوم روش ها و استانداردهای كدینگ بیان می شوند . در فصل سوم كدك LD-CELP را بیشتر بررسی می كنیم و در فصل چهارم شبیه سازی ممیز ثابت الگوریتم به زبان C را بیان می نمائیم. ودر پایان در فصل 5 به نحوه پیاده سازی بلادرنگ كدكG.728 بر روی پردازنده TMS320C5402 می پردازیم.
فصل 1
بررسی و مدل سازی سیگنال صحبت
1-1 –معرفی سیگنال صحبت
صحبت در اثر دمیدن هوا از ریه ها به سمت حنجره و فضای دهان تولید میشود. در طول این مسیر در انتهای حنجره، تارهای صوتی[1] قرار دارند. فضای دهان را از بعد از تارهای صوتی ، لوله صوتی[2] مینا مند كه در یک مرد متوسط حدود cm 17 طول دارد . در تولید برخی اصوات تارهای صوتی كاملاً باز هستند و مانعی بر سر راه عبور هوا ایجاد نمیكنند كه این اصوات را اصطلاحاً اصوات بی واك [3] مینامند. در دسته دیگر اصوات ، تارهای صوتی مانع خروج طبیعی هوا از حنجره میگردند كه این باعث به ارتعاش درآمدن تارها شده و هوا به طور غیر
یكنواخت و تقریباً پالس شكل وارد فضای دهان میشود. این دسته از اصوات را اصطلاحاً باواك[4] میگویند.
فركانس ارتعاش تارهای صوتی در اصوات باواك را فركانس Pitch و دوره تناوب ارتعاش تارهای صوتی را پریود Pitch مینامند. هنگام انتشار امواج هوا در لوله صوتی، طیف فركانس این امواج توسط لوله صوتی شكل میگیرد و بسته به شكل لوله ، پدیده تشدید در فركانس های خاصی رخ میدهد كه به این فركانس های تشدید فرمنت[5] میگویند.
از آنجا كه شكل لوله صوتی برای تولید اصوات مختلف، متفاوت است پس فرمنت ها برای اصوات گوناگون با هم فرق میكنند. با توجه به اینكه صحبت یک فرایند متغییر با زمان است پس پارامترهای تعریف شده فوق اعم از فرمنت ها و پریود Pitch در طول زمان تغییر میكنند به علاوه مد صحبت به طور نامنظمی از باواك به بی واك و بالعكس تغییر میكند. لوله صوتی ، همبستگی های زمان-كوتاه ، در حدود 1 ms ، درون سیگنال صحبت را در بر میگیرد. و بخش مهمی از كار كدكننده های صوتی مدل كردن لوله صوتی به صورت یک فیلتر زمان-كوتاه میباشد. همان طور كه شكل لوله صوتی نسبتاً آهسته تغییر میكند، تابع انتقال این فیلتر مدل كننده هم نیاز به تجدید[6] ، معمولاً در هر 20ms یکبارخواهد داشت.
در شكل (1-1 الف) یک قطعه صحبت باواك كه با فركانس 8KHz نمونه برداری شده است دیده میشود. اصوات باواك دارای تناوب زمان بلند به خاطر پریود Pitch هستند كه نوعاً بین 2ms تا 20ms میباشد. در اینجا پریود Pitch در حدود 8ms یا 64 نمونه است. چگالی طیف توان این قطعه از صحبت در شكل (1-1 ب) دیده میشود[3].
اصوات بی واك نتیجه تحریک نویز مانند لوله صوتی هستند و تناوب زمان- بلند اندكی را در بر دارند ، همانگونه كه در شكل های (1-1 ج) و (1-1 د) دیده میشود ولی همبستگی زمان كوتاه به خاطر لوله صوتی در آنها هنوز وجود دارد.
بطوركلی سیگنال صحبت دارای افزونگی[7] زیادی است كه ناشی از عوامل ذیل هستند:
ـ وابستگی های زمان-كوتاه : این وابستگی ها عمدتاً به كندی تغییرات صحبت با زمان و ساختار
ـ وابستگی های زمان- بلند : كه عمدتاً از طبیعت نیمه متناوب اصوات با واك و تغییرات آرام پریود Pitch ناشی میشوند.
ـتابع چگالی احتمال صحبت : علیرغم پیچیدگی آماری صحبت میتوان آن را با توابع چگالی احتمال شناخته شده تقریب زد. شكل لوله صوتی و مد تحریک آن به صورت نسبتاً آرام تغییر میكند و بنابراین صحبت را میتوان به صورت شبه ایستان در دوره های كوتاه زمانی (حدود 20ms) در نظر گرفت و با یك فرایند تصادفی ارگادیک در یک قطعه زمانی كوچك مدل نمود و طیف مشخصی برای آن در این قطعه زمانی بدست آورد.
علاوه بر افزونگی های فوق عامل مهم دیگری كه كاهش نرخ داده سیگنال صحبت را ممكن می سازد، طبیعت غیر حساس گوش انسان نسبت به بسیاری از ویژگیهای این سیگنال میباشد.
1-2- مدل سازی پیشگویی خطی
روش كدینگ پیشگویی خطی (LPC[1]) مبتنی بر مدل تولید صحبت در كد كننده های صوتی میباشد كه در اینجا در شكل (1-2) نشان داده شده است. برای استفاده از مدل لازم است كه معلوم شود سیگنال با واك است یا بیواك و اگر با واك است پریود Pitch مجاسبه گردد. تفاوت اصلی بین LPC و سایر كدكننده های صوتی در مدل كردن لوله صوتی است. در تحلیل LPC ، لوله صوتی به صورت یک فیلتر دیجیتال تمام قطب در نظر گرفته میشود.[4,1].
1-2-1- پنجره كردن سیگنال صحبت
روش LPC هنگامی دقیق است كه به سیگنالهای ایستان[2] اعمال شود، یعنی به سیگنالهایی كه رفتار آنها در زمان تغییر نمیكند. هر چند كه این موضوع در مورد صحبت صادق نیست، اما برای اینكه بتوانیم روش LPC را بكار ببریم، سیگنال صحبت را به قسمت های كوچكی بنام “فریم” تقسیم میكنیم كه این فریم ها شبه ایستان هستند. شكل (1-3) مثالی از قسمت بندی سیگنال صحبت را نشان میدهد. این قسمت بندی با ضرب كردن سیگنال صحبت S(n) ، در سیگنال پنجره W(n) انجام میشود.
[1] Linear Predictive Coding
[2] Stationary
فرم در حال بارگذاری ...