فرکانس های صوتی از 20 هرتز تا 20 کیلوهرتز متغیر است اما این فرکانس ها به یک شکل شنیده نمی شوند. شنیدن فرکانس های زیر 20 هرتز و بالای 20 کیلوهرتز بسیار دشوار است، در حالی که فرکانس هایی که خیلی بیشتر از 20 هرتز نیستند یا خیلی کمتر از 20 کیلوهرتز نیستند، برای اکثر مردم شنیده نمی شود. ما اغلب نیاز به پردازش این سیگنال های صوتی برای برنامه های مختلف داریم. متلب یکی از بهترین ابزارهای تجزیه و تحلیل سیگنال و پردازش سیگنال است. الان وقت این هست که برای انجام پروژه متلب آماده بشیم.
فشرده سازی صدا نمونه بسیار خوبی از پردازش گفتار و سیگنال است. ما از اینترنت برای اهداف مختلف از جمله سرگرمی استفاده می کنیم. صدا در همه برنامه های سرگرمی رایج است. اگر اندازه یک فایل صوتی بزرگ باشد، فضای بیشتری برای ذخیره میگیرد.
فشردهسازی صدا/فیلم فضای قابل ملاحظهای را آزاد میکند، که سپس میتوان از آن برای مقاصد دیگر استفاده کرد. این مقاله چند تکنیک مهم فشرده سازی صدا را شرح می دهد.
یک نمونه سیگنال صوتی با استفاده از MATLAB برای فرکانس و دامنه آنالیز می شود. الگوریتمهای Haar و Daubenches روی سیگنال گفتار اعمال میشوند و صدا فشرده میشود. اندازه های صوتی قبل و بعد از فشرده سازی مقایسه می شوند.
پارامترهای زیر توسط برنامه مقایسه میشوند: نسبت سیگنال به نویز پیک (PSNR)، خطای میانگین مربع ریشه نرمال شده (NRMSE) و نسبتهای فشردهسازی.
الگوریتم موجک هار توابع زیر را انجام می دهد:
- صدا را انتخاب می کند و اندازه سیگنال واقعی را پیدا می کند.
- دامنه و فرکانس را پیدا می کند.
- فریم ایجاد می کند.
- طیف سیگنال را به موجک تجزیه می کند.
- مدل روان آکوستیک ایجاد می کند.
- طیف را بازرسی می کند.
- قانون فشرده سازی را اعمال می کند.
- افست را پیدا و تصحیح می کند.
- موج را بازنویسی می کند.
- اندازه سیگنال فشرده را پیدا می کند.
تبدیل موجک Daubenches عملکردهای زیر را انجام می دهد:
- صدا را انتخاب می کند و اندازه سیگنال واقعی را پیدا می کند.
- دامنه و فرکانس را پیدا می کند.
- اندازه بلوک را انتخاب می کند.
- درصد فشرده سازی را تغییر می دهد.
- ماتریس فشرده را به صورت اولیه در می آورد.
- فشرده سازی با استفاده از تبدیل کسینوس گسسته معکوس (IDCT) انجام می شود.
- سیگنال را بازنویسی می کند.
- اندازه سیگنال فشرده را پیدا می کند.
برای الگوریتم های کامل، به پیاده سازی کد مراجعه کنید.
فایل کد متلب AudioCompression.m موجک Haar و فایل AudioCompression2.m موجک Daubenches را پیاده سازی می کند. در این مثال، Windows XP Startup.wav نمونه فایل صوتی مورد استفاده برای فشرده سازی است.
مقایسه معیارهای عملکرد مانند PSNR، MSE و نسبت فشرده سازی نشان می دهد که الگوریتم Daubenches برای فشرده سازی بدون از دست دادن سیگنال های گفتاری مناسب است. مزایای فشرده سازی صدا فضای ذخیره سازی کمتر و هزینه مرتبط و انتقال سریعتر داده ها است.
تکنیک های مختلفی برای فشرده سازی داده ها وجود دارد. شما باید از روش فشرده سازی بدون اتلاف پیروی کنید زیرا فشرده سازی صوتی با اتلاف منجر به از دست رفتن داده ها می شود.
تصویر و ویدیو را می توان به روشی مشابه فشرده کرد.
پیشنهاد میکنم مقاله "20 ایده برتر برای پروژه متلب" مطالعه کنید.
مراحل اجرای برنامه
فایل AudioCompresssion.m را اجرا کنید. همانطور که در شکل 1 نشان داده شده است پنجره ای خواهید دید. فایل صوتی را انتخاب کنید و سپس دکمه فشرده سازی صدا را فشار دهید. همانطور که در شکل 5 نشان داده شده است، پنجره های خروجی را دریافت خواهید کرد. اندازه فایل های صوتی را قبل و بعد از فشرده سازی مقایسه کنید. فایل صوتی فشرده به صورت Output1.wav در همان مسیر فایل منبع اصلی (AudioCompresssion.m) تولید می شود.
پیشنهاد میکنم مقاله "معرفی بهترین کتاب های آموزش متلب" مطالعه کنید.
حالا فایل AudioCompression2.m را اجرا کنید. فایل صوتی را انتخاب کنید و دکمه فشرده سازی صدا را فشار دهید. همانطور که در شکل 6 نشان داده شده است، پنجره خروجی برنامه را دریافت خواهید کرد. اندازه صدای فشرده را مشاهده کنید. در اینجا سه فایل صوتی فشرده تولید و در همان مسیر فایل منبع اصلی ذخیره می شود. این سه خروجی مربوط به تبدیل کسینوس گسسته (DCT) با اندازه های مختلف پنجره 2، 4 و 8 است. درصد تغییر در فایل های فشرده ممکن است بسته به کیفیت فایل اصلی و اندازه متفاوت باشد.
برای دانلود منبع کد برای فشرده سازی صدا با استفاده از ابزار موجک (Wavelets) در متلب اینجا کلیک کنید
پروژه ای برای انجام داری؟
تخصص انجام پروژه داری؟
دیدگاه خود را بیان کنید