Aliasing یعنی نمونههایِ ثبتشده میتوانند یک تغییرِ سریع را به شکلِ فرکانسِ دیگری نشان دهند. اگر نرخ و آمادهسازیِ ورودی مناسب نباشند، بعداً از رویِ همان نمونهها نمیتوان همیشه فهمید موجِ اصلی کدام بوده است. این راهنما دو موجِ کاملاً ساختگی را عددی مقایسه میکند؛ هیچ صوتِ مشتری، مبدلِ آنالوگ یا موتورِ تشخیصِ گفتاری آزمایش نشده است.
دو موجِ متفاوت، شانزده نمونهٔ یکسان
نرخ را ۸۰۰۰ نمونه در ثانیه فرض کنید. نویسنده برایِ شاخصهایِ صفر تا پانزده، کسینوسِ ۱۰۰۰هرتز و کسینوسِ ۷۰۰۰هرتز را با دامنهٔ یک و فازِ صفر حساب کرده است. دو بردار تا خطایِ محاسبهٔ اعشاریِ کمتر از یکتریلیونم برابرند. این برابری با assert در اجرایِ واقعی کنترل شده، نه با کشیدنِ دو نمودارِ ظاهراً شبیه.
دلیلِ این نمونه را میتوان در فرمول دید: ۷۰۰۰ برابرِ ۸۰۰۰ منهایِ ۱۰۰۰ است؛ جملهٔ ۲πn در زاویه برایِ n صحیح، کسینوس را عوض نمیکند. پس یک فهرستِ شانزدهتاییِ عدد، در این قرارداد شاهدِ کافی برایِ انتخابِ یکتایِ یکی از دو موج نیست. این استدلال دربارهٔ همین خانوادهٔ موج و نمونهبرداریِ یکنواخت است، نه همهٔ مسائلِ بازیابیِ صوت.
اگر نرخِ ثبت را عوض کنیم چه میبینیم؟
این بار هر دو موج را در نرخِ ۱۶۰۰۰، برایِ سیودو نمونه حساب میکنیم. مدتِ هر دو آزمایش دو میلیثانیه است، اما محلِ نمونهها متراکمتر شده است. بردارهایِ جدید برابر نیستند و بیشترینِ اختلافِ مطلق از یک بیشتر میشود. عددِ دقیق و بردارهایِ نرخِ پایین در فایلِ گزارشاند.
| قراردادِ ساختگی | نتیجهٔ همین اجرا |
|---|---|
| ۱۰۰۰ و۷۰۰۰هرتز، نرخِ۸۰۰۰ | نمونهها با تلورانسِ عددی برابر |
| همان دو موج، نرخِ۱۶۰۰۰ | نمونهها متفاوت |
| حذفِ یکیدرمیانِ نمونههایِ۷۰۰۰هرتز در۱۶۰۰۰ | بازگشت به نمونههایِ مبهمِ۸۰۰۰ |
این برابریِ خاص نمیگوید هر دو فایلِ ضبطشدهٔ واقعی با این نرخها دقیقاً چنین خواهند بود؛ فیلترِ ورودی، فاز، نویز و زنجیرهٔ سختافزار در این تمرین وجود ندارند.
کمکردنِ نرخ، صرفاً حذفِ نمونهها نیست
کد از بردارِ ۷۰۰۰هرتزِ نرخِ ۱۶۰۰۰، عنصرهایِ زوج را برمیدارد. نتیجه همان بردارِ نرخِ پایین است؛ پس حذفِ ساده، اطلاعاتِ خارج از بازهٔ قابلِ نمایش را جادویی حذف نمیکند. این قسمت فقط یک ضدنمونه است؛ فیلترِ ضدعلیاس یا بازنمونهبردارِ کاربردی پیاده نکردهایم.
مستندِ رسمیِ resample_poly مسیرِ بالابردنِ نرخ، فیلترِ پایینگذر و سپس پایینآوردن را توضیح میدهد. آن تابع در اینجا اجرا نشده و این مقاله تنظیمِ فیلترِ مناسبِ فایلِ شما را تعیین نمیکند. پیش از تبدیلِ مجاز، قراردادِ نرخِ مقصد و ابزارِ مناسب را روشن کنید و اصلِ صوت را نگه دارید.
دقیقاً رویِ نصفِ نرخ هم احتیاط لازم است
در کنترلِ دیگری، سینوسِ ۴۰۰۰هرتز با فازِ صفر را در نرخِ ۸۰۰۰ میگیریم. همهٔ نمونهها تا تلورانسِ عددی صفر میشوند، چون محلِ نمونهها رویِ صفرهایِ سینوس افتاده است. بنابراین عبارتِ سادهٔ «دو برابر کافی است» بدونِ فرضِ پهنایِ باند، مرز و فاز، برایِ تشخیصِ موجِ دلخواه قراردادِ کاملی نیست.
هدفِ این ضدنمونه انتخابِ نرخِ پیشنهادی برایِ همهٔ تماسها نیست. گفتارِ واقعی یک کسینوسِ منفرد نیست و قابلفهمبودنِ آن به عواملِ بیشتری وابسته است. از این محاسبه، امتیازِ کیفیتِ شنیداری یا درصدِ بهبودِ پیادهسازی نتیجه نمیگیریم.
پیش از تحویلِ فایل چه چیزی ثبت کنیم؟
نرخِ واقعیِ مبدأ، هر مرحلهٔ تبدیل و نسخهٔ خروجی را یادداشت کنید. تغییرِ عددِ سرآیند بدونِ بازنمونهبرداری، آزمایشِ بالابردنِ نرخِ این صفحه نیست. اگر اصل قبلاً با ابهام ثبت شده، بزرگکردنِ فایل خودکار آن موجِ ازدسترفته را برنمیگرداند؛ برایِ بازضبطِ لازم تصمیمِ جدا بگیرید.
مفهومِ نرخ را در راهنمایِ نرخِ نمونهبرداریِ صوت بخوانید؛ اینجا خودِ برابریِ عددیِ دو فرکانس را آزمایش کردیم. برایِ درخواستِ تبدیلِ گفتار به متن با اپرانگار، اصل و مسیرِ تبدیل را طبقِ روشِ مجاز با تیم مطرح کنید؛ این تمرین تعرفه یا قابلیتِ تازهای برایِ محصول اعلام نمیکند.
فایل تمرین و منبع
دو فرکانسِ متفاوت را در دو نرخِ نمونه واقعاً حساب کنید · تمامِ نمونههایِ نرخِ پایین و کنترلِ حذفِ یکیدرمیان بدونِ فیلتر
منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.