مدت یک فایل MP3 را همیشه نمیتوان از تقسیم اندازهٔ کل فایل بر بیتریتِ نمایشدادهشده به دست آورد. در VBR، نرخ داده در طول صوت میتواند تغییر کند؛ بایتهای غیرصوتی هم بخشی از فایلاند. با دو بازهٔ ساختگی نشان میدهیم چگونه یک فرضِ نرخ ثابت، مدت را اشتباه میکند؛ این کد فایل MP3 واقعی را باز یا تولید نمیکند.
CBR، VBR و عددی که ابزار نشان میدهد
در CBR نرخ هدف ثابت است؛ در VBR نرخ میتواند با بخشهای صوت تغییر کند. عددِ یک فریم، نرخِ اسمی یا میانگینِ گزارششده را بدون شناخت تعریفِ ابزار، یکسان فرض نکنید. این تفاوت بهتنهایی ثابت نمیکند کدام پخشکننده خراب است؛ فایل ناقص، فراداده و روش برآورد هم باید بررسی شوند.
مثال دو بازه با مدت ازپیشمعلوم
| بازهٔ آموزشی | مدت | نرخ دادهٔ فرضی | دادهٔ صوتی |
|---|---|---|---|
| اول | ۲ثانیه | ۶۴۰۰۰بیتبرثانیه | ۱۶۰۰۰بایت |
| دوم | ۲ثانیه | ۱۹۲۰۰۰بیتبرثانیه | ۴۸۰۰۰بایت |
| جمع | ۴ثانیه | میانگین۱۲۸۰۰۰بیتبرثانیه | ۶۴۰۰۰بایت |
مدت۴ثانیه را در صورت تمرین دادهایم؛ از روی فایل کشف نشده است. جمع داده۵۱۲۰۰۰بیت است. اگر تمام آن را بر نرخِ بخش اول یعنی۶۴۰۰۰تقسیم کنیم،۸ثانیه میگیریم؛ دو برابرِ مدتِ همین مثال. اگر نرخ میانگینِ درست۱۲۸۰۰۰را داشته باشیم، نسبت دوباره۴ثانیه میشود؛ اما بهدستآوردن میانگینِ معتبر، خود به شاهد نیاز دارد.
اندازهٔ کل فایل، فقط دادهٔ صوت نیست
در تمرینِ جدا،۱۲۰۰۰بایت غیرصوتی اضافه میکنیم؛ این عدد اندازهٔ واقعیِ برچسب یک MP3 نیست. تقسیم کل۷۶۰۰۰بایت بر۶۴۰۰۰بیتبرثانیه، پس از تبدیل واحد،۹٫۵ثانیه میدهد. بنابراین دو فرضِ نادرستِ «همهٔ بایتها صوتاند» و «همهٔ صوت نرخِ بخش اول را دارد» میتوانند همزمان خطا بسازند.
این مدلِ تکهای حساب بودجهٔ بیت است؛ ساختار فریم MP3، padding، تأخیرِ کدگذار و زمانبندی واقعی را پیاده نکرده است. برای فایل واقعی، این اعداد را جای parser یا رمزگشایی معتبر نگذارید.
وقتی دو ابزار مدت متفاوت نشان میدهند
- مطمئن شوید هر دو دقیقاً همان نسخهٔ فایل را میخوانند؛ نسخهٔ دانلود ناقص را با اصل مقایسه نکنید.
- نام ابزار، نسخه و اینکه مدت تخمینی است یا از مسیر خواندن جریان به دست آمده ثبت شود.
- ابتدا و پایانِ فایل را در ابزار معتبر بررسی کنید؛ بازشدن آغاز فایل، کاملبودن انتهایش را ثابت نمیکند.
- اگر مدت مبنای قرارداد یا هزینه است، روش اندازهگیری مورد قبول را با ارائهدهنده نهایی کنید و اختلاف حلنشده را پنهان نکنید.
برای بررسی انتخاب ورودی، تفاوت ظرف و کدک فایل صوتی را بخوانید. تغییر پسوند یا تبدیل به فایل بزرگتر، منشأ اختلاف را تشخیص نمیدهد. در صوت PCM معلوم، نرخ نمونه و تعداد فریم مسیر دیگری برای حساب مدت فراهم میکنند؛ آن روش را به MP3 فشرده تعمیم ندهید.
فایل تمرین و مسیر بعد
Python واقعاً مدت۴، دو برآورد نادرست۸و۹٫۵ و میانگینِ نرخ۱۲۸۰۰۰را با Fraction کنترل کرده است. هیچ ابزار پخش، آزمون شنیداری یا دقت موتور گفتار آزمایش نشده است. برای تحویل به اپرانگار، مدت گزارششده و مشخصات فایل را بدهید و اگر دو مقدار دارید، روش هرکدام را روشن بنویسید.
فایل تمرین و منبع
دو بازهٔ ساختگی و مقدار جداگانهٔ بایت غیرصوتی · حساب دقیقِ مدت معلوم و دو برآوردِ عمداً نادرست
منابع در ۳ نوامبر ۲۰۲۶ خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.