.TH "stretch" "1" "March 25, 2004" "" "Sound Data Time Stretching" .PP .SH "نام (NAME)" stretch \- ابزار کشش زمانی برای داده‌های صوتی .PP .SH "خلاصه دستور (SYNOPSIS)" \fBstretch [\fIگزینه‌ها\fP] [\fIورودی\fP [\fIخروجی\fP]] .PP .SH "توضیحات (DESCRIPTION)" .PP ابزار .B stretch به شما امکان می‌دهد مدت‌زمان یک جریان داده صوتی را بدون اثرگذاری بر زیروبمی (pitch) داده‌های نمونه‌برداری‌شده، افزایش یا کاهش دهید. این ابزار از روش وکودر فاز (phase-vocoding) برای اعمال این اثر بهره می‌برد که معمولاً نتایجی بهتر از روش‌های حوزه زمان به همراه دارد. داده‌های صوتی ورودی می‌توانند از چندین کانال تشکیل شده باشند که در این صورت خروجی نیز چندکاناله خواهد بود. .PP هر دو مقدار \fIورودی\fP و \fIخروجی\fP می‌توانند به‌صورت «-» باشند که به ترتیب نشان‌دهنده خواندن داده‌های سیگنال از \fIstdin\fP یا نوشتن در \fIstdout\fP است (برای دستیابی به همین اثر، می‌توانید نام فایل‌ها را نیز حذف کنید، به این ترتیب که ابتدا نام \fIخروجی\fP حذف می‌شود). در هر دو حالت، قالب نمونه‌ها به‌صورت علامت‌دار ۱۶ بیتی لیتل-اندین (معروف به قالب CD) است. .PP برای دسترسی به فایل‌های فیزیکی، این ابزار از کتابخانه \fIsndfile\fP استفاده می‌کند. ابزار تلاش می‌کند قالب مورد نظر برای فایل خروجی را بر اساس پسوند نام فایل حدس بزند؛ علاوه بر این، می‌توانید عمق بیت خروجی (کوانتیزاسیون) را با پارامتر \fB-b\fP (\fB--bits\fP) مشخص کنید. .PP این ابزار قادر به بازنویسی مستقیم محتویات فایل ورودی نیست. .SH "گزینه‌ها (OPTIONS)" .PP ساده‌ترین شیوه اجرای ابزار به این صورت است: .P .br stretch -t 1.5 infile.wav outfile.wav .br .P این مثال مدت‌زمان \fIinfile.wav\fP را به ۱۵۰ ٪ افزایش می‌دهد و نتیجه را در \fIoutfile.wav\fP می‌نویسد. .SS "کاربردی‌ترین گزینه‌ها:" .TP \fI-t, --times\fP نسبتی را تعیین می‌کند که مدت‌زمان سیگنال صوتی با آن مقیاس‌گذاری می‌شود. مقادیر بیش‌ازحد می‌توانند باعث ایجاد ناهنجاری‌های صوتی در سیگنال خروجی شوند که معمولاً به صورت مدولاسیون دوره‌ای دامنه شنیده می‌شوند. برای رسیدن به نسبت انبساط/فشرده‌سازی زمانی دقیق، حاصل‌ضرب این مقدار و پارامتر \fB-o\fP (\fB--overlap\fP) باید یک عدد صحیح باشد. .TP \fI-a, --amplify\fP ضریب تقویت خطی را برای سیگنال خروجی تعیین می‌کند. مقدار پیش‌فرض 1.0 است. .TP \fI-q, --quiet\fP ابزار را بی‌صدا می‌کند تا درباره کارهایی که انجام می‌دهد پیامی نمایش ندهد. .SS "گزینه‌های کنترل پردازش:" .TP \fI-f, --fft\fP طول DFT (تبدیل فوریه گسسته) را تعیین می‌کند که برای دستیابی به بهترین نتیجه باید توانی از دو باشد. مقادیر فرد ممکن است باعث توقف و بروز خطای ابزار شوند. اندازه‌های بزرگ‌تر DFT به قیمت افزایش بار محاسباتی، وضوح فرکانسی بهتری فراهم می‌کنند. مقدار پیش‌فرض ۱۰۲۴ نمونه است. .TP \fI-o, --overlap\fP بازه‌ای را که در آن بازترکیب سیگنال انجام می‌شود کنترل می‌کند. مقادیر کوچک‌تر به قیمت افزایش بار محاسباتی، نتیجه روان‌تری را به همراه دارند. مقدار پیش‌فرض ۱۲۸ نمونه است. .SS "گزینه‌های سیگنال ورودی پایپ‌شده:" .P اگر ورودی سیگنال از \fIstdin\fP باشد، فرض پیش‌فرض درباره قالب داده‌ها (به‌جز قرارداد ۱۶ بیتی علامت‌دار لیتل-اندین که پیش‌تر ذکر شد)، صدای دو کاناله با نرخ نمونه‌برداری 44.1 کیلوهرتز است. گزینه‌های زیر این مقادیر را بازنویسی می‌کنند: .TP \fI-c, --channels\fP بدون هیچ نکته غافلگیرکننده: 1 برای مونو، 2 برای استریو و غیره است. .TP \fI-r, --rate\fP نرخ نمونه‌برداری را تنظیم می‌کند. .SS "عمق بیت خروجی:" .TP \fI-b, --bits\fP عمق بیت خروجی را مشخص می‌کند (تنها برای خروجی فایل فیزیکی). ۸، ۱۶ یا ۲۴ برای اعداد صحیح علامت‌دار، ۳۲ یا ۶۴ برای ممیز شناور. مقدار پیش‌فرض ۱۶ بیت است. (دقت محاسبات داخلی به‌صورت ممیز شناور ۳۲ بیتی است.) .TP \fI-l, --limit\fP این گزینه باعث می‌شود ابزار دامنه سیگنال خروجی را برش (clip) دهد تا در محدوده کوانتیزاسیون خروجی، یا در صورت استفاده از قالب ممیز شناور، در محدوده [-1,+1] باقی بماند. استفاده از این فلگ در شرایطی که خروجی در قالب عدد صحیح است (مقدار \fB--bits\fP کمتر از ۳۲ یا خروجی به \fIstdout\fP) به‌شدت توصیه می‌شود. .SS "گزینه‌های اطلاعاتی:" .TP \fI-h, --help\fP اطلاعات نسخه و فهرستی از قالب‌ها و پسوندهای پشتیبانی‌شده فایل را چاپ کرده و سپس خارج می‌شود. .TP \fI-v, --version\fP اطلاعات نسخه را چاپ کرده و سپس خارج می‌شود. .SH "مثال‌ها (EXAMPLES)" چند نمونه از فراخوانی‌های ابزار، همگی با این فرض که داده‌های منبع در قالب CD هستند (نمونه‌های علامت‌دار ۱۶ بیتی، استریو، 44.1 کیلوهرتز): .TP stretch -o 100 -t 1.2 cdda.wav | aplay -fcd .P مدت‌زمان \fIcdda.wav\fP را دقیقاً به ۱۲۰ ٪ می‌کشد و خروجی را برای پخش بی‌درنگ به برنامه \fIaplay\fP ارسال (pipe) می‌کند. .TP cat file.ogg | oggdec - | stretch -t.8 | aplay -fcd .P یک جریان \fIogg\fP را پخش می‌کند که با فشرده‌سازی زمانی، مدت آن به ۸۰ ٪ کاهش یافته است. اگر \fImp3\fP را ترجیح می‌دهید، دستور معادل آن به این صورت است: .TP madplay -o raw:- file.mp3 | stretch -t.8 | aplay -f cd .P .SH "اشکالات (BUGS)" تجزیه ضعیف خط فرمان و پیام‌های بازخورد خطا. ترکیب‌های متعددی از قالب‌های فایل خروجی و کوانتیزاسیون، و همچنین عملکرد روی سیستم‌های بیگ-اندین (big-endian) آزمایش نشده‌اند. وکودر فاز تعداد زیادی از چرخه‌های CPU را مصرف می‌کند. .SH "نویسندگان (AUTHORS)" پیاده‌سازی اصلی وکودر فاز توسط Mark Dolson در UCSD به عنوان بخشی از مجموعه CARL انجام شده و توسط Richard Dobson با مهارت به عملکرد جریانی (streaming) تبدیل گردیده است. .P ابزار stretch و این صفحه راهنما توسط Tim Goetze نوشته شده است. .SH "صفحه خانگی (HOMEPAGE)" آخرین نسخه این ابزار را می‌توان از نشانی زیر دریافت کرد: \fIhttp://quitte.de/dsp/pvoc.html\fP