الگوریتم پیشبینی خطی چند هیجانی
الگوریتم پیشبینی خطی چند هیجانی (Multi-Excited Linear Prediction (MELP))
پیشبینی خطی چند هیجانی (Multi-Excited Linear Prediction)، به اختصار MELP، یک تکنیک فشردهسازی گفتار است که در آن از ترکیب مدلسازی خطی (Linear Prediction) و مدلسازی چند هیجانی (Multi-Excited Modeling) برای فشردهسازی و بازسازی سیگنالهای گفتار استفاده میشود.
در MELP، از تکنیک خطی پیشبینی استفاده میشود که با استفاده از تاریخچه نمونههای گفتار، نمونههای آیندهی گفتار را تخمین میزند. سپس از مدلسازی چند هیجانی استفاده میشود تا منبع چند هیجانیدهندههای مختلف برای تولید صوت استفاده شود. این منابع میتوانند نمایانکنندههای مختلف گفتار باشند و تنوع بیشتری به تولید گفتار فشردهشده بدهند.
از مزیتهای MELP نسبت به روشهای سنتی پیشبینیگر خطی، امکان تولید گفتار با کیفیت بالا با نرخ بیت پایینتر است. این ویژگی آن را مناسب برای ارتباطات با پهنای باند محدود، مثل ارتباطات ماهوارهای، VoIP و دیگر سیستمهای ارتباطات زیرسطحی میکند. همچنین، با توجه به تنوع استفادهشده در منابع چند هیجانیدهنده، میتواند به عنوان راهحلی بهینه برای کاربردهای نظامی و ارتباطات در محیطهای پرسو استفاده شود.
دانلود کد C الگوریتم MELP | دانلود کد متلب الگوریتم MELP
الگوریتم MELP (Multi-Excited Linear Prediction) برای کاهش نرخ بیت گفتار مناسب است و معمولاً در کاربردهایی که نیاز به کاهش پهنای باند دارند مورد استفاده قرار میگیرد. این الگوریتم از نوع فشردهسازی گفتار با کیفیت نسبتاً مناسب است و برای برخی زبانها به خوبی عمل میکند. اصول عملکرد MELP بر اساس ویژگیهای عمومی گفتار انسان، مانند خصوصیات فرکانس طیفی و نحوهی تولید صوت توسط تاریخچههای صوتی، تنظیم شده است. به همین دلیل، معمولاً MELP به خوبی برای زبانهای مختلف کار میکند و برای فشردهسازی گفتار به نرخهای بیت پایین استفاده میشود.
اما باید توجه داشت که هر زبان دارای ویژگیهای خاص خود است و اگر الگوریتم MELP در یک زبان خاص به خوبی عمل میکند، ممکن است برای زبانهای دیگر به همان اندازه مناسب نباشد. برای هر زبان، نیاز به تنظیمات و پیکربندی مناسب الگوریتم MELP و تستهای کیفیت مرتبط وجود دارد تا مطمئن شویم که عملکرد آن در هر زبان بهینه است. به طور کلی، الگوریتم MELP به عنوان یک الگوریتم فشردهسازی گفتار، به طور عمومی مناسب برای بسیاری از زبانهاست، اما بهتر است قبل از استفاده در هر زبان خاص، آزمایشها و تحلیلهای کیفیت مرتبط انجام شود تا مطمئن شویم که نتایج مناسبی به دست میآید.
ادامهارتباطات زیرسطحی (Subsurface Communications):
ارتباطات زیرسطحی (Subsurface Communications) به ارتباطاتی اطلاق میشود که در زیر سطح زمین یا زیر آب انجام میشود. این ارتباطات به طور عمده در محیطهای زیر سطحی مثل خاک، آب، مناطق زیر زمینی و تونلها بکار میروند. محیطهای زیرسطحی دارای خصوصیات و چالشهای خاصی هستند که ارتباطات را با آنها تفاوت میدهد. به عنوان مثال، آب و خاک همچنین عاملهای جذب و تضعیف سیگنالها هستند که میتواند بر کیفیت و دامنه انتقال اطلاعات تأثیر بگذارد. ارتباطات زیرسطحی در کاربردهای مختلفی مورد استفاده قرار میگیرند. به عنوان مثال، در کاربردهای مخابراتی، ارتباطات زیرسطحی میتواند برای ارتباطات زیر زمینی در تونلها، ارتباطات زیر آبی بین زیردریاییها و ارتباطات زیر زمینی در معادن استفاده شود. همچنین، ارتباطات زیرسطحی در کاربردهای محیطی مانند محیط زیر آب در برنامههای نظامی، ارتباطات زیر خاکی در کنترل پیمانکاری و زیرزمینهای شهری برای مانیتورینگ و کنترل تحت استفاده قرار میگیرند. برای انجام ارتباطات زیرسطحی، از تکنولوژیهای مختلفی مانند امواج اکو، امواج صوتی، موجودیتهای اپتیکی و مخابرات مخابرات از موجودیتهای اکو استفاده میشود. هدف اصلی در ارتباطات زیرسطحی به حداکثر رساندن دامنه و کیفیت انتقال اطلاعات در این محیطها با توجه به چالشهای مختلف آنها است.
مکانیزم الگوریتم الگوریتم پیشبینی خطی چند هیجانی (Multi-Excited Linear Prediction (MELP))
۱) تقسیم به زیرفریمها: گفتار ورودی به زیرفریمهای کوچکتری تقسیم میشود. هر زیرفریم از نمونههای گفتار در بازهای کوتاه تشکیل میشود.
۲) پیشبینی خطی: برای هر زیرفریم، از مدلسازی خطی استفاده میشود تا پیشبینیای از آیندهی گفتار ایجاد شود. این پیشبینی بر اساس نمونههای گذشتهی گفتار انجام میشود.
۳) محاسبه خطا: خطا بین نمونههای واقعی گفتار و پیشبینی شده محاسبه میشود. این خطا در واقع اطلاعات مختصری از تفاوتهای بین گفتار اصلی و گفتار پیشبینی شده را حاوی میشود.
۴) کوانتیزه کردن خطا: خطاها کوانتیزه میشوند و به صورت فشرده به عنوان بخشی از دادههای فشردهشده گفتار ارسال میشوند.
۵) مدلسازی چند هیجانی: به جای استفاده از یک منبع هیجانی تکانگیزه، در MELP از چندین منبع هیجانی استفاده میشود. این منابع میتوانند نمایانکنندههای مختلفی از گفتار باشند و به تنوع بیشتری در تولید گفتار فشردهشده منجر میشوند.
۶) کوانتیزه کردن پارامترها: پارامترهای مدلهای خطی و چند هیجانی به صورت کوانتیزه و فشردهشده ارسال میشوند.
۷) بازسازی گفتار: در مرحله بازسازی، اطلاعات فشردهشده گفتار استخراج میشود و با استفاده از مدلهای خطی و چند هیجانی، گفتار به حالت اصلی بازسازی میشود.
این مراحل به صورت متوالی در طول زمان انجام میشوند و مکانیزم MELP کلیه اطلاعات مورد نیاز برای تولید گفتار فشردهشده و بازسازی آن را برای ارسال و دریافت ارائه میدهد. البته به دلیل پیچیدگی الگوریتم و محدودیتهای مرتبط با نرخ بیت، این تکنیک معمولاً در کاربردهایی با نیاز به فشردهسازی گفتار با کیفیت بالا و نرخ بیت پایین مورد استفاده قرار میگیرد.
کوانتیزه کردن (Quantization):
کوانتیزه کردن (Quantization) به معنای تقریب و تبدیل یک مقدار آنالوگ یا مقادیر پیوسته به یک مقدار دیجیتال یا مقادیر گسسته است. در فرآیند کوانتیزه کردن، مقادیر پیوسته به مقادیر گسسته تقسیم میشوند. برای مثال، در کوانتیزه کردن سیگنالهای آنالوگ به دیجیتال، مقادیر متناوب از سیگنال آنالوگ با توجه به دقت بیتهای دیجیتال مشخص میشوند. این مقادیر متناوب در دستههایی تقسیم بندی میشوند و به نزدیکترین مقدار گسسته تبدیل میشوند. هدف از کوانتیزه کردن، کاهش دقت مقادیر و حجم اطلاعات وارد شده است، به عبارت دیگر، کاهش تعداد بیتها برای نمایش یک مقدار مشخص از سیگنال. این کاهش در بیتها منجر به کاهش حجم دادهها میشود که در فرآیند فشردهسازی اطلاعات مختص گفتار، بسیار مهم است. متداولترین مثالهای کوانتیزه کردن عبارتند از:
۱) کوانتیزه کردن صوت: تبدیل نمونههای آنالوگ صوت به نمونههای دیجیتال با تعداد بیت مشخص.
۲) کوانتیزه کردن تصاویر: تبدیل مقادیر پیکسلهای تصویر به مقادیر گسسته برای ذخیرهسازی و انتقال بهتر تصاویر.
۳) کوانتیزه کردن دادههای حسگرها: تبدیل دادههای حسگرها مثل دما، فشار، رطوبت و غیره به مقادیر دیجیتال برای پردازش و ذخیرهسازی.
کوانتیزه کردن بر اساس دقت مقادیر و تعداد بیتها، میتواند تأثیر زیادی بر کیفیت سیگنالها داشته باشد، بنابراین نیاز به توازن میان کاهش حجم دادهها و حفظ کیفیت مطلوب دارد.
مدل خطی:
مدل خطی یکی از روشهای مدلسازی است که در آن فرض میشود که رابطه بین متغیرها به صورت یک خط مستقیم قابل تبدیل است. به عبارت دیگر، فرض میشود که تغییر یک متغیر نتیجهی تغییر خطی دیگری از متغیرها است. در مدل خطی، یک متغیر وابسته به عنوان متغیر پاسخ (وابسته) و یک یا چند متغیر مستقل به عنوان متغیرهای توضیحدهنده (مستقل) در نظر گرفته میشوند. هدف این است که با استفاده از مقادیر متغیرهای مستقل، مقدار متغیر وابسته را تخمین بزنیم. در یک مدل خطی ساده با یک متغیر مستقل، رابطه بین متغیرهای مستقل و متغیر وابسته به صورت زیر است:
y = mx + b
که در اینجا:
– y نمایانگر متغیر وابسته (متغیر پاسخ) است.
– x نمایانگر متغیر مستقل (متغیر توضیحدهنده) است.
– m نمایانگر شیب (ضریب) خط است که نشاندهنده تأثیر متغیر مستقل بر متغیر وابسته است.
– b نمایانگر تراز (عدد ثابت) خط است که نشاندهنده مقدار متغیر وابسته زمانی که متغیر مستقل صفر است، میباشد.
با استفاده از مقادیر متغیرهای مستقل و مقادیر شیب و تراز خط، میتوان مقدار متغیر وابسته را پیشبینی و تخمین زد. مدل خطی برای تحلیل و پیشبینی دادهها در انواع مختلف از علوم اجتماعی، مهندسی، اقتصاد، آمار و غیره مورد استفاده قرار میگیرد. این مدل معمولاً به عنوان یک روش پایهای در تحلیل و تفسیر دادهها استفاده میشود و میتواند به تعداد بیشماری مسائل و موضوعات مختلف اعمال شود.
مدل چند هیجانی (Multi-Excited Model):
مدل چند هیجانی (Multi-Excited Model) یک تکنیک مدلسازی گفتار است که در آن فرض میشود گفتار از ترکیب چند منبع هیجانی (منبع انرژی) مختلف تولید میشود. به عبارت دیگر، در این مدل، فرض میشود که سیگنال گفتار به عنوان ترکیبی از چندین منبع هیجانی کار میکند. منبع هیجانی، محل تولید انرژی صوتی در گفتار است و به عنوان مولد صوت عمل میکند. منابع هیجانی در گفتار میتوانند نمایانکنندههای مختلفی از صدا باشند که میتواند شامل اهمیتهای مختلفی از نظر شدت و طیف باشد. در مدل چند هیجانی، چندین منبع هیجانی مختلف تعیین میشود، و هر منبع هیجانی نمایانکنندهای از صدای مختلف است که توسط یک تابع تولید میشود. این توابع میتوانند مدلهای فیزیکی مختلفی باشند که نمایانگر مختلف انرژیهای صوتی هستند. مزیت استفاده از مدل چند هیجانی این است که این تکنیک به تنوع بیشتری در تولید صدا و گفتار منجر میشود. همچنین، میتواند به بهتر شناختن و تحلیل گفتار و ویژگیهای صوتی کمک کند. مدل چند هیجانی در زمینههای مختلفی مانند تشخیص گفتار، تولید گفتار مصنوعی، فشردهسازی گفتار و تحلیل و پردازش سیگنالهای گفتاری مورد استفاده قرار میگیرد. از طریق این مدل میتوان بهترین منابع هیجانی را برای تولید گفتار با کیفیت و مورد نیاز تعیین کرد و از طریق فشردهسازی گفتار به حجم کمتری از دادهها نیاز داشت.
هدف اصلی ایجاد الگوریتم پیشبینی خطی چند هیجانی (Multi-Excited Linear Prediction (MELP)):
هدف اصلی ایجاد MELP، توانایی عملکرد در شرایط تداخل و انحطاط بالا است که برای اهداف نظامی بسیار حیاتی است. این الگوریتم با کاهش بیتها و حفظ کیفیت، مناسبترین کمیتهای اطلاعاتی را در محیطهای مختلف ارائه میدهد.
مبداء الگوریتم پیشبینی خطی چند هیجانی (Multi-Excited Linear Prediction (MELP)):
MELP از سال ۱۹۹۷ توسط وزارت دفاع ایالات متحده (DoD) توسعه یافته است و ابتدا به عنوان استاندارد MIL-STD-3005 شناخته شد. در سال ۲۰۰۱، بهبودهایی به این الگوریتم اعمال شد و به عنوان MELPe شناخته شد که شامل تغییراتی در نرخ بیت (۱۲۰۰ bps و ۶۰۰ bps) و بهبودهای صدایی شامل پیشپردازشهای نویز (NPP) و پسفیلتر صدا میشود.
پیادهسازی الگوریتم پیشبینی خطی چند هیجانی (Multi-Excited Linear Prediction (MELP)):به عنوان یک فرآیند پیچیده شامل مراحل زیر است:
۱) نمونهبرداری گفتار: ابتدا برای اعمال الگوریتم MELP، نیاز به نمونهبرداری گفتار از سیگنال واقعی است. این نمونهها برای پردازش و فشردهسازی بعدی استفاده میشوند.
۲) تحلیل محلی: در این مرحله، اطلاعات صوتی و مختصات چند هیجانی در طول زمان تحلیل میشوند. این محللها برای تشخیص چندین منبع هیجانی مورد استفاده قرار میگیرند که هر کدام نمایانکننده صوتی مختلف هستند.
۳) مدلسازی خطی: در این مرحله، از تکنیکهای خطیسازی و پیشبینی مانند Linear Prediction (LP) برای تخمین مدلهای خطی از گفتار استفاده میشود. این مدلهای خطی اطلاعات مربوط به صوت انتقالی در گفتار را توصیف میکنند.
۴) کوانتیزه کردن پارامترها: اطلاعات حاصل از مدلسازی خطی به عنوان پارامترهایی مانند LSF (Line Spectral Frequencies) و دیگر ویژگیهای صوتی استفاده میشوند. این پارامترها به صورت دیجیتالی کوانتیزه و نمایش داده میشوند تا به صورت مجموعهای از بیتها در فایلهای صوتی ذخیره شوند.
۵) پسفیلتر و پیشپردازش نویز: ممکن است این مرحله به افزایش کیفیت گفتار و کاهش نویزهای محیطی کمک کند. از تکنیکهای پیشرفته مانند پسفیلترهای صوتی و پیشپردازش نویز استفاده میشود.
۶) کمپانساسیون خطای کوانتیزه کردن: به عنوان یک مرحله مهم در MELP، خطاهای ناشی از کوانتیزه کردن پارامترها برای حفظ کیفیت گفتار مهم هستند. از تکنیکهای مختلفی مانند ویتربی کمپانساسیون و استفاده از اطلاعات قبلی برای کاهش این خطاها استفاده میشود.
۷) ارائه نتیجه فشردهسازی: پس از اتمام تمام مراحل، نتیجه فشردهسازی به عنوان خروجی الگوریتم MELP حاصل میشود که میتواند به عنوان فایل صوتی یا بستههای داده برای ارسال و دریافت در سیستمهای ارتباطی مورد استفاده قرار گیرد.
همچنین، برای پیادهسازی الگوریتم MELP، نیاز به ابزارها و زبانهای برنامهنویسی مناسب مانند متلب، C، C++ یا Python و دانش مرتبط با پردازش سیگنالهای گفتاری و مدلسازی خطی وجود دارد. این پیادهسازی ممکن است به دلیل پیچیدگی الگوریتم و مشخصات فنی سیستمهای هدف، نیاز به مطالعه و تستهای بیشتری داشته باشد.
کمپانساسیون خطای کوانتیزه کردن:
کمپانساسیون خطای کوانتیزه کردن یک مرحله مهم در الگوریتمهای فشردهسازی گفتار است که هدف آن کاهش خطاهایی است که در فرآیند کوانتیزه کردن پارامترهای گفتار ایجاد میشوند. در فشردهسازی گفتار، برخی از ویژگیها و پارامترهای گفتار به صورت دیجیتالی نمایش داده میشوند و این کوانتیزه کردن میتواند منجر به کاهش کیفیت گفتار و ایجاد خطاهایی در گفتار شود. هنگام کوانتیزه کردن، مقادیر پارامترهای گفتار به مقادیر دیجیتالی نزدیکترین مقادیر کوانتیزه تبدیل میشوند. این عمل باعث کاهش دقت اطلاعات و تغییرات ناخواسته در ویژگیهای گفتار میشود. برای مثال، اگر یک پارامتر صوتی با دقت بالایی به صورت اعشاری ذخیره شود و پس از کوانتیزه کردن به نزدیکترین عدد صحیح، دقت آن کاهش مییابد و اطلاعات معنیدار از دست میروند. کمپانساسیون خطای کوانتیزه کردن به منظور بهبود کیفیت گفتار استفاده میشود. این کمپانساسیون عمدتاً در مرحله بازگشتی الگوریتم فشردهسازی انجام میشود. هنگام بازگشت به فضای پارامترهای اصلی گفتار، از اطلاعات قبلی یا تکنیکهای پیشرفتهتری مانند ویتربی کمپانساسیون استفاده میشود تا اثرات خطاهای کوانتیزه کردن معکوس شود و کیفیت گفتار بهبود یابد. این کمپانساسیون باعث بهبود نسبی کیفیت گفتار شده و از اثرات ناخواسته کوانتیزه کردن در پارامترهای گفتار کمک میکند. کمپانساسیون خطای کوانتیزه کردن بهطور عمده در الگوریتمهای فشردهسازی گفتار مورد استفاده قرار میگیرد تا اطلاعات گفتاری بهبود یابد و کیفیت صدای بازیابیشده به حداکثر برسد.
پسفیلتر و پیشپردازش:
پسفیلتر و پیشپردازش نویز دو مرحله مهم در الگوریتمهای فشردهسازی گفتار هستند که هدف آنها بهبود کیفیت صوتی و کاهش نویزهای محیطی در فایلهای صوتی است. این مراحل به طور عمده در مرحله پس از کوانتیزه کردن پارامترهای گفتار انجام میشوند.
۱) پیشپردازش نویز:
در محیطهای صوتی مختلف ممکن است نویزهای محیطی مانند نویزهای پسزمینه، ایستگاههای رادیویی، تردد خودروها و غیره وجود داشته باشد. این نویزها میتوانند کیفیت گفتار را تحت تأثیر قرار دهند و اطلاعات مهم را در صدا مخفی کنند. پیشپردازش نویز متناسب با نوع نویز موجود در محیط، اقدام به کاهش این نویزها میکند. این کاهش میتواند به صورت طراحی فیلترهای خاص، استفاده از تکنیکهای حذف نویز و یا تکنیکهای ادغام سیگنال مورد نظر با سیگنالهای مرتبط باشد. هدف اصلی این مرحله بهبود صوتی و کاهش نویزهای محیطی در فایلهای صوتی است.
۲) پسفیلتر:
پسفیلتر یکی دیگر از مراحل مهم پس از کوانتیزه کردن پارامترهای گفتار است که با هدف بهبود کیفیت گفتار انجام میشود. هنگام کوانتیزه کردن، ممکن است اطلاعات دقیقی از گفتار از دست بروند و خطاهایی ایجاد شوند. پسفیلتر با استفاده از اطلاعات قبلی و تکنیکهای پیشرفتهتری مانند ویتربی کمپانسیون و کمپانسیون خطای کوانتیزه کردن بهبودی در این خطاها ایجاد میکند و کیفیت گفتار را افزایش میدهد. همچنین، این فیلتر میتواند نویزها و اشکالهای موجود در گفتار را نیز کاهش دهد و بهبود کیفیت گفتار را ایجاد کند.
کاربردهای پسفیلتر و پیشپردازش نویز در الگوریتمهای فشردهسازی گفتار از جمله الگوریتم MELP میتواند در ارتقاء کیفیت گفتار و افزایش عملکرد فشردهسازی گفتار بسیار مفید و مؤثر باشد.
کمپانساسیون (Compensation):
کمپانساسیون (Compensation) در مخابرات و پردازش سیگنال به معنای تعویض، تعادلدهی یا ترمیم اثرات ناخواسته یا خطاهایی است که در طول یک فرآیند به وجود میآید. هدف اصلی کمپانساسیون، بهبود یا بازگشت به وضعیت اولیهی سیگنال یا اطلاعات است. در مخابرات، کمپانساسیون برای مقابله با اثرات مختلفی مانند تضعیف سیگنال، انسداد، انسدادهای تداخلی، تاخیرها و … استفاده میشود. در پردازش سیگنال، کمپانساسیون میتواند به کاهش نویزها، ترمیم خطاها و بازیابی اطلاعات از سیگنالهای پرتوصیفی مورد استفاده قرار گیرد. در مورد الگوریتمهای فشردهسازی گفتار مانند MELP، کمپانساسیون خطای کوانتیزه کردن مورد استفاده قرار میگیرد. همانطور که در توضیح قبلی آمده بود، پس از کوانتیزه کردن پارامترهای گفتار، خطاها و اطلاعات از دست رفته در گفتار ایجاد میشود. کمپانساسیون خطای کوانتیزه کردن با استفاده از اطلاعات قبلی یا تکنیکهای خاص، بهبودی در این خطاها ایجاد میکند و کیفیت گفتار را افزایش میدهد. این کمپانساسیون به وضوح صوتی گفتار و کیفیت بازیابیشده کمک میکند و برای حفظ اطلاعات مهم در فشردهسازی گفتار بسیار حیاتی است.
هیجانهای تصادفی بیصدا (Random Unvoiced Excitations)
هیجانهای تصادفی بیصدا، به هیجانهای صوتی اشاره دارد که به صورت تصادفی و نویزی تولید میشوند و خصوصیت صدایی ندارند. این نوع هیجانها معمولاً برای تولید اجزای غیرصوتی مانند سکوتها و نویزهای محیطی در گفتار استفاده میشوند. به عنوان مثال، فرض کنید میخواهیم یک جمله ساده را با الگوریتم چند هیجانی فشرده کنیم و از هیجانهای تصادفی بیصدا برای تولید نویزها استفاده کنیم.
جمله اصلی: “امروز هوا خیلی سرد است.”
در این مثال، هیجانهای تصادفی بیصدا به عنوان نویزهای تصادفی در جمله استفاده میشوند. این نویزها میتوانند ترتیبی بیقاعده از اعداد تصادفی باشند که به عنوان سیگنالهای غیرصوتی به جمله اضافه میشوند.
فرض کنید مقادیر نویزهای تصادفی به شکل زیر باشند:
نویز ۱: ۰.۲-, ۰.۱, ۰.۳, ۰.۴-, ۰.۲
نویز ۲: ۰.۵, ۰.۳-, ۰.۱-, ۰.۲, ۰.۴-
با اضافه کردن هیجانهای تصادفی به جمله، جمله فشردهشده با هیجانهای بیصدا به شکل زیر تولید میشود:
جمله فشردهشده: “امروز ۰.۲- هوا ۰.۱ خیلی ۰.۳ سرد ۰.۴- است ۰.۲.”
در این مثال، نویزهای تصادفی به شکل تصادفی بین کلمات و حروف جمله توزیع میشوند، و همچنین بین بخشهای مختلف جمله. این کار باعث میشود که جمله فشردهشده حاوی اطلاعات گفتاری مورد نیاز باشد، اما با حجم کمتری ارائه شود و کیفیت گفتار به حد مطلوبی حفظ شود.
هیجانهای ناپیوسته کد شده (Coded Discontinuous Excitations)
هیجانهای ناپیوسته کد شده، به هیجانهای صوتی اشاره دارد که اطلاعات خاص ویژهای در طول گفتار دارند و به صورت ناپیوسته کد شده و استفاده میشوند. این اطلاعات ممکن است مربوط به نقاط صدایی خاص یا ویژگیهای دیگر گفتاری باشند که به کمک کدگذاری مناسب انتقال و بازسازی میشوند. استفاده از این نوع هیجانها در الگوریتم چند هیجانی به کیفیت گفتار کمک میکند و از اطلاعات مخصوصی برای حفظ و بازگردانی جزئیات و ویژگیهای خاص گفتار استفاده میشود. به عنوان مثال، فرض کنید میخواهیم یک جمله ساده را با الگوریتم چند هیجانی فشرده کنیم و از هیجانهای ناپیوسته کد شده برای تولید جزئیات ویژهای از گفتار استفاده کنیم.
جمله اصلی: “استقلال بهترین چیز است.”
در این مثال، هیجانهای ناپیوسته کد شده به عنوان اطلاعات خاص ویژهای در طول جمله مورد استفاده قرار میگیرند. این اطلاعات ممکن است مربوط به نقاط صدایی خاص یا ترتیب واژهها و یا هر ویژگی دیگر گفتاری باشند که به کمک کدگذاری مناسب انتقال و بازسازی میشوند.
فرض کنید مقادیر هیجانهای ناپیوسته کد شده به شکل زیر باشند:
هیجان ۱: [۰.۳, ۰.۲, ۰.۱-]
هیجان ۲: [۰.۵, ۰.۴-, ۰.۱]
با استفاده از این هیجانهای ناپیوسته کد شده، جمله فشردهشده به شکل زیر تولید میشود:
جمله فشردهشده: “استقلال [۰.۳] بهترین چیز [۰.۲] است. [۰.۱-]”
در این مثال، هیجانهای ناپیوسته کد شده به ویژه در موقعیتهای خاصی از جمله، مانند بین کلمات یا حتی در میان یک کلمه، قرار دارند و اطلاعات خاص ویژهای از گفتار را انتقال میدهند. این کدها به صورت بیتها ذخیره میشوند و در فشردهسازی گفتار استفاده میشوند تا کیفیت گفتار حفظ شود و با حجم کمتری انتقال داده شود.
نحوه کار الگوریتم چند هیجانی
الگوریتم چند هیجانی در فشردهسازی گفتار به شیوههای مختلفی کار میکند، اما ایدهی اصلی این الگوریتم به ترکیب چندین نوع اثر صوتی (هیجان) به منظور تولید گفتار فشرده است. این هیجانها به طور جداگانه کوانتیزه میشوند و در نهایت با ترکیب آنها گفتار فشردهشده تولید میشود. در یک مدل چند هیجانی، معمولاً از ترکیب سه نوع هیجان مختلف استفاده میشود:
۱) امواج سینوسی: امواج سینوسی با فرکانسهای مختلف به عنوان یکی از هیجانها استفاده میشوند. این امواج معمولاً برای تولید اجزای گفتاری صوتی مانند صدای حروف یا کلمات با فرکانسهای مشخص مورد استفاده قرار میگیرند.
۲) هیجانهای تصادفی بیصدا: هیجانهای تصادفی بی صدا یا نویزهای تصادفی به عنوان یکی دیگر از هیجانها در نظر گرفته میشوند. این نوع هیجانها برای تولید اجزای غیر گفتاری تصادفی و نویزی مورد استفاده قرار میگیرند.
۳) هیجانهای ناپیوسته کد شده: این نوع هیجانها مرتبط با برخی اطلاعات مخصوص به گفتار هستند که به صورت ناپیوسته کد شده و استفاده میشوند. این اطلاعات ممکن است مربوط به نقاط صدایی خاص یا ویژگیهای گفتاری دیگر باشند.
هر هیجان دارای پارامترهای خاص خود است که مشخصکننده خصوصیات آن هستند. این پارامترها در فشردهسازی گفتار به صورت دیجیتالی ذخیره و به صورت بیتها نمایش داده میشوند. با ترکیب این هیجانها با هم و با کمک پردازشهای مختلف، گفتار فشرده شده تولید میشود که حاوی اطلاعات صوتی و کیفیت خوبی دارد. هدف اصلی از استفاده از مدل چند هیجانی در فشردهسازی گفتار، بهبود کیفیت گفتار و کاهش نویزها و اشکالهای محیطی است که ممکن است در فایلهای صوتی موجود باشند. این ترکیب هیجانها باعث میشود که فشردهسازی گفتار بهبود یابد و کاربر بتواند گفتار با کیفیتی را با نرخ بیت کمتر تولید کند.
کاربرد الگوریتم چند هیجانی چه کاربری در الگوریتم MELP
الگوریتم چند هیجانی (Multi-Excited) در الگوریتم MELP نقش بسیار مهمی را ایفا میکند و به کاهش نویزهای محیطی در فایلهای صوتی کمک میکند. اصطلاح “چند هیجانی” به این اشاره دارد که در این الگوریتم از چندین نوع اثر صوتی به نام “هیجان” برای تولید صوت استفاده میشود. هیجانها (Excitations) در یک مدل چند هیجانی، نوعی اثرهای صوتی هستند که در تولید صوت ترکیب میشوند. این هیجانها میتوانند شامل امواج سینوسی، هیجانهای تصادفی بیصدا و هیجانهای ناپیوسته کد شده باشند. هر هیجان دارای خصوصیات و کاربردهای خاصی است. نقش اصلی الگوریتم چند هیجانی در MELP، تولید سیگنالهای گفتاری با کیفیت بهتر و کاهش نویزهای محیطی است. با استفاده از این الگوریتم، نویزها و اشکالهای موجود در گفتار کاهش داده میشوند و کیفیت گفتار بهبود مییابد. این امر بسیار مهم است، زیرا در ارتباطات زیر سطحی که MELP برای آن طراحی شده است، نویزها و تداخلها میتوانند کیفیت ارتباط را تحت تأثیر قرار دهند. به طور خلاصه، الگوریتم چند هیجانی در MELP با تولید سیگنالهای گفتاری با کیفیت و کاهش نویزهای محیطی کمک میکند و از اهمیت بالایی در فرآیند فشردهسازی گفتار با نرخ بیت پایین برخوردار است.
گفتار بی صدا و گفتار با صدا:
گفتار با صدا (voiced speech) و گفتار بیصدا (unvoiced speech) دو حالت مختلف گفتاری هستند که با تفاوتهای مهمی همراه هستند:
۱) گفتار با صدا (Voiced Speech):
گفتار با صدا وقتی ایجاد میشود که تنفس هوا از ریهها از طریق راههای تنفسی عبور کند و به طور همزمان صدا توسط بندهای صوتی و غضروفی (Vocal Folds) در گلو تولید شود. این نوع گفتار شامل صداهای صوتی مختلف است که به صورت پیوسته و پرهم وحشی تولید میشود. به عنوان مثال، صدای حرف “آ” در کلمه “آب” یا “اوت” نمونههایی از گفتار با صدا هستند.
۲. گفتار بیصدا (Unvoiced Speech):
گفتار بیصدا هنگامی ایجاد میشود که تنفس هوا از ریهها عبور کند اما هیچ صدایی توسط بندهای صوتی و غضروفی (Vocal Folds) در گلو تولید نشود. در این نوع گفتار، صداها به صورت ناپیوسته و بدون طنین هستند. مثالی از گفتار بیصدا، حرف “پ” در کلمه “پنج” یا حرف “ت” در کلمه “توت” است.
تفاوت اساسی بین گفتار با صدا و گفتار بیصدا، وجود یا عدم وجود طنین در تولید صداها است. در گفتار با صدا، طنین توسط بندهای صوتی و غضروفی (Vocal Folds) ایجاد میشود، در حالی که در گفتار بیصدا، هیچ طنینی تولید نمیشود و صداها بیطنین هستند.
مکانیزم پیادهسازی الگوریتم MELP:
پیادهسازی الگوریتم MELP به شیوههای مختلفی انجام میشود و میتواند با توجه به نیازها و پلتفرمهای مختلف، متفاوت باشد. این الگوریتم معمولاً به صورت نرمافزار (Software) پیادهسازی میشود، اما احتمالاً میتواند به صورت سختافزار (Hardware) نیز پیادهسازی شود. در پیادهسازی نرمافزاری، زبانهای برنامهنویسی مختلفی مانند C، C++، MATLAB، Python و غیره استفاده میشود. این زبانها امکان انجام محاسبات پیچیده مربوط به الگوریتم MELP را فراهم میکنند و به تسریع فرآیند فشردهسازی گفتار کمک میکنند. همچنین، استفاده از کتابخانهها و ابزارهای مرتبط با پردازش سیگنال گفتاری نیز میتواند در اجرای کارآمدتر الگوریتم موثر باشد.
در پیادهسازی سختافزاری، از FPGA (Field Programmable Gate Array) و ASIC (Application-Specific Integrated Circuit) میتوان استفاده کرد. این تکنولوژیها به طور خاص برای اجرای سختافزاری الگوریتمها طراحی شدهاند و میتوانند عملیات پردازشی پیچیده را به صورت سختافزاری انجام دهند. این نوع پیادهسازی معمولاً برای سیستمهای با نرخ بیت بالا و مصرف توان کم مناسب است. به طور خلاصه، مکانیزم پیادهسازی الگوریتم MELP به توجه به نیازها، پلتفرمها و تکنولوژیهای مورد استفاده متفاوت است. اما هدف اصلی همیشه بهبود فشردهسازی گفتار با کیفیت مناسب در نرخ بیت پایین است.
الگوریتم MELP جزء کدام یک از انواع الگوریتمهای فشردهسازی (فشردهسازی با اتلاف (Lossy) و یا فشردهسازی بدون اتلاف (Lossless)) قرار میگیرد
الگوریتم MELP یک الگوریتم فشرده سازی با اتلاف (Lossy) است، به این معنی که در فرآیند فشردهسازی گفتار، بخشی از اطلاعات و کیفیت گفتار از بین میرود و در حالت بازسازی دقیق گفتار اصلی بازنشانی نمیشود. همانطور که توضیح داده شد، در الگوریتم MELP برای کاهش حجم گفتار، ویژگیهای گفتار کوانتیزه میشوند و اطلاعات دقیقی از ویژگیهای اصلی گفتار از دست میروند. همچنین با استفاده از هیجانهای چند هیجانی، اطلاعات صوتی اضافی برای تولید صداهای طبیعیتر به صورت کدگذاری شده استفاده میشود که ممکن است کیفیت اصلی گفتار را کمی کاهش دهد. با این حال، الگوریتم MELP به دلیل کارایی و قابلیت استفاده در ارتباطات با پهنای باند محدود و نیاز به حجم کم، در مواردی که کیفیت بالای گفتار اصلی مهمتر از دقت کامل بازسازی نباشد، استفاده میشود. بنابراین، الگوریتم MELP یک روش فشردهسازی کارآمد و مناسب برای بسیاری از تطبیقات صوتی است.
پیش پردازش نویز (Noise Preprocessor)
پیشپردازش نویز (NPP) یک مرحله اصلی در الگوریتم MELP (Multi-Excited Linear Prediction) است که به منظور کاهش نویز محیطی و بهبود کیفیت گفتار استفاده میشود. هدف از این مرحله، حذف یا کاهش تأثیر نویزهای محیطی مثل صداهای پسزمینه، صداهای محیط، و نویزهای الکترونیکی است تا گفتار فشردهشده بیشتر به گفتار اصلی شباهت داشته باشد و کیفیت بهتری داشته باشد. پیشپردازش نویز میتواند شامل مراحل مختلفی باشد، از جمله:
۱) تشخیص نویز: در این مرحله، سعی میشود نویزهای محیطی متمایز و تشخیص داده شوند. این کار ممکن است با استفاده از الگوریتمهای تشخیص نویز مختلف انجام شود.
۲) پیشپردازش نویز: در این مرحله، نویزهای تشخیصدادهشده پیشپردازش میشوند تا اثر آنها روی گفتار کاهش یابد. به عنوان مثال، از فیلترهای کاهنده نویز استفاده میشود تا بخشهای معینی از باند فرکانسی که نویز دارد، کاهش یابد.
۳) تطبیق و انطباق با مدل گفتار: این مرحله به تطبیق گفتار با مدلهایی که به نویزها و نوع گفتارها حساس هستند، اختصاص دارد. به عنوان مثال، اگر مدلی برای تولید نویزهای تصادفی بی صدا وجود داشته باشد، این مدل با گفتار فشردهشده هماهنگ میشود تا نویزهای تولید شده بهینه و متناسب با ویژگیهای گفتاری تولید شود.
ترکیب این مراحل در مرحله پیشپردازش نویز بهبود کیفیت گفتار را تسهیل میکند و باعث میشود گفتار فشردهشده بیشتر به گفتار اصلی شباهت داشته باشد و اثر نویزهای محیطی کاهش یابد.
الگوریتمهای تشخیص نویز (Noise Detection Algorithms)
الگوریتمهای تشخیص نویز (Noise Detection Algorithms)، برای تشخیص و تمایز نویزها از سیگنالهای مورد نظر در یک سیستم مورد استفاده قرار میگیرند. این الگوریتمها به عنوان یک مرحله مهم در پردازش سیگنالها و گفتارها استفاده میشوند. برخی از الگوریتمهای تشخیص نویز عبارتند از:
۱) میانگینگیری محلی (Local Mean): این الگوریتم با محاسبه میانگین مقادیر سیگنال در هر نقطه زمانی، نویزها را تشخیص میدهد. اگر مقادیر سیگنال در یک بازه زمانی نزدیک به یکدیگر باشند، احتمالاً نویز نیستند و برعکس.
۲) آستانهگذاری (Thresholding): این الگوریتم با استفاده از تعیین یک آستانه (Threshold) برای مقادیر سیگنال، نویزها را تشخیص میدهد. مقادیری که از آستانه بیشتر هستند به عنوان نویز شناخته میشوند.
۳) تحلیل فرکانسی (Frequency Analysis): این الگوریتمها با تحلیل طیف فرکانسی سیگنال، نویزها را تشخیص میدهند. نویزها معمولاً طیف فرکانسی متفاوتی با سیگنالهای مورد نظر دارند.
۴) تحلیل زمانی (Time Analysis): این الگوریتمها با تحلیل زمانی سیگنال، نویزها را تشخیص میدهند. الگوهای زمانی مختلف ممکن است به نویزها اختصاص داده شوند.
این الگوریتمها معمولاً در کنار یکدیگر استفاده میشوند تا بهبود دقت تشخیص نویزها و دیگر خصوصیات سیگنالها ایجاد شود. در هر سیستم و برنامهی خاصی، انتخاب الگوریتم مناسب برای تشخیص نویز و تمایز آن از سیگنال مورد نظر اهمیت دارد تا کارایی و کاربردی بودن الگوریتمها به حداکثر برسد.