پیدا کردن یک قطعه آهنگ با شنیدن بخشی از آن، نیاز به نمایهسازی مجموعه آهنگها دارد، درست مثل جستجوی واژهها. # مقدمه: گاهی در بین راه یا در رستوران , در تاکسی آهنگی را می شنویم که جذبمان می کند . اما نه می توانیم خواننده ی آن و نه متن آن را تشخیص بدهیم. برای رفع این مشکل application هایی مانند shazam , google sound search وجود دارد که با پخش موزیک برای آن , مشخصات موزیک مربوطه را پیدا می کند. Shazam Entertainment Ltd: یک شرکت توسعه نرم افزار بریتانیا است که برنامه ای را ایجاد می کند که می تواند موسیقی، فیلم، تبلیغات و برنامه های تلویزیونی را براساس نمونه ای کوتاه و با استفاده از میکروفون در دستگاه شناسایی کند. این نرم افزار برای ویندوز، macOS و گوشی های هوشمند در دسترس است Google sound search : برنامه ای برای دستگاهای اندرویدی است که به صورت widget قابل استفاده است که پخش موزیک برای آن , نام و خواننده ی موزیک مربوطه را به کاربر اعلام می کند. این application ها علاوه بر تطبیق دادن صدا با آهنگ مربوطه , می بایست noise را از صدای پخش شده نیز بگیرد . در این نوع application ها کار اصلی تبدیل سیگنال پیوسته به گسسته است که امروزه کارت صدای کامپیوتر ها این کار را انجام می دهند. # کارهای مرتبط: در این برنامه ها کار اصلی تبدیل سیگنال دیجیتال به آنالوگ است. فررض کنید سیگنال زیر به عنوان ورودی به برنامه داده می شود.![](https://boute.s3.amazonaws.com/286-large0.png) کامپیوتر سیگنال ورودی را در هر مدت زمان مشخص 1 بار که به آن sample rate گفته می شود از ورودی می خواند و ذخیره می کند.که به آن sample ' گفته می شود. ب طور مثال اگر sample rate 1 باشد , شکل سیگنال به صورت زیر خواهد شد. ![توضیح تصویر](https://boute.s3.amazonaws.com/286-large.png) اصولا sample rate می بایست 2 برابر بیشترین فرکانس صورت باشد (44,100khz) ## Time-Domain and Frequency-Domain: دامنه ی ما می تواند زمان یا فرکانس باشد. الگوریتم اجرای این برنامه نیاز به دامنه ی فرکانسی دارد. از این رو باید دامنه را فرکانسی کنیم ![توضیح تصویر](https://boute.s3.amazonaws.com/286-toptal-blog-image-1422943240761.jpg.png) برای این کار از تبدیل فوریه گسسته استفاده می کنیم . ![توضیح تصویر](https://boute.s3.amazonaws.com/286-444.png) حال هر کدام از sample هارا دسته بندی می کنیم. هر چند sample یک data chunck است . برنامه با استفده از این data chunck ها موزیک را سرچ می کند. # آزمایشها # کارهای آینده # مراجع https://www.bbc.co.uk/education/guides/zpfdwmn/revision/3 https://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-recognition https://en.wikipedia.org/wiki/Time_domain https://en.wikipedia.org/wiki/Sampling_%28signal_processing%29 # پیوندهای مفید ![توضیح تصویر]() 1. [مفهوم نمایه سازی](http://fa.wikipedia.org/wiki/%D9%86%D9%85%D8%A7%DB%8C%D9%87) 2. [Audio Fingerprinting with Python and Numpy](http://willdrevo.com/fingerprinting-and-audio-recognition-with-python.html) 3. [Echoprint](http://echoprint.me/how) 4. [Pydub(python library)](http://pydub.com/) 5. [MySQL on Ubuntu](http://www.cs.wcupa.edu/rkline/index/mysql-lin.html) 6. [Duplicate songs detector via audio fingerprinting](http://www.codeproject.com/Articles/206507/Duplicates-detector-via-audio-fingerprinting)