نمایه‌سازی صوتی

تغییرات پروژه از ابتدا تا تاریخ 1396/08/29
پیدا کردن یک قطعه آهنگ با شنیدن بخشی از آن، نیاز به نمایه‌سازی مجموعه آهنگ‌ها دارد، درست مثل جستجوی واژه‌ها.

# مقدمه:
گاهی در بین راه  یا  در رستوران , در تاکسی آهنگی را  می شنویم که جذبمان می کند . اما نه می توانیم خواننده ی آن  و نه  متن آن را تشخیص بدهیم.
برای رفع این مشکل 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)