MFCC یا ضریبهایِ کپسترالِ فرکانسِ مل، نمایشِ عددیِ بخشی از ویژگیهایِ طیفیِ صداست. خروجیِ آن کلمه یا نامِ گوینده نیست؛ برایِ چنین کارهایی مسیرِ مدل و ارزیابیِ جدا لازم است. این تمرین یک دستورِ محاسبهٔ کوچک و صریح را رویِ موجِ ساختگی اجرا میکند تا شکلِ ماتریس و اثرِ تنظیمها قابلِ دیدن باشد.
دستورِ محاسبه را همراهِ اسمِ MFCC نگه داریم
صرفِ نوشتنِ n_mfcc=3 همهٔ قرارداد را تعریف نمیکند. در اینجا نرخ۸۰۰۰، پنجره۶۴نمونه، گام۳۲نمونه، بدونِ پدینگِ مرکز، شش باندِ مل و سه ضریب داریم. پنجره Hannِ متقارن با مخرجِ N−1 است. این اعداد برایِ کوچکشدنِ تمرین انتخاب شدهاند؛ تنظیمِ عمومیِ پیشنهادی برایِ گفتار یا محصولِ اپرا نیستند.
بانکِ فیلتر از هشت لبهٔ با فاصلهٔ برابر در مقیاسِ HTKِ مل ساخته میشود. وزنها مثلثی و دارایِ قلهٔ هدفِ یکاند، نه نرمالشدهٔ مساحتِ Slaney. رابطهٔ تبدیلِ این قرارداد 2595×log10(1+f/700) است؛ نام و فرمول را در کد نگه داشتهایم تا خروجیِ دو تنظیمِ متفاوت را بیدلیل برابر نخواهیم.
از۱۲۸نمونه، سه فریم به دست میآید
ورودیِ اصیل، جمعِ سینوسِ۵۰۰هرتز با یکچهارمِ سینوسِ۱۵۰۰هرتز است و ۱۲۸نمونه دارد. فریمهایِ کامل از شاخصِ صفر،۳۲ و۶۴ شروع میشوند. هرکدام۶۴نمونه دارند و با هم همپوشانی دارند؛ ۱۲۸ را بر۶۴ تقسیمکردن و گفتنِ «دو فریم» قراردادِ گام را نادیده میگیرد.
برایِ هر فریم ابتدا پنجره ضرب میشود، سپس DFTِ مستقیم و مربعِ قدرِ آن حساب میشود. از۳۳خانهٔ غیرمنفی با ماتریسِ ششدرسیوسه به شش توانِ مل میرسیم. کد الگوریتمِ سریعِ FFT را اجرا نمیکند و کتابخانهٔ librosa نصب یا فراخوانی نشده است؛ فقط مسیرِ عددیِ دستورِ خودمان را نشان میدهد.
لگاریتم و DCT دو مرحلهٔ جدا هستند
توانِ هر باند با کفِ 10^-10 و مرجعِ یک، به 10×log10 تبدیل میشود. برشِ top_db در این نسخه نداریم. سپس DCT نوعِ دو با نرمالسازیِ متعامد حساب میشود و سه ضریبِ نخست را نگه میداریم. این قرارداد با همهٔ پیشفرضهایِ librosa، مخصوصاً مقیاسِ مل و پنجره و پدینگ، برابر معرفی نمیشود.
| مرحلهٔ هر فریم | شکلِ خروجیِ همین دستور |
|---|---|
| طیفِ توانِ غیرمنفی | ۳۳ مقدار |
| بانکِ مل | ۶ مقدار |
| توانِ لگاریتمی | ۶ مقدار |
| ضرایبِ نگهداشتهشده | ۳ مقدار |
جهتِ محور را به حدس واگذار نکنیم
گزارشِ تمرین هر فریم را یک ردیف میگذارد: سه فریم و سه ضریب داریم. چون این نمونه مربع است، از رویِ عددِ شکل نمیتوان جهتِ محورها را فهمید؛ نامِ محور و start_sample را جدا ثبت کردهایم. قراردادِ مستندِ librosa معمولاً محورِ ضریب را پیش از زمان نشان میدهد؛ جابهجاییِ محورها باید صریح باشد، حتی وقتی هر دو عدد سهاند.
در استفادهٔ واقعی، نرخ، ترتیبِ مراحل و قراردادِ ذخیره را همراهِ ویژگی نگه دارید. یک ماتریس با ابعادِ درست ممکن است با تنظیمِ دیگری ساخته شده باشد. این مثال سازگاریِ ورودیِ یک مدلِ آماده، کیفیتِ بازشناسیِ گفتار یا تشخیصِ گوینده را آزمایش نمیکند.
سکوت چرا عددِ صفرِ ساده نداد؟
همان دستور رویِ۱۲۸صفر هم اجرا میشود. توانِ مل صفر است، ولی کفِ لگاریتم آن را به منفیِ۱۰۰دسیبل نسبت به مرجعِ یک میرساند. ضریبِ صفرِ DCT برابرِ منفیِ۱۰۰ضربدرِ رادیکالِ۶ میشود و ضریبهایِ دیگر نزدیکِ صفرند. برنامه محدودبودنِ عددها و این مقدار را واقعاً کنترل میکند؛ خروجیِ غیرصفر، شاهدِ وجودِ گفتار نیست.
برایِ معنیِ خانههایِ طیف، راهنمایِ FFT و شبکهٔ فرکانس را ببینید. اگر خروجیِ موردِ نیازتان متن است، نمونه و معیارِ تحویل را در درخواستِ اپرانگار روشن کنید؛ استخراجِ MFCC در این صفحه به معنیِ اعلامِ روشِ داخلی یا API محصول نیست.
فایل تمرین و منبع
از نمونه تا سه ضریب، دستورِ کوچک و صریح را اجرا کنید · لبهٔ باند، توان، لگاریتم و ضریبِ هر فریم و نمونهٔ سکوت
- مستندِ اصلیِ نسخهٔ۰٫۱۱؛ ورودی، DCT، تعدادِ ضریب و قراردادِ فریم؛ کتابخانه اجرا نشده است
- مرجعِ اصلیِ بانکِ مل؛ شکلِ ماتریس، HTK و نرمالسازیِ مثلثها
- مرجعِ اصلیِ تبدیلِ توان به دسیبل؛ مرجع، کف و برشِ دامنه را جدا کنید
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.