صدا audio
صدا به شکل قطعهای از نمونهها: بریدن، آمیختن، سنجیدن و برگرداندن آن.
واردسازی audio
این بسته میانه هر کاری است که در سلام با صدا سر و کار دارد. یک قطعه خود صدا را نگه میدارد: نمونههای ساده اعشار سی و دو بیتی میان منهای یک و یک، فریم پس از فریم و کانالها در کنار هم. خواندن و نوشتن پرونده کار بستههای قالب است، امروز صدا.ویو، و صدا.کدک هر یک از آنها را بی آنکه بگویید کدام باز میکند. صافیها، تبدیل فوریه و بازنمونهگیری دقیق در صدا.پردازش سیگنال هستند.
آنچه اینجاست قطعه است و هر چیزی که نیازی به دانستن قالب پرونده ندارد: بریدن، پیوستن، آمیختن، محو کردن، سنجیدن بلندی صدا، رفتن میان تککاناله و دوکاناله و میان نرخهای نمونه، و خواننده بیتی که از پرارزشترین بیت میخواند و هر کدک صدا بر رویش نوشته میشود.
دانستنیها
- نمونهها اعشار سی و دو بیتیاند. هر قطعه مالک آن حافظه است؛ با
آزادسازیرهایش کنید. - چون یک اعشار بیست و چهار بیت مانتیس دارد، صدای هشت، شانزده و بیست و چهار بیتی رفت و برگشت از یک قطعه را دقیق پشت سر میگذارد. تنها منبع صحیح سی و دو بیتی هشت بیت کمارزش خود را از دست میدهد.
- یک ترانه دوکاناله سه دقیقهای با نرخ ۴۴۱۰۰ نزدیک ۶۳ مگابایت قطعه میشود، پس پرونده بلند را تکه تکه کدگشایی کنید نه یکجا.
بیت هاعمقی را که قطعه با آن خوانده شد به یاد میآورد، پس نوشتن دوباره همان عمق را نگه میدارد. قطعهای که باجدیدساخته شده عمقی ندارد و کدگذاری آنگاه شانزده بیت را برمیگزیند.- هر چیزی که ناکام بماند جای ایستادن برنامه یک قطعه خالی برمیگرداند، پس با
خالی استبسنجید. خواننده بیتاز پرارزشترین بیت میخواند.خواننده بیتدر فشرده سازی از آن سو میخواند، برای دیفلیت، و جای این یکی را نمیگیرد.
یک قطعه صدا
قطعه یک نرخ است و یک شمار کانال و یک شمار فریم و نمونهها. جدید سکوتی به شما میدهد تا پرش کنید؛ تنظیم نمونه و نمونه هر بار به یک نمونه با فریم و کانال میرسند. هر فریم یک نمونه برای هر کانال است، پس قطعهای دوکاناله با صد فریم دویست نمونه دارد.
هر قطعه حافظه خودش را دارد، پس هر یک را با آزادسازی رها کنید. خواندن یا نوشتن بیرون از قطعه خطا نیست: نمونه صفر میدهد و تنظیم نمونه کاری نمیکند، که حلقهها را در لبهها ساده نگه میدارد.
چه اندازه بلند است
اوج دورترین جایی است که یک نمونه از صفر میرسد و جذر میانگین مربع بلندی را چنان پی میگیرد که گوش میشنود. هر دو شکل دسیبلی دارند، که در آن صفر دسیبل بلندترین چیزی است که یک نمونه میتواند باشد و هر چه آرامتر منفی است. بهره به دسیبل و دسیبل به بهره میان ضریب ساده و دسیبل میروند.
سکوت دسیبل ندارد، پس بهره به دسیبل(0.0) جای رفتن به منهای بینهایت کف سکوت را برمیگرداند. نخستین صدا و آخرین صدا پیدا میکنند که صدا به راستی کجا آغاز و کجا تمام میشود، و برش سکوت بر همان ساخته شده است.
بریدن و پیوستن
برش و برش زمانی تکهای را بیرون میکشند، با فریم یا با زمان؛ پیوند یک قطعه را پس از دیگری میگذارد و آمیختن آنها را روی هم میخواباند. هنجارسازی قطعه را چنان مقیاس میکند که اوجش درست همان جا بنشیند که میخواهید، و دو محو دو سر را شکل میدهند تا برش تقه نزند.
پیوستن و آمیختن از هر دو قطعه میخواهند که بر نرخ نمونه و شمار کانال همداستان باشند، و وقتی نیستند قطعهای خالی برمیگردانند. نخست به نرخ و به کانالها را به کار ببرید تا همتراز شوند.
نرخها، کانالها و عمقها
به یککاناله کانالها را میانگین میگیرد و به دوکاناله یک کانال را روی دو پهن میکند. به نرخ نرخ نمونه را با درونیابی میان نمونهها عوض میکند، که تند است و برای گفتار بس؛ برای موسیقی بازنمونه سینک از صدا.پردازش سیگنال را به کار ببرید. به بیت پرونده نمینویسد، نمونهها را به پلههای یک عمق گرد میکند تا بشنوید آن عمق چه هزینهای دارد.
جداسازی کانالها برای هر کانال یک قطعه پس میدهد که باید هر یک را آزاد کنید، و درهمبافی کانالها آنها را باز به هم میبافد.
این کدام قالب است
شناسایی قالب به چند بایت آغازین نگاه میکند و قالب از پسوند به نام پرونده. هر دو با شمارهای از قالب پاسخ میدهند، که نام قالب آن را به نامی کوتاه برمیگرداند. دانستن قالب یعنی این ساخت میتواند کدگشاییاش کند نیست: برای آن از کدگشایی شدنی در صدا.کدک بپرسید.
آگاهی آن است که پرونده از خودش میگوید، و بستههای قالب آن را با خواندن سرآیند پر میکنند نه همه پرونده. این راه کمهزینه نشان دادن یک مدت یا یک نرخ بیت در فهرست است.
خواندن یک جریان بیت
صدای فشرده در بایت چیده نشده، در بیت چیده شده، و هر قالبی از امپیتری تا فلاک آن بیتها را از سوی پرارزش میشمارد. خواننده بیت همین کار را میکند، با خواندن بیتها علامتدار برای میدانهای مکمل دو و خواندن یکانی برای آن رشته صفر که کدهای رایس و گلومب بر آن ساخته شدهاند. نویسنده بیت همان است از سوی دیگر.
خواندن از انتها برنامه را نمیایستاند: صفر پس میدهد و خراب را درست میکند که درست میماند، پس یک سنجش پس از گروهی خواندن بس است. باز یادآور میشویم که فشرده سازی خواننده بیت خودش را دارد که از آن سو میرود، برای دیفلیت؛ آن را برای صدا به کار نبرید.
| کار | با چه |
|---|---|
| ساختن و آزاد کردن قطعه | جدید، سکوت جدید، کپی، آزادسازی |
| رسیدن به نمونهها | نمونه، تنظیم نمونه، افزودن نمونه، داده |
| بریدن و پیوستن | برش، برش زمانی، پیوند، آمیختن، شکافتن، تکرار صدا |
| شکل دادن صدا | بهره، هنجارسازی، محو ورودی، محو خروجی، محدود کردن |
| سنجیدن آن | اوج، جذر میانگین مربع، اوج دسیبل، انحراف جریان مستقیم، ساکت است |
| عوض کردن شکلش | به یککاناله، به دوکاناله، به نرخ، به بیت |
| یافتن قالب | شناسایی قالب، قالب از پسوند، نام قالب |
| نوشتن یک کدک | خواننده بیت، نویسنده بیت |
گونهها
قطعه Clip
ساختار قطعه| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| نرخ | rate | صحیح = 0 | فریم در هر ثانیه، مثلا ۴۴۱۰۰. |
| کانال ها | channels | صحیح = 0 | هر فریم چند کانال دارد؛ یک برای تککاناله و دو برای دوکاناله. |
| فریم ها | frames | صحیح = 0 | قطعه چند فریم دارد. هر فریم یک نمونه برای هر کانال است. |
| بیت ها | bits | صحیح = 0 | عمق بیتی که نمونهها از آن آمدهاند، یا صفر وقتی در حافظه ساخته شدهاند. کدگذاری که عمق خودش را ندارد شانزده بیت مینویسد. |
| نمونه ها | samples | تهی* | خود نمونهها، اعشار سی و دو بیتی، فریم پس از فریم و کانالها در کنار هم. |
واردسازی صدا
تابع ریشه:
ناپایا ق := صدا.جدید(8000، 2، 400)
سرچاپ ق.نرخ، ق.کانال ها، ق.فریم ها، ق.بیت ها
سرچاپ صدا.شمار نمونه(ق)، صدا.مدت(ق)، صدا.خالی است(ق)
صدا.تنظیم نمونه(ق، 0، 0، 0.5)
صدا.تنظیم نمونه(ق، 0، 1، -0.25)
صدا.افزودن نمونه(ق، 0، 0، 0.25)
سرچاپ صدا.نمونه(ق، 0، 0)، صدا.نمونه(ق، 0، 1)، صدا.نمونه(ق، 399، 0)
سرچاپ صدا.نمونه(ق، 4000، 0)، صدا.در محدوده(ق، 399، 1)، صدا.در محدوده(ق، 400، 0)
سرچاپ صدا.فریم در زمان(ق، 0.025)، صدا.ثانیه در فریم(ق، 200)، صدا.فریم در زمان(ق، 99.0)
ناپایا ک := صدا.کپی(ق)
سرچاپ صدا.نمونه(ک، 0، 0)، صدا.اوج(ک)
صدا.ساکت کردن(ک)
سرچاپ صدا.اوج(ک)
ناپایا س := صدا.سکوت جدید(8000، 1، 0.25)
سرچاپ س.فریم ها، صدا.بیشینه نمونه
صدا.آزادسازی(ق)
سرچاپ صدا.خالی است(ق)، ق.فریم ها
صدا.آزادسازی(ک)
صدا.آزادسازی(س)
پایانخواننده بیت MsbReader
ساختار خواننده بیت| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| داده | data | تهی* | بایتهایی که خوانده میشوند. |
| طول | len | صحیح = 0 | چند بایت هست. |
| جا | pos | صحیح = 0 | کدام بایت بعدی است. |
| انباره | acc | صحیح۶۴ = 0 | بیتهایی که از بایتها بیرون کشیده شدهاند ولی هنوز پس داده نشدهاند. |
| شمار بیت | nbits | صحیح = 0 | چند بیت در انباره منتظر است. |
| خراب | bad | منطقی = نادرست | درست میشود وقتی خواندن از انتها گذشت و درست میماند. |
واردسازی صدا
واردسازی فشرده سازی
تابع ریشه:
ناپایا ن := صدا.نویسنده بیت جدید()
صدا.نوشتن بیتها(ن، 10، 4)
صدا.نوشتن بیتها(ن، 5، 4)
سرچاپ صدا.طول نویسنده(ن)
صدا.نوشتن بیتها(ن، 60، 8)
بایتها := صدا.پایان نویسنده(ن)
سرچاپ فشرده سازی.طول بافر(بایتها)، فشرده سازی.دریافت بایت(بایتها، 0)، فشرده سازی.دریافت بایت(بایتها، 1)
ناپایا خ := صدا.خواننده بیت از بافر(بایتها)
سرچاپ صدا.خواندن بیتها(خ، 4)، صدا.خواندن بیتها(خ، 4)، صدا.خواندن بیتها(خ، 8)، صدا.خواننده خراب(خ)
ناپایا ع := صدا.خواننده بیت از بافر(بایتها)
سرچاپ صدا.خواندن بیتها علامتدار(ع، 4)، صدا.خواندن بیت(ع)، صدا.جای خواننده(ع)
ناپایا ت := صدا.خواننده بیت از بافر(بایتها)
سرچاپ صدا.خواندن بیتها بزرگ(ت، 16)
ناپایا ی := صدا.نویسنده بیت جدید()
صدا.نوشتن یکانی(ی، 0)
صدا.نوشتن یکانی(ی، 3)
صدا.نوشتن یکانی(ی، 7)
رشته := صدا.پایان نویسنده(ی)
ناپایا خی := صدا.خواننده بیت از بافر(رشته)
سرچاپ صدا.خواندن یکانی(خی)، صدا.خواندن یکانی(خی)، صدا.خواندن یکانی(خی)
ناپایا ج := صدا.خواننده بیت از بافر(بایتها)
صدا.پرش بیت(ج، 8)
سرچاپ صدا.خواندن بیتها(ج، 8)
صدا.جابجایی خواننده(ج، 4)
سرچاپ صدا.خواندن بیتها(ج، 4)، صدا.جای خواننده(ج)، صدا.باقیمانده خواننده(ج)
ناپایا ک := صدا.خواننده بیت از بافر(بایتها)
صدا.خواندن بیتها(ک، 3)
صدا.همتراز کردن خواننده(ک)
سرچاپ صدا.خواندن بیتها(ک، 8)
ناپایا پ := صدا.نویسنده بیت جدید()
صدا.نوشتن بیت(پ، 1)
صدا.همتراز کردن نویسنده(پ)
پرشده := صدا.پایان نویسنده(پ)
سرچاپ فشرده سازی.طول بافر(پرشده)، فشرده سازی.دریافت بایت(پرشده، 0)
ناپایا زیاد := صدا.خواننده بیت جدید(بایتها.data، 1)
صدا.خواندن بیتها(زیاد، 16)
سرچاپ صدا.خواننده خراب(زیاد)
صدا.آزادسازی نویسنده(ن)
صدا.آزادسازی نویسنده(ی)
صدا.آزادسازی نویسنده(پ)
پایاننویسنده بیت MsbWriter
ساختار نویسنده بیت| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| بافر | buf | compress.ByteBuf | بایتهایی که تا اینجا نوشته شدهاند. |
| انباره | acc | صحیح۶۴ = 0 | بیتهایی که هنوز برای ساختن یک بایت کامل نیستند. |
| شمار بیت | nbits | صحیح = 0 | چند بیت در انباره منتظر است. |
نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
آگاهی Info
ساختار آگاهی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| قالب | format | صحیح = 0 | کدام قالب است، یکی از شمارههای قالب. |
| نرخ | rate | صحیح = 0 | فریم در هر ثانیه. |
| کانال ها | channels | صحیح = 0 | چند کانال. |
| فریم ها | frames | صحیح = 0 | چند فریم، پس چه اندازه بلند. |
| بیت ها | bits | صحیح = 0 | بیت برای هر نمونه. |
| نرخ بیت | bitrate | صحیح = 0 | بیت در هر ثانیه صدا. |
| نرخ متغیر | vbr | منطقی = نادرست | درست وقتی نرخ بیت در طول پرونده عوض میشود. |
| مدت | duration | اعشار۶۴ = 0 | چند ثانیه بلند است. |
| بی اتلاف | lossless | منطقی = نادرست | درست وقتی کدگشایی همان را برمیگرداند که کدگذاری شده بود. |
واردسازی صدا
واردسازی صدا.ویو
واردسازی فشرده سازی
تابع ریشه:
ناپایا ق := صدا.جدید(44100، 2، 44100)
بافر := ویو.کدگذاری ویو(ق)
سرچاپ صدا.نام قالب(صدا.شناسایی قالب(بافر.data، بافر.len))
سرچاپ صدا.شناسایی قالب(بافر.data، 4) برابر صدا.قالب نامشخص
سرچاپ صدا.نام قالب(صدا.قالب از پسوند("song.flac"))، صدا.نام قالب(صدا.قالب از پسوند("SONG.WAV"))
سرچاپ صدا.نام قالب(صدا.قالب از پسوند("a.mp3"))، صدا.نام قالب(صدا.قالب از پسوند("a.ogg"))، صدا.نام قالب(صدا.قالب از پسوند("a.mid"))
سرچاپ صدا.نام قالب(صدا.قالب از پسوند("notes.txt"))، صدا.نام قالب(999)
سرچاپ صدا.قالب بیاتلاف است(صدا.قالب ویو)، صدا.قالب بیاتلاف است(صدا.قالب فلاک)، صدا.قالب بیاتلاف است(صدا.قالب امپیتری)
ناپایا درستی := نادرست
آگاه := ویو.بررسی ویو(بافر.data، بافر.len، درستی)
سرچاپ درستی، صدا.نام قالب(آگاه.قالب)
سرچاپ آگاه.نرخ، آگاه.کانال ها، آگاه.بیت ها، آگاه.فریم ها
سرچاپ آگاه.مدت، آگاه.نرخ بیت، آگاه.بی اتلاف، آگاه.نرخ متغیر
فشرده سازی.آزادسازی بافر(بافر)
صدا.آزادسازی(ق)
پایانپایاها و متغیرها
بیشینه نمونه MaxSamples
پایا بیشینه نمونه: صحیح۳۲ = 536870912نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
کف سکوت SilenceFloorDb
پایا کف سکوت: اعشار۶۴ = -200واردسازی صدا
تابع ریشه:
ناپایا ق := صدا.جدید(8000، 1، 4)
صدا.تنظیم نمونه(ق، 0، 0، 1.0)
صدا.تنظیم نمونه(ق، 1، 0، -0.5)
صدا.تنظیم نمونه(ق، 2، 0، 0.0)
صدا.تنظیم نمونه(ق، 3، 0، 0.25)
سرچاپ صدا.اوج(ق)، صدا.اوج کانال(ق، 0)، صدا.انحراف جریان مستقیم(ق)
سرچاپ صدا.بریده است(ق)، صدا.شمار بریده(ق)
سرچاپ صدا.بهره به دسیبل(1.0)، صدا.دسیبل به بهره(0.0)
سرچاپ صدا.دسیبل به بهره(صدا.بهره به دسیبل(0.25))
سرچاپ صدا.بهره به دسیبل(0.0)، صدا.کف سکوت، صدا.دسیبل به بهره(صدا.کف سکوت)
سرچاپ صدا.ساکت است(ق، -60.0)، صدا.نخستین صدا(ق، -60.0)، صدا.آخرین صدا(ق، -60.0)
ناپایا شکاف := صدا.جدید(8000، 1، 8)
صدا.تنظیم نمونه(شکاف، 3، 0، 0.5)
صدا.تنظیم نمونه(شکاف، 4، 0، 0.5)
سرچاپ صدا.نخستین صدا(شکاف، -60.0)، صدا.آخرین صدا(شکاف، -60.0)
ناپایا آرام := صدا.جدید(8000، 1، 8)
سرچاپ صدا.ساکت است(آرام، -60.0)، صدا.نخستین صدا(آرام، -60.0)
سرچاپ صدا.جذر میانگین مربع(شکاف)، صدا.جذر میانگین مربع بازه(شکاف، 3، 2)
صدا.آزادسازی(ق)
صدا.آزادسازی(شکاف)
صدا.آزادسازی(آرام)
پایانشمارههای قالب Format…
| نام | انگلیسی | مقدار |
|---|---|---|
| قالب نامشخص | FormatUnknown | 0 |
| قالب ویو | FormatWAV | 1 |
| قالب امپیتری | FormatMP3 | 2 |
| قالب فلاک | FormatFLAC | 3 |
| قالب اوگ | FormatOGG | 4 |
| قالب ایف | FormatAIFF | 5 |
| قالب اواسنیدی | FormatAU | 6 |
| قالب اوپوس | FormatOpus | 7 |
| قالب ایایسی | FormatAAC | 8 |
| قالب میدی | FormatMIDI | 9 |
نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam
تابعها
برش Slice
تابع برش(c: قطعه، from_frame: صحیح، count: صحیح): قطعهواردسازی صدا
تابع شیب(شمار: صحیح): صدا.قطعه:
ناپایا ق := صدا.جدید(8000، 1، شمار)
ناپایا ش := 0
تا ش کوچکتر شمار:
صدا.تنظیم نمونه(ق، ش، 0، (ش برگردان اعشار۶۴) / 32.0)
ش += 1
پایان
برگشت ق
پایان
تابع ریشه:
الف := شیب(8)
تکه := صدا.برش(الف، 2، 3)
سرچاپ تکه.فریم ها، صدا.نمونه(تکه، 0، 0)، صدا.نمونه(تکه، 2، 0)
سرچاپ صدا.برش زمانی(الف، 0.0، 0.0005).فریم ها، صدا.برش(الف، 6، 10).فریم ها
پیو := صدا.پیوند(تکه، تکه)
سرچاپ پیو.فریم ها، صدا.نمونه(پیو، 3، 0)
سرچاپ صدا.تکرار صدا(تکه، 4).فریم ها
آم := صدا.آمیختن(الف، الف، 1.0، 0.5)
سرچاپ صدا.نمونه(آم، 4، 0)
ناپایا گ := صدا.کپی(الف)
صدا.مقیاس(گ، 2.0)
سرچاپ صدا.نمونه(گ، 1، 0)
صدا.بهره(گ، 0.0)
سرچاپ صدا.نمونه(گ، 1، 0)
صدا.مقیاس(گ، 100.0)
صدا.محدود کردن(گ)
سرچاپ صدا.اوج(گ)
ناپایا ن := صدا.کپی(الف)
صدا.هنجارسازی(ن، 0.0)
سرچاپ صدا.اوج(ن)
ناپایا واگرد := صدا.کپی(الف)
صدا.وارونه کردن(واگرد)
سرچاپ صدا.نمونه(واگرد، 0، 0)، صدا.نمونه(واگرد، 7، 0)
ناپایا م := صدا.کپی(الف)
صدا.محو ورودی(م، صدا.مدت(م))
سرچاپ صدا.نمونه(م، 0، 0)، صدا.نمونه(م، 4، 0)
ناپایا خ := صدا.کپی(الف)
صدا.محو خروجی(خ، صدا.مدت(خ))
سرچاپ صدا.نمونه(خ، 0، 0)
سرچاپ صدا.لایی گذاری(الف، 0.001، 0.001).فریم ها
ناپایا سر := صدا.قطعه {}
ناپایا دنباله := صدا.قطعه {}
صدا.شکافتن(الف، 0.0005، سر، دنباله)
سرچاپ سر.فریم ها، دنباله.فریم ها، صدا.نمونه(دنباله، 0، 0)
ناپایا شکاف := صدا.جدید(8000، 1، 8)
صدا.تنظیم نمونه(شکاف، 3، 0، 0.5)
صدا.تنظیم نمونه(شکاف، 4، 0، 0.5)
سرچاپ صدا.برش سکوت(شکاف، -60.0).فریم ها
ناپایا هدف := صدا.جدید(8000، 1، 8)
صدا.آمیختن در(هدف، تکه، 2، 1.0)
سرچاپ صدا.نمونه(هدف، 2، 0)، صدا.نمونه(هدف، 0، 0)
صدا.آزادسازی(الف)
پایانبرش زمانی Trim
تابع برش زمانی(c: قطعه، from_s: اعشار۶۴، to_s: اعشار۶۴): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
پیوند Concat
تابع پیوند(a: قطعه، b: قطعه): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
آمیختن در MixAt
تابع آمیختن در(dst &: قطعه، src: قطعه، at_frame: صحیح، gain: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
آمیختن Mix
تابع آمیختن(a: قطعه، b: قطعه، gain_a: اعشار۶۴، gain_b: اعشار۶۴): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
شکافتن Split
تابع شکافتن(c: قطعه، at_s: اعشار۶۴، head &: قطعه، tail &: قطعه)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
بهره Gain
تابع بهره(c &: قطعه، db: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
مقیاس Scale
تابع مقیاس(c &: قطعه، factor: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
محدود کردن Clamp
تابع محدود کردن(c &: قطعه)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
هنجارسازی Normalize
تابع هنجارسازی(c &: قطعه، target_db: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
وارونه کردن Reverse
تابع وارونه کردن(c &: قطعه)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
محو ورودی FadeIn
تابع محو ورودی(c &: قطعه، seconds: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
محو خروجی FadeOut
تابع محو خروجی(c &: قطعه، seconds: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
لایی گذاری Pad
تابع لایی گذاری(c: قطعه، before_s: اعشار۶۴، after_s: اعشار۶۴): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
تکرار صدا Repeat
تابع تکرار صدا(c: قطعه، times: صحیح): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
برش سکوت TrimSilence
تابع برش سکوت(c: قطعه، threshold_db: اعشار۶۴): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Edit.salam
جدید New
تابع جدید(rate: صحیح، channels: صحیح، frames: صحیح): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
سکوت جدید NewSilence
تابع سکوت جدید(rate: صحیح، channels: صحیح، seconds: اعشار۶۴): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
آزادسازی Free
تابع آزادسازی(c &: قطعه)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
خالی است IsEmpty
تابع خالی است(c: قطعه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
کپی Clone
تابع کپی(c: قطعه): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
شمار نمونه SampleCount
تابع شمار نمونه(c: قطعه): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
در محدوده InBounds
تابع در محدوده(c: قطعه، frame: صحیح، ch: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
نمونه Sample
تابع نمونه(c: قطعه، frame: صحیح، ch: صحیح): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
تنظیم نمونه SetSample
تابع تنظیم نمونه(c &: قطعه، frame: صحیح، ch: صحیح، v: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
افزودن نمونه AddSample
تابع افزودن نمونه(c &: قطعه، frame: صحیح، ch: صحیح، v: اعشار۶۴)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
داده Data
تابع داده(c: قطعه): اعشار۳۲*نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
مدت Duration
تابع مدت(c: قطعه): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
فریم در زمان FrameAt
تابع فریم در زمان(c: قطعه، seconds: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
ثانیه در فریم SecondsAt
تابع ثانیه در فریم(c: قطعه، frame: صحیح): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
ساکت کردن Silence
تابع ساکت کردن(c &: قطعه)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Clip.salam
کانال Channel
تابع کانال(c: قطعه، ch: صحیح): قطعهواردسازی صدا
تابع ریشه:
ناپایا دو := صدا.جدید(8000، 2، 4)
ناپایا ش := 0
تا ش کوچکتر 4:
صدا.تنظیم نمونه(دو، ش، 0، (ش برگردان اعشار۶۴) / 8.0)
صدا.تنظیم نمونه(دو، ش، 1، 0.0 - (ش برگردان اعشار۶۴) / 16.0)
ش += 1
پایان
دو.بیت ها = 16
تک := صدا.به یککاناله(دو)
سرچاپ تک.کانال ها، صدا.نمونه(تک، 2، 0)، تک.بیت ها
پهن := صدا.به دوکاناله(تک)
سرچاپ پهن.کانال ها، صدا.نمونه(پهن، 2، 0) برابر صدا.نمونه(پهن، 2، 1)
چهار := صدا.به کانالها(تک، 4)
سرچاپ چهار.کانال ها، صدا.نمونه(چهار، 1، 3)
چپ := صدا.کانال(دو، 0)
راست := صدا.کانال(دو، 1)
سرچاپ چپ.کانال ها، صدا.نمونه(چپ، 3، 0)، صدا.نمونه(راست، 3، 0)
تکه := صدا.جداسازی کانالها(دو)
سرچاپ تکه.طول()
بافته := صدا.درهمبافی کانالها(تکه)
سرچاپ بافته.کانال ها، صدا.نمونه(بافته، 3، 1) برابر صدا.نمونه(دو، 3، 1)
پایین := صدا.به نرخ(دو، 4000)
سرچاپ پایین.نرخ، پایین.فریم ها، پایین.بیت ها
بالا := صدا.به نرخ(تک، 16000)
سرچاپ بالا.نرخ، بالا.فریم ها، صدا.نمونه(بالا، 2، 0)
زبر := صدا.به بیت(تک، 4)
سرچاپ زبر.بیت ها، صدا.نمونه(زبر، 1، 0)، صدا.نمونه(زبر، 3، 0)
صدا.آزادسازی(دو)
صدا.آزادسازی(تک)
پایانجداسازی کانالها Deinterleave
تابع جداسازی کانالها(c: قطعه): وکتور<قطعه>نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam
درهمبافی کانالها Interleave
تابع درهمبافی کانالها(parts: وکتور<قطعه>): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam
به یککاناله ToMono
تابع به یککاناله(c: قطعه): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam
به دوکاناله ToStereo
تابع به دوکاناله(c: قطعه): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam
به کانالها ToChannels
تابع به کانالها(c: قطعه، channels: صحیح): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam
به نرخ ToRate
تابع به نرخ(c: قطعه، rate: صحیح): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam
به بیت ToBits
تابع به بیت(c: قطعه، bits: صحیح): قطعهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Convert.salam
خواننده بیت جدید NewMsbReader
تابع خواننده بیت جدید(p: تهی*، n: صحیح): خواننده بیتنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
خواننده بیت از بافر MsbReaderFromBuf
تابع خواننده بیت از بافر(b: compress.ByteBuf): خواننده بیتنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
خواندن بیتها بزرگ MsbReadI64
تابع خواندن بیتها بزرگ(r &: خواننده بیت، count: صحیح): صحیح۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
خواندن بیتها MsbRead
تابع خواندن بیتها(r &: خواننده بیت، count: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
خواندن بیت MsbReadBit
تابع خواندن بیت(r &: خواننده بیت): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
خواندن بیتها علامتدار MsbReadSigned
تابع خواندن بیتها علامتدار(r &: خواننده بیت، count: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
خواندن یکانی MsbUnary
تابع خواندن یکانی(r &: خواننده بیت): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
پرش بیت MsbSkip
تابع پرش بیت(r &: خواننده بیت، count: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
همتراز کردن خواننده MsbAlign
تابع همتراز کردن خواننده(r &: خواننده بیت)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
جای خواننده MsbTell
تابع جای خواننده(r: خواننده بیت): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
جابجایی خواننده MsbSeek
تابع جابجایی خواننده(r &: خواننده بیت، bitpos: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
باقیمانده خواننده MsbLeft
تابع باقیمانده خواننده(r: خواننده بیت): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
خواننده خراب MsbBad
تابع خواننده خراب(r: خواننده بیت): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
نویسنده بیت جدید NewMsbWriter
تابع نویسنده بیت جدید(): نویسنده بیتنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
نوشتن بیتها MsbWrite
تابع نوشتن بیتها(w &: نویسنده بیت، value: صحیح۶۴، count: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
نوشتن بیت MsbWriteBit
تابع نوشتن بیت(w &: نویسنده بیت، bit: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
نوشتن یکانی MsbWriteUnary
تابع نوشتن یکانی(w &: نویسنده بیت، n: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
همتراز کردن نویسنده MsbPad
تابع همتراز کردن نویسنده(w &: نویسنده بیت)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
طول نویسنده MsbLen
تابع طول نویسنده(w &: نویسنده بیت): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
پایان نویسنده MsbFinish
تابع پایان نویسنده(w &: نویسنده بیت): compress.ByteBufنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
آزادسازی نویسنده MsbFree
تابع آزادسازی نویسنده(w &: نویسنده بیت)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Msb.salam
بهره به دسیبل GainToDb
تابع بهره به دسیبل(gain: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
دسیبل به بهره DbToGain
تابع دسیبل به بهره(db: اعشار۶۴): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
اوج Peak
تابع اوج(c: قطعه): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
اوج دسیبل PeakDb
تابع اوج دسیبل(c: قطعه): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
اوج کانال PeakChannel
تابع اوج کانال(c: قطعه، ch: صحیح): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
جذر میانگین مربع RMS
تابع جذر میانگین مربع(c: قطعه): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
جذر میانگین مربع دسیبل RMSDb
تابع جذر میانگین مربع دسیبل(c: قطعه): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
جذر میانگین مربع بازه RMSRange
تابع جذر میانگین مربع بازه(c: قطعه، from_frame: صحیح، count: صحیح): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
انحراف جریان مستقیم DcOffset
تابع انحراف جریان مستقیم(c: قطعه): اعشار۶۴نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
بریده است IsClipped
تابع بریده است(c: قطعه): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
شمار بریده CountClipped
تابع شمار بریده(c: قطعه): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
ساکت است IsSilent
تابع ساکت است(c: قطعه، threshold_db: اعشار۶۴): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
نخستین صدا FirstSound
تابع نخستین صدا(c: قطعه، threshold_db: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
آخرین صدا LastSound
تابع آخرین صدا(c: قطعه، threshold_db: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Measure.salam
شناسایی قالب DetectFormat
تابع شناسایی قالب(p: تهی*، n: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam
قالب از پسوند FormatFromExt
تابع قالب از پسوند(path: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam
نام قالب FormatName
تابع نام قالب(format: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam
قالب بیاتلاف است FormatIsLossless
تابع قالب بیاتلاف است(format: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Formats.salam
میولا به پیسیام MuLawToPcm
تابع میولا به پیسیام(b: صحیح): صحیحواردسازی صدا
واردسازی فشرده سازی
واردسازی ریاضی
تابع ریشه:
سرچاپ صدا.عمق پیسیام معتبر(16)، صدا.عمق پیسیام معتبر(12)، صدا.عمق پیسیام معتبر(32)
ناپایا کلیپ := صدا.جدید(8000، 1، 4)
صدا.تنظیم نمونه(کلیپ، 0، 0، 0.5)
صدا.تنظیم نمونه(کلیپ، 1، 0، -0.5)
صدا.تنظیم نمونه(کلیپ، 2، 0، 0.25)
ناپایا کوچک := فشرده سازی.بافر بایت جدید()
صدا.کدگذاری پیسیام(کوچک، کلیپ، 16، نادرست، نادرست)
سرچاپ فشرده سازی.طول بافر(کوچک)، فشرده سازی.دریافت بایت(کوچک، 0)، فشرده سازی.دریافت بایت(کوچک، 1)
ناپایا بزرگ := فشرده سازی.بافر بایت جدید()
صدا.کدگذاری پیسیام(بزرگ، کلیپ، 16، درست، نادرست)
سرچاپ فشرده سازی.دریافت بایت(بزرگ، 0)، فشرده سازی.دریافت بایت(بزرگ، 1)
ناپایا برگشته := صدا.جدید(8000، 1، 4)
سرچاپ صدا.کدگشایی پیسیام(کوچک.data، 0، برگشته، 16، نادرست، نادرست)
سرچاپ صدا.نمونه(برگشته، 0، 0)، صدا.نمونه(برگشته، 1، 0)، صدا.نمونه(برگشته، 2، 0)
ناپایا برگشته۲ := صدا.جدید(8000، 1، 4)
صدا.کدگشایی پیسیام(بزرگ.data، 0، برگشته۲، 16، درست، نادرست)
سرچاپ صدا.نمونه(برگشته۲، 0، 0) برابر صدا.نمونه(برگشته، 0، 0)
ناپایا شناور := فشرده سازی.بافر بایت جدید()
صدا.کدگذاری اعشاری(شناور، کلیپ، 32، نادرست)
ناپایا برگشته۳ := صدا.جدید(8000، 1، 4)
سرچاپ صدا.کدگشایی اعشاری(شناور.data، شناور.len، 0، برگشته۳، 32، نادرست)
سرچاپ صدا.نمونه(برگشته۳، 0، 0) برابر صدا.نمونه(کلیپ، 0، 0)
سرچاپ صدا.پیسیام به میولا(0)، صدا.میولا به پیسیام(صدا.پیسیام به میولا(0))
سرچاپ صدا.پیسیام به میولا(16000)، صدا.میولا به پیسیام(144)
سرچاپ صدا.پیسیام به ایلا(16000)، صدا.ایلا به پیسیام(186)
ناپایا بیشینه := 0
ناپایا مقدار := -32768
تا مقدار کوچکتر 32768:
فرق := ریاضی.قدرمطلق صحیح(صدا.میولا به پیسیام(صدا.پیسیام به میولا(مقدار)) - مقدار)
اگر فرق بزرگتر بیشینه:
بیشینه = فرق
پایان
مقدار += 7
پایان
سرچاپ بیشینه کوچکتر 820
ناپایا فشرده := فشرده سازی.بافر بایت جدید()
صدا.کدگذاری فشرده(فشرده، کلیپ، نادرست)
سرچاپ فشرده سازی.طول بافر(فشرده)
ناپایا برگشته۴ := صدا.جدید(8000، 1، 4)
سرچاپ صدا.کدگشایی فشرده(فشرده.data، 0، برگشته۴، نادرست)
سرچاپ ریاضی.قدرمطلق(صدا.نمونه(برگشته۴، 0، 0) - 0.5) کوچکتر 0.02
فشرده سازی.آزادسازی بافر(کوچک)
فشرده سازی.آزادسازی بافر(بزرگ)
فشرده سازی.آزادسازی بافر(شناور)
فشرده سازی.آزادسازی بافر(فشرده)
صدا.آزادسازی(کلیپ)
صدا.آزادسازی(برگشته)
صدا.آزادسازی(برگشته۲)
صدا.آزادسازی(برگشته۳)
صدا.آزادسازی(برگشته۴)
پایانپیسیام به میولا PcmToMuLaw
تابع پیسیام به میولا(sample: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
ایلا به پیسیام ALawToPcm
تابع ایلا به پیسیام(b: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
پیسیام به ایلا PcmToALaw
تابع پیسیام به ایلا(sample: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
عمق پیسیام معتبر PcmDepthValid
تابع عمق پیسیام معتبر(bits: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
کدگشایی پیسیام DecodePcm
تابع کدگشایی پیسیام(p: تهی*، off: صحیح، c &: قطعه، bits: صحیح، big: منطقی، unsigned8: منطقی): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
کدگشایی اعشاری DecodeFloatPcm
تابع کدگشایی اعشاری(p: تهی*، total: صحیح، off: صحیح، c &: قطعه، bits: صحیح، big: منطقی): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
کدگشایی فشرده DecodeLawPcm
تابع کدگشایی فشرده(p: تهی*، off: صحیح، c &: قطعه، alaw: منطقی): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
کدگذاری پیسیام EncodePcm
تابع کدگذاری پیسیام(b &: compress.ByteBuf، c: قطعه، bits: صحیح، big: منطقی، unsigned8: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
کدگذاری اعشاری EncodeFloatPcm
تابع کدگذاری اعشاری(b &: compress.ByteBuf، c: قطعه، bits: صحیح، big: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam
کدگذاری فشرده EncodeLawPcm
تابع کدگذاری فشرده(b &: compress.ByteBuf، c: قطعه، alaw: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: audio-Pcm.salam