.TH ALSABAT 1 "20th October 2015" .SH "نام (NAME)" alsabat \- آزمون\zwnjگر صوتی خط فرمان برای درایور کارت صدای ALSA .SH "خلاصه دستور (SYNOPSIS)" \fBalsabat\fP [\fIفلگ‌ها\fP] .SH "توضیحات (DESCRIPTION)" ابزار \fBALSABAT(ALSA Basic Audio Tester)\fP یک ابزار خط فرمانی ساده است که به منظور کمک به خودکارسازی تست درایورهای صوتی و سرورهای صدا با کمترین دخالت انسانی طراحی شده است. ALSABAT می\zwnjتواند برای بررسی کیفیت صدا، تست فشار قابلیت\zwnjها و آزمودن صدا قبل و بعد از تغییرات وضعیت مدیریت توان (PM) استفاده شود. طراحی ALSABAT نسبتاً ساده است. ALSABAT یک جریان صوتی را پخش کرده و همان جریان را از طریق لوپ\zwnjبک دیجیتال یا آنالوگ ضبط می\zwnjکند. سپس جریان ضبط\zwnjشده را با استفاده از تبدیل سریع فوریه (FFT) با سیگنال اصلی مقایسه می\zwnjکند تا قبولی یا ردی آزمون را تعیین نماید. دستور ALSABAT می\zwnjتواند یا به\zwnjطور کامل روی ماشین هدفِ تحت آزمایش اجرا شود (حالت مستقل - standalone) یا به صورت کلاینت/سرور اجرا گردد؛ به\zwnjطوری\zwnjکه کلاینت alsabat روی ماشین هدف و سرور آن روی یک ماشین آزمون\zwnjگر جداگانه اجرا شود. حالت کلاینت/سرور همچنان نیازمند مقداری تعامل دستی برای همگام\zwnjسازی است، اما این ویژگی برای انتشار نسخه\zwnjهای آینده به\zwnjطور فعال در حال توسعه است. پیکربندی سخت\zwnjافزاری تست ممکن است به استفاده از کابل آنالوگ برای اتصال ماشین هدف به آزمون\zwnjگر نیاز داشته باشد، یا یک کابل برای ایجاد لوپ\zwnjبک آنالوگ، در صورتی که سخت\zwnjافزار صوتی تحت آزمون فاقد قابلیت لوپ\zwnjبک داخلی باشد. برای ایجاد لوپ\zwnjبک می\zwnjتوان از کابل لوپ\zwnjبک آنالوگ جهت اتصال جک "line in" به "line out" استفاده کرد. اگر فقط جک هدفون و میکروفون (یا جک ترکیبی combo) در دسترس باشد، می\zwnjتوان از مدار ساده زیر برای ساخت لوپ\zwnjبک آنالوگ استفاده نمود: https://source.android.com/devices/audio/loopback.html اگر tinyalsa در سیستم نصب باشد، کاربر می\zwnjتواند با گزینه پیکربندی "--enable-alsabat-backend-tiny" کتابخانه tinyalsa را به\zwnjعنوان کتابخانه زیرساخت (backend) انتخاب کند. .SH "گزینه‌ها (OPTIONS)" .TP \fI\-h, \-\-help\fP راهنما: نمایش نحو دستور. .TP \fI\-D\fP انتخاب کارت صدا جهت آزمایش بر اساس نام. .TP \fI\-P\fP انتخاب دستگاه پخش PCM. .TP \fI\-C\fP انتخاب دستگاه ضبط PCM. .TP \fI\-f\fP قالب نمونه\zwnjبرداری (Sample format). .br قالب\zwnjهای نمونه\zwnjبرداری شناخته\zwnjشده عبارتند از: U8 S16_LE S24_3LE S32_LE .br برخی از این موارد ممکن است در سخت\zwnjافزار انتخاب\zwnjشده پشتیبانی نشوند. .br میان\zwnjبرهای قالبی در دسترس عبارتند از: .nf \-f cd (16 bit little endian, 44100, stereo) [\-f S16_LE \-c2 \-r44100] \-f dat (16 bit little endian, 48000, stereo) [\-f S16_LE \-c2 \-r48000] .fi اگر قالبی مشخص نشود، S16_LE استفاده می\zwnjشود. .TP \fI\-c\fP تعداد کانال\zwnjها. پیش\zwnjفرض یک کانال است. مقادیر معتبر در حال حاضر ۱ یا ۲ هستند. .TP \fI\-r\fP نرخ نمونه\zwnjبرداری بر حسب هرتز. نرخ پیش\zwnjفرض ۴۴۱۰۰ هرتز است. مقادیر معتبر به پشتیبانی سخت\zwnjافزار بستگی دارد. .TP \fI\-n\fP مدت زمان سیگنال تولیدشده. مقدار می\zwnjتواند به یکی از دو فرم زیر باشد: .br ۱. عدد صحیح ده\zwnjدهی، به معنی تعداد فریم\zwnjها؛ .br ۲. ممیز شناور با پسوند 's'، به معنی تعداد ثانیه\zwnjها. .br پیش\zwnjفرض ۲ ثانیه است. .TP \fI\-k\fP مقدار ضریب سیگما (Sigma k) برای تحلیل. .br تابع تحلیل، داده\zwnjها را از فایل WAV می\zwnjخواند، FFT را روی داده\zwnjها اجرا می\zwnjکند تا بزرگی بردارهای فرکانس را به دست آورد، و سپس مقدار میانگین و انحراف معیار بردارهای فرکانس را محاسبه می\zwnjنماید. پس از آن، آستانه تعریف می\zwnjشود: .br threshold = k * standard_deviation + mean_value .br فرکانس\zwnjهایی با دامنه بزرگتر از آستانه به\zwnjعنوان پیک (peak) شناخته می\zwnjشوند، و فرکانس با بزرگترین مقدار پیک به\zwnjعنوان فرکانس تشخیص\zwnjداده\zwnjشده شناسایی می\zwnjگردد. .br سپس ALSABAT فرکانس شناسایی\zwnjشده را با فرکانس هدف مقایسه می\zwnjکند تا مشخص کند که آیا آزمون قبول شده یا رد شده است. .br مقدار پیش\zwnjفرض ۳٫۰ است. .TP \fI\-F\fP فرکانس هدف برای تولید سیگنال و تحلیل، بر حسب هرتز. پیش\zwnjفرض ۹۹۷٫۰ هرتز است. محدوده معتبر عبارت است از (DC_THRESHOLD, 40% * Sampling rate). .TP \fI\-p\fP تعداد کل دوره\zwnjها (periods) برای پخش یا ضبط. .TP \fI\-\-log=#\fP نوشتن خروجی stderr و stdout در این فایل گزارش. .TP \fI\-\-file=#\fP فایل صوتی WAV ورودی برای پخش. .TP \fI\-\-saveplay=#\fP فایل WAV مقصد برای ذخیره محتوای تست ضبط\zwnjشده. .TP \fI\-\-local\fP حالت لوپ\zwnjبک داخلی. پخش، ضبط و تحلیل فقط در داخل ALSABAT انجام می\zwnjشود. این ویژگی برای توسعه\zwnjدهندگان جهت تست قابلیت\zwnjهای جدید ALSABAT طراحی شده است زیرا هیچ صدایی به خارج از ALSABAT هدایت نمی\zwnjشود. .TP \fI\-\-standalone\fP افزودن پشتیبانی از حالت مستقل که در آن ALSABAT بر روی ماشینی متفاوت از ماشین تحت آزمون اجرا خواهد شد. در حالت مستقل، داده\zwnjهای صوتی همانند حالت عادی می\zwnjتوانند تولید، پخش و ضبط شوند، اما تحلیل نخواهند شد. ابزار ALSABAT که بدون پشتیبانی از libfftw3 کامپایل شده باشد همیشه در حالت مستقل است. ابزار ALSABAT در حالت عادی نیز می\zwnjتواند با استفاده از گزینه "--standalone" از مرحله تحلیل داده\zwnjها عبور کند. .TP \fI\-\-roundtriplatency\fP تست تأخیر رفت و برگشت (Round trip latency). تأخیر صدا مدت زمانی است که یک سیگنال صوتی از درون یک سیستم عبور می\zwnjکند. معیارهای تأخیر صوتی مختلفی وجود دارد. یک معیار مفید، تأخیر رفت و برگشت است که مجموع تأخیر خروجی و تأخیر ورودی است. .TP \fI\-\-snr\-db=#\fP آستانه تشخیص نویز بر حسب SNR (دسی\zwnjبل). مقدار 26dB نشان\zwnjدهنده ۵٪ نویز در دامنه است. اگر SNR سیگنال کمتر از آستانه باشد، ALSABAT خطا برمی\zwnjگرداند. .TP \fI\-\-snr\-pc=#\fP آستانه تشخیص نویز بر حسب درصد دامنه نویز (٪). اگر دامنه نویز بزرگتر از آستانه باشد، ALSABAT خطا برمی\zwnjگرداند. .SH "مثال‌ها (EXAMPLES)" .TP \fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR تولید و پخش یک موج سینوسی ۲۵۰ هرتز با ۲ کانال و قالب S32_LE، و سپس ضبط و تحلیل آن. .TP \fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR پخش فایل RIFF WAV به نام "500Hz.wav" که شامل داده\zwnjهای LPCM شکل موج ۵۰۰ هرتز است، و سپس ضبط و تحلیل آن. .SH "مقادیر بازگشتی (RETURN VALUE)" .br در صورت موفقیت، مقدار ۰ را برمی\zwnjگرداند. .br اگر هیچ پیکی شناسایی نشود، مقدار 1001- را برمی\zwnjگرداند؛ .br اگر فقط مولفه DC شناسایی شود، مقدار 1002- را برمی\zwnjگرداند؛ .br اگر فرکانس پیک با فرکانس هدف تطابق نداشته باشد، مقدار 1003- را برمی\zwnjگرداند. .SH "همچنین ببینید (SEE ALSO)" \fB aplay(1) \fP .SH "اشکالات (BUGS)" در حال حاضر تنها از قالب RIFF WAV با داده\zwnjهای PCM پشتیبانی می\zwnjشود. لطفاً هرگونه اشکال را به فهرست ایمیل alsa-devel گزارش دهید. .SH "نویسندگان (AUTHORS)" ابزار \fBalsabat\fP توسط Liam Girdwood ، Bernard Gautier و Han Lu نوشته شده است. این سند توسط Liam Girdwood و Han Lu تهیه شده است.