• Shazam - این برنامه چیست؟ Shazam آنلاین برای کامپیوتر بدون دانلود

    • ترجمه

    یک آهنگ تقریبا فراموش شده در رستوران پخش شد. شما در گذشته های دور به آن گوش داده اید. چقدر آکوردها و کلمات می توانند خاطره های تکان دهنده ای را برای شما تداعی کنند... عاجزانه می خواهید دوباره این آهنگ را گوش کنید، اما اکنون نام آن کاملاً از ذهن شما خارج شده است! چگونه بودن؟ خوشبختانه، در دنیای فوق‌العاده پیشرفته ما، پاسخی برای این سوال وجود دارد.

    یک گوشی هوشمند در جیب خود دارید که بر روی آن برنامه ای برای تشخیص موسیقی نصب شده است. این برنامه نجات دهنده شماست. برای پیدا کردن نام آهنگ، لازم نیست از گوشه ای به گوشه دیگر بروید و سعی کنید خط ارزشمند را از حافظه خود بیرون بیاورید. و مطمئن نیست که کار کند. این برنامه، اگر به آن اجازه دهید به موسیقی "گوش دهد"، بلافاصله نام آهنگ را گزارش می کند. پس از آن، گوش دادن به صداهای دلخواه بارها و بارها امکان پذیر خواهد بود. تا زمانی که با شما یکی شوند، یا - تا زمانی که از این همه خسته شوید.

    استفاده گسترده از نرخ نمونه برداری 44100 هرتز عمدتاً به دلیل شرکت سونی است. در زمان من آهنگ های صوتیبا کدگذاری به این صورت، ترکیب ویدئو در استانداردهای PAL (25 فریم در ثانیه) و NTSC (30 فریم در ثانیه) برای کار با آنها با استفاده از تجهیزات موجود راحت بود. همچنین بسیار مهم است که این فرکانس برای انتقال صدای باکیفیت در محدوده تا 20000 هرتز کافی باشد. دیجیتال تجهیزات صوتیبا استفاده از این نرخ نمونه برداری، از نظر کیفیت کاملاً با تجهیزات آنالوگ آن زمان که استانداردها ایجاد می شد سازگار بود. صدای دیجیتال. در نتیجه، هنگام انتخاب نرخ نمونه برداری صدا هنگام ضبط، به احتمال زیاد روی 44100 هرتز متوقف خواهید شد.

    ضبط: ضبط صدا

    ضبط یک سیگنال صوتی نمونه برداری شده یک کار نسبتاً ساده است. کارت های صوتی مدرن شامل داخلی هستند مبدل های آنالوگ به دیجیتال. بنابراین، کافی است یک زبان برنامه نویسی را انتخاب کنید، یک کتابخانه مناسب برای کار با صدا پیدا کنید، میزان نمونه برداری، تعداد کانال ها (معمولا یک یا دو کانال، به ترتیب برای صدای مونوفونیک و استریوفونیک) را مشخص کنید، تعداد بیت ها را انتخاب کنید. یک نمونه (به عنوان مثال، اغلب از 16 بیت استفاده می شود). سپس باید یک خط داده را از کارت صدا باز کنید، درست مانند باز کردن هر جریان ورودی، و محتوای آن را در یک آرایه بایت بنویسید. در اینجا نحوه انجام آن در جاوا آمده است:

    فرمت صوتی خصوصی getFormat() ( float sampleRate = 44100 ؛ int sampleSizeInBits = 16 ؛ int channels = 1 ؛ //صدای مونو علامت بولی = درست ؛ //پرچم نشان می دهد که آیا از اعداد علامت دار یا بدون علامت استفاده می شود ، bigEndian بولی = درست ؛ / / پرچم نشان می دهد آیا اندیان بزرگ یا اندیان کوچک باید استفاده شود، AudioFormat جدید (sampleRate, sampleSizeInBits, channels, signed, bigEndian); ) فرمت نهایی AudioFormat = getFormat(); //شیء کلاس AudioFormat را با پارامترهای DataLine.Info پر کنید info = new DataLine.Info(TargetDataLine.class, format); خط نهایی TargetDataLine = (TargetDataLine) AudioSystem.getLine(info); line.open(format); line.start();
    اکنون کافی است داده ها را از شی کلاس TargetDataLine بخوانید. مثال از پرچم در حال اجرا استفاده می کند، که یک متغیر جهانی است که می تواند از رشته دیگری تحت تأثیر قرار گیرد. به عنوان مثال، چنین متغیری به ما امکان می دهد ضبط صدا از جریان را متوقف کنیم رابط کاربریبا استفاده از دکمه Stop

    OutputStream out = New ByteArrayOutputStream(); در حال اجرا = درست; try ( while (در حال اجرا) ( int count = line.read (buffer, 0, buffer.length); if (count > 0) ( out.write(buffer, 0, count); ) ) out.close(); ) catch (IOException e) ( System.err.println("مشکلات I/O: " + e)؛ System.exit(-1)؛ )

    حوزه زمان و فرکانس

    آرایه ما حاوی یک نمایش دیجیتال است سیگنال صوتیدر حوزه زمان یعنی ما اطلاعاتی در مورد چگونگی تغییر دامنه سیگنال در طول زمان داریم.

    در قرن نوزدهم، ژان باپتیست ژوزف فوریه یک کشف برجسته انجام داد. در این واقعیت نهفته است که هر سیگنال در حوزه زمانی معادل مجموع تعداد معینی (احتمالا نامتناهی) سیگنال های سینوسی ساده است، مشروط بر اینکه هر سینوسی دارای فرکانس، دامنه و فاز معینی باشد. مجموعه ای از سینوسی ها که سیگنال اصلی را تشکیل می دهند سری فوریه نامیده می شوند.

    به عبارت دیگر، شما می توانید تقریباً هر سیگنالی را که در زمان پخش شده است، به سادگی با تنظیم مجموعه ای از فرکانس ها، دامنه ها و فازهای مربوط به هر یک از سینوسی هایی که این سیگنال را تشکیل می دهند، نشان دهید. این نمایش سیگنال ها مجموعه ای از فواصل فرکانس نامیده می شود. به یک معنا، اطلاعات حوزه فرکانس مانند اثر انگشت یا امضای سیگنال است که در طول زمان آشکار می شود و نمایش ایستا از داده های پویا را به ما می دهد.


    سیگنال های باز شده زمان و آنها ویژگی های فرکانس

    در اینجا یک نمایش متحرک از سری فوریه برای یک موج مربعی 1 هرتز است. همچنین تقریبی از سیگنال اصلی را بر اساس مجموعه ای از سینوسی ها نشان می دهد. نمودار بالا سیگنال را در حوزه دامنه-زمان نشان می دهد، نمودار پایین نمایش آن را در فرم دامنه-فرکانس نشان می دهد.


    تبدیل فوریه در عمل منبع:رنه شوارتز

    تجزیه و تحلیل ویژگی های فرکانس سیگنال ها تا حد زیادی حل بسیاری از مشکلات را تسهیل می کند. کار با چنین ویژگی هایی در زمینه پردازش سیگنال دیجیتال بسیار راحت است. آنها به شما امکان می دهند طیف سیگنال (ویژگی های فرکانس آن) را مطالعه کنید، تعیین کنید که کدام فرکانس در این سیگنال وجود دارد و کدام نیست. پس از آن، می‌توانید فرکانس‌های خاصی را فیلتر، تقویت یا کاهش دهید، یا به سادگی صدایی از یک زیر و بم خاص را در میان مجموعه فرکانس‌های موجود تشخیص دهید.

    تبدیل فوریه گسسته

    بنابراین، ما باید راهی برای به دست آوردن ویژگی های فرکانس سیگنال های مستقر در زمان پیدا کنیم. تبدیل فوریه گسسته (DFT، DFT، تبدیل فوریه گسسته) به ما در این امر کمک می کند. DPF است روش ریاضیتحلیل فوریه برای سیگنال های گسسته. می‌توان از آن برای تبدیل مجموعه محدودی از نمونه‌های سیگنال گرفته‌شده در فواصل زمانی منظم به فهرستی از ضرایب ترکیبی محدود از سینوسی‌های پیچیده که بر اساس فرکانس مرتب شده‌اند، استفاده کرد، با در نظر گرفتن اینکه این سینوسی‌ها در فرکانس یکسان نمونه‌برداری شده‌اند.

    یکی از محبوب ترین الگوریتم های عددی برای محاسبه DFT تبدیل فوریه سریع (FFT, FFT, Fast Fourier Transformation) نام دارد. در واقع، FFT با مجموعه ای کامل از الگوریتم ها نشان داده می شود. در میان آنها، انواع الگوریتم کولی-توکی اغلب استفاده می شود. این الگوریتم بر اساس اصل «تفرقه کن و حکومت کن» است. در طول محاسبات، از تجزیه بازگشتی DFT اصلی به قطعات کوچک استفاده می شود. محاسبه مستقیم DFT برای برخی از مجموعه داده ها nنیاز دارد O(n2)عملیات، و استفاده از الگوریتم Cooley-Tukey اجازه می دهد تا همان مسئله را حل کنید O(n log n)عملیات

    پیدا کردن یک کتابخانه مناسب که الگوریتم FFT را پیاده سازی کند، آسان است. در اینجا چند کتابخانه از این قبیل برای زبان های مختلف آورده شده است:

    مجتمع ثابت عمومی fft(مختلط x) ( int N = x.length؛ // fft از عناصر زوج Complex even = New Complex; for (int k = 0; k< N / 2; k++) { even[k] = x; } Complex q = fft(even); // fft нечетных элементов Complex odd = even; // повторное использование массива for (int k = 0; k < N / 2; k++) { odd[k] = x; } Complex r = fft(odd); // комбинируем Complex y = new Complex[N]; for (int k = 0; k < N / 2; k++) { double kth = -2 * k * Math.PI / N; Complex wk = new Complex(Math.cos(kth), Math.sin(kth)); y[k] = q[k].plus(wk.times(r[k])); y = q[k].minus(wk.times(r[k])); } return y; }
    در اینجا یک سیگنال مثال قبل و بعد از تجزیه و تحلیل FFT آورده شده است.


    سیگنال قبل و بعد از تجزیه و تحلیل FFT

    تشخیص موسیقی: امضای آهنگ

    یکی از عوارض جانبی ناخوشایند FFT این است که هنگام انجام تجزیه و تحلیل اطلاعات زمانی را از دست می دهیم. (در حالی که از نظر تئوری می توان از این امر اجتناب کرد، در عمل این امر به مقدار زیادی نیاز دارد قدرت پردازش.) مثلا برای یک آهنگ سه دقیقه ای می توانیم ببینیم فرکانس های صوتیو دامنه آنها، اما ما دقیقاً نمی دانیم این فرکانس ها در محصول کجا قرار می گیرند. و این است مهمترین ویژگیکه یک قطعه موسیقی را همان چیزی می کند که هست! ما باید به نحوی زمان های دقیق ظاهر شدن هر یک از فرکانس ها را بدانیم.

    به همین دلیل است که از چیزی مانند یک پنجره کشویی یا بلوک داده استفاده می کنیم و تنها بخشی از سیگنال را که در این "پنجره" قرار می گیرد، تبدیل می کنیم. اندازه هر بلوک را می توان با استفاده از روش های مختلف تعیین کرد. به عنوان مثال، اگر صدای دو کاناله را با حجم نمونه 16 بیت و نرخ نمونه برداری 44100 هرتز ضبط کنیم، یک ثانیه از این صداها 176 کیلوبایت حافظه (44100 نمونه * 2 بایت * 2 کانال) را اشغال می کند. اگر اندازه پنجره کشویی را روی 4 کیلوبایت تنظیم کنیم، در هر ثانیه باید 44 بلوک داده را تجزیه و تحلیل کنیم. این زیباست وضوح بالابرای تجزیه و تحلیل دقیق ترکیب

    بیایید به برنامه نویسی برگردیم.

    بایت صدا = out.toByteArray() int totalSize = audio.length int sampledChunkSize = totalSize/chunkSize; نتیجه پیچیده = ComplexMatrix; برای (int j = 0; i< sampledChunkSize; j++) { Complex complexArray; for(int i = 0; i < chunkSize; i++) { complexArray[i] = Complex(audio[(j*chunkSize)+i], 0); } result[j] = FFT.fft(complexArray); }
    در حلقه داخلی، داده های حوزه زمان (نمونه های صدا) را به اعداد مختلط با قسمت فرضی برابر با 0 قرار می دهیم. در حلقه بیرونی، تمام بلوک های داده را مرور می کنیم و برای هر یک از آنها تحلیل FFT را اجرا می کنیم.

    به محض اینکه اطلاعاتی در مورد ویژگی های فرکانس سیگنال بدست آوریم، می توانیم شروع به تشکیل امضای دیجیتالی یک قطعه موسیقی کنیم. این مهمترین بخش از کل فرآیند تشخیص موسیقی است که Shazam اجرا می کند. مشکل اصلی در اینجا این است که از بین تعداد زیادی فرکانس دقیقاً آنهایی را انتخاب کنید که مهمترین آنها هستند. صرفاً به طور شهودی، ما به فرکانس‌هایی با حداکثر دامنه (معمولاً پیک نامیده می‌شوند) توجه می‌کنیم.

    با این حال، در یک آهنگ، محدوده فرکانس‌های «قوی» می‌تواند مثلاً از نت «do» ضداکتاو (32.70 هرتز) تا نت «do» اکتاو پنجم (4186.01 هرتز) متفاوت باشد. این یک فاصله زمانی بزرگ است. بنابراین، به جای تجزیه و تحلیل کل محدوده فرکانس به طور همزمان، می توانیم چندین بازه کوچکتر را انتخاب کنیم. انتخاب را می توان بر اساس فرکانس هایی که معمولاً با اجزای مهم موسیقی مرتبط است و به صورت جداگانه تجزیه و تحلیل کرد. برای مثال می توانید از فواصل زمانی که این برنامه نویس برای پیاده سازی الگوریتم Shazam استفاده کرده است استفاده کنید. یعنی اینها 30 هرتز - 40 هرتز، 40 هرتز - 80 هرتز و 80 هرتز - 120 هرتز برای صداهای کم هستند (به عنوان مثال، یک گیتار باس اینجا می آید). برای صداهای متوسط ​​و بالاتر، از فرکانس های 120 هرتز - 180 هرتز و 180 هرتز - 300 هرتز استفاده می شود (این شامل آواز و اکثر سازهای دیگر می شود).

    اکنون که در مورد فواصل تصمیم گرفته ایم، می توانیم بسادگی فرکانس های موجود در آنها را با بیشترین مقدار پیدا کنیم سطوح بالا. این اطلاعات یک امضا برای یک بلوک داده تحلیل شده خاص تشکیل می دهد و به نوبه خود بخشی از امضای کل آهنگ است.

    عمومی نهایی int RANGE = int جدید ( 40، 80، 120، 180، 300)؛ // تابعی برای تعیین محدوده فرکانس در عمومی int getIndex(int‎freq) (int i = 0؛ while (RANGE[i]< freq) i++; return i; } // Результат – это комплексная матрица, полученная на предыдущем шаге for (int t = 0; t < result.length; t++) { for (int freq = 40; freq < 300 ; freq++) { // Получим силу сигнала: double mag = Math.log(results[t].abs() + 1); // Выясним, в каком мы диапазоне: int index = getIndex(freq); // Сохраним самое высокое значение силы сигнала и соответствующую частоту: if (mag >امتیازات برتر[t]) ( امتیاز [t] = فرکانس؛ ) ) // ایجاد یک تگ هش طولانی h = hash(points[t], points[t], points[t], points[t]); ) خصوصی استاتیک نهایی int FUZ_FACTOR = 2; هش طولانی خصوصی (طول p1، p2 طولانی، p3 طولانی، p4 طولانی) ( بازگشت (p4 - (p4 % FUZ_FACTOR)) * 100000000 + (p3 - (p3 % FUZ_FACTOR)) * 100000 + (p2 - (p2 % FUZ_FACTOR) ) * 100 + (p1 - (p1 % FUZ_FACTOR))؛ )
    توجه داشته باشید که باید در نظر داشته باشیم که ضبط در شرایط ایده آل (یعنی در اتاق عایق صدا) انجام نشده است. در نتیجه لازم است برای حضور در کارنامه پیش بینی شود نویز خارجیو اعوجاج احتمالی صدای ضبط شده، بسته به ویژگی های اتاق. این موضوع باید بسیار جدی گرفته شود سیستم های واقعیبسته به شرایطی که ضبط در آن انجام می شود، ارزش اجرای تنظیمات برای تجزیه و تحلیل اعوجاج های احتمالی و صداهای خارجی (ضریب فاز) را دارد.

    برای ساده‌تر کردن جستجوی آهنگ‌های موسیقی، از امضای آن‌ها به عنوان کلید در جدول هش استفاده می‌شود. کلیدها با مقادیر زمانی مطابقت دارند که مجموعه فرکانس هایی که امضا برای آنها پیدا شد در اثر ظاهر شد و شناسه خود اثر (به عنوان مثال عنوان آهنگ و نام هنرمند). در اینجا یک نوع از نحوه ظاهر چنین رکوردهایی در پایگاه داده است.

    اگر کتابخانه خاصی را به این شکل پردازش کنید ضبط های موسیقی، امکان ساخت پایگاه داده با امضای کامل هر اثر وجود خواهد داشت.

    یافتن کبریت

    برای اینکه بفهمید در حال حاضر چه آهنگی در رستوران پخش می شود، باید صدا را با گوشی خود ضبط کنید و آن را از طریق فرآیند محاسبه امضا که در بالا توضیح داده شد اجرا کنید. سپس می توانید جستجوی پایگاه داده برای تگ های هش محاسبه شده را شروع کنید.

    اما همه چیز به این سادگی نیست. واقعیت این است که بسیاری از قطعات آثار مختلف تگ های هش یکسانی دارند. به عنوان مثال، ممکن است اتفاق بیفتد که برخی از قطعات آهنگ A دقیقاً شبیه به بخش خاصی از آهنگ E باشد. و این تعجب آور نیست. نوازندگان و آهنگسازان دائماً چهره های موفق موسیقی را از یکدیگر «قرض» می کنند.

    هر بار که یک تگ هش منطبق پیدا می‌شود، تعداد تطابق‌های احتمالی کاهش می‌یابد، اما به احتمال زیاد این اطلاعات به تنهایی به ما اجازه نمی‌دهد جستجو را به اندازه کافی محدود کنیم تا در یک آهنگ صحیح متوقف شویم. بنابراین در الگوریتم تشخیص موسیقی باید چیز دیگری را بررسی کنیم. یعنی ما در مورد مهرهای زمانی صحبت می کنیم.

    قطعه آهنگی که در رستوران ضبط شده است می تواند از هر مکانی در آن باشد، بنابراین ما به سادگی نمی توانیم زمان نسبی قطعه ضبط شده را به طور مستقیم با آنچه در پایگاه داده است مقایسه کنیم.

    با این حال، اگر چندین مورد منطبق یافت شود، می توان زمان نسبی مسابقات را تجزیه و تحلیل کرد و در نتیجه قابلیت اطمینان جستجو را بهبود بخشید.

    برای مثال، اگر به جدول بالا نگاه کنیم، متوجه می‌شویم که تگ هش 30 51 99 121 195 هم برای آهنگ A و هم برای آهنگ E اعمال می‌شود. اگر یک ثانیه بعد تگ هش 34 57 95 111 200 را بررسی کنیم، مطابقت دیگری پیدا می‌کنیم. با آهنگ A، علاوه بر این، در چنین حالتی، خواهیم دانست که هم تگ های هش و هم توزیع آنها در زمان مطابقت دارند.

    // کلاسی که یک لحظه خاص را در کلاس خصوصی آهنگ توصیف می‌کند DataPoint ( زمان int خصوصی; private int songId; عمومی DataPoint(int songId, int time) ( this.songId = songId; this.time = time; ) public int getTime () (زمان بازگشت؛ ) public int getSongId() (بازگشت songId;))
    اجازه دهید i1و i2مهر زمانی در آهنگ ضبط شده است، j1و j2- مهر زمانی در آهنگ از پایگاه داده. با توجه به تصادفی بودن اختلاف زمانی، در صورتی که شرط زیر وجود داشته باشد، می توان گفت که دو تصادف وجود دارد:

    RecordedHash(i1) = SongInDBHash(j1) AND RecordedHash(i2) = SongInDBHash(j2) AND abs(i1 - i2) = abs (j1 - j2)
    این امر باعث می‌شود که اهمیتی ندهید که ضبط روی کدام قسمت از آهنگ قرار می‌گیرد: در ابتدا، وسط یا در پایان.

    و در نهایت، بعید است که هر قطعه پردازش شده از یک آهنگ ضبط شده در شرایط "وحشی" با قطعه مشابهی از پایگاه داده ساخته شده بر اساس ضبط های استودیو مطابقت داشته باشد. رکوردی که می خواهیم عنوان قطعه را از آن پیدا کنیم، سر و صدای زیادی خواهد داشت که منجر به اختلافاتی در مقایسه می شود. بنابراین، به جای تلاش برای حذف همه ترکیب‌های درست به جز یک ترکیب صحیح از فهرست مطابقت‌ها، در پایان روش تطبیق پایگاه داده، رکوردهایی را که دارای تطابق هستند مرتب می‌کنیم. به ترتیب نزولی مرتب می کنیم. هر چه تعداد منطبق‌ها بیشتر باشد، احتمال آنچه پیدا کرده‌ایم بیشتر است ترکیب مورد نظر. بر این اساس در صدر فهرست قرار خواهد گرفت.

    در اینجا یک نمای کلی از کل روند تشخیص موسیقی است. بیایید از ابتدا تا انتها آن را مرور کنیم.


    مروری بر رویه تشخیص موسیقی

    همه چیز با صدای اصلی شروع می شود. سپس آن را می گیرند، پاسخ فرکانس را پیدا می کنند، تگ های هش را محاسبه می کنند و آنها را با موارد ذخیره شده در پایگاه داده موسیقی مقایسه می کنند.

    در این سیستم‌ها، پایگاه‌های داده می‌توانند بسیار بزرگ باشند، بنابراین استفاده از راه‌حل‌هایی با مقیاس بسیار مهم است. نیاز خاصی به روابط جدول پایگاه داده وجود ندارد، مدل داده بسیار ساده است، بنابراین نوعی پایگاه داده NoSQL در اینجا کاملا مناسب است.

    شازم!

    برنامه هایی مانند آنچه در اینجا در مورد آن صحبت کردیم برای یافتن مکان های مشابه در موسیقی خوب هستند. اکنون که متوجه شدید که Shazam چگونه کار می کند، می توانید ببینید که الگوریتم های تشخیص موسیقی برای بیش از یادآوری نام آهنگ های فراموش شده از گذشته که در رادیوهای تاکسی پخش می شوند مفید هستند.

    برای مثال، می‌توانید از آن‌ها برای جستجوی سرقت ادبی موسیقی استفاده کنید، یا از آن‌ها برای یافتن هنرمندانی استفاده کنید که الهام‌بخش برخی از پیشگامان بلوز، جاز، موسیقی راک، موسیقی پاپ یا هر سبک دیگری هستند.

    شاید یک آزمایش خوب پر کردن پایگاه داده با آثار کلاسیک - آثار باخ، بتهوون، ویوالدی، واگنر، شوپن و موتزارت و جستجوی شباهت‌ها در آثار آنها باشد. بنابراین کاملاً امکان پذیر است که بفهمیم حتی باب دیلن، الویس پریسلی و رابرت جانسون نیز از قرض گرفتن چیزی از دیگران مخالف نبودند!

    اما آیا ما می توانیم آنها را در این مورد سرزنش کنیم؟ مطمئنم که نه. بالاخره موسیقی فقط یک موج صوتی است که انسان می شنود، به خاطر می آورد و در سرش تکرار می کند. در آنجا توسعه می یابد، تغییر می کند - تا زمانی که در استودیو ضبط شود و در طبیعت منتشر شود، جایی که ممکن است الهام بخش نابغه موسیقی بعدی باشد.

    اوه، و بیایید با ما کار کنید؟ :)

    حدس می زنم قرار است با گوجه فرنگی های فریاد زده پرتاب شوم "بله، همه در مورد Shazam می دانند!"، و من حتی توهین نخواهم شد - درست است ، بسیاری از مردم در مورد او می دانند! و برای کسانی که هنوز نمی دانند Shazam چرا و برای چیست، این مقاله در نظر گرفته شده است. خوب، برای کسانی که دوست دارند یک متن خوب بخوانند و چیز جدیدی یاد بگیرند =)

    Shazam چرا و برای چیست؟

    شازمشما را از اینکه مجبور باشید دیوانه وار از اطرافیانتان نام بپرسید یا تکه هایی از اشعار یک آهنگ ناشناخته اما فوق العاده جالب را حفظ کنید، نجات می دهد. البته این همه عملکرد نیست، اما هدف اصلی دقیقاً این است: با تطبیق قطعه ضبط شده با داده های روی سرور، آهنگ را شناسایی کنید.

    او چگونه کار می کند؟

    با رعایت کامل قانون پستی، زمانی که بخواهید بدانید چه چیزی دلپذیر در حال پخش است، آهنگ از قبل به پایان خواهد رسید. با درک این وضعیت، توسعه دهندگان سعی کردند فاصله بین باز کردن برنامه و شروع شناسایی را تا حد امکان کوتاه کنند. شروع فرآیند چند ثانیه و فقط دو ضربه است. پس از آن قطعه ای ضبط و به سرور ارسال می شود و در صورت شناسایی آهنگ، Shazam تمامی اطلاعات موجود هم در مورد آن و هم در مورد هنرمند خود را در اختیار شما قرار می دهد.

    چه کاری می تواند انجام دهد؟

    امکانات برنامه بسیار زیاد است. نکته کوه یخ - شناخت آهنگ ها و سپس ذخیره آنها در یک دسته برچسب های من. مرتب‌سازی بر اساس تاریخ انجام می‌شود، فهرست نام هنرمند، آهنگ، تاریخ ضبط و جلد را نمایش می‌دهد (در صورت موجود بودن در پایگاه داده Shazam).

    با ضربه زدن روی آهنگ شناسایی شده، به صفحه بسیار گسترده ای خواهیم رسید که به شما امکان می دهد:

    Shazam همچنین می تواند با حسابدر فیس بوک، به این ترتیب شکل می گیرد لیست دوستان- لیستی که در آن موارد شناسایی شده توسط شما و دوستانتان در آن قرار می گیرند شبکه اجتماعیآهنگ ها.

    آخرین بخش که اغلب توسط کاربران نادیده گرفته می شود (و بیهوده) نامیده می شود كشف كردنو به شما امکان جستجو در پایگاه صوتی Shazam، تماشای نمودارهای جهانی و اروپایی و مطالعه وبلاگ سرویس را می دهد.

    تنظیماتبرنامه ها بسیار بصری و ساده هستند. از نظر تئوری، شما هرگز نمی توانید وارد این بخش شوید.

    برنامه های کاربردی ممکن

    برای بیش از یک سال استفاده، چندین سناریو برای استفاده از برنامه تشکیل داده ام:

    • پخش آهنگ شناسایی
    • تهیه فهرستی از آهنگ‌ها (آلبوم‌ها، هنرمندان) که ارزش توجه و شنیدن دارند (این اتفاق می‌افتد که با وجود اینکه آهنگ را می‌شناسم، اما وقتی خودم را پشت کامپیوتر می‌بینم، به یاد نمی‌آورم که می‌خواستم به چه چیزی گوش کنم)
    • جستجو برای اطلاعات در مورد یک هنرمند خاص، مشاهده کلیپ های ویدئویی
    • هنرمندان جدید را در نمودارها جستجو کنید

    سرانجام

    Shazam واقعاً در تشخیص آهنگ ها عالی است، حتی زمانی که صداهای بیگانه متعددی به ضبط هجوم می آورند. اما ارزش توجه به این واقعیت را دارد که او یا بسیار ضعیف با رپرتوار زبان روسی آشنا است یا اصلاً ناآشنا است. حتی بدون اتصال به اینترنت می توانید از آن استفاده کنید - قطعه ضبط شده را می توان بعداً تشخیص داد. آخرین استدلال من به نفع Shazam این است که رایگان است (اما با بنر تبلیغاتی). این فوق العاده ابزار مفیددر اولین نمایشگر آیفون من به جایگاه خود افتخار کردم و من اصلاً از آن پشیمان نیستم.

    برای سلامتی استفاده کنید!

    P.S.نسخه های پولی نیز وجود دارد: Shazam Encore(LyricPlay، توصیه های موسیقی، پشتیبانی last.fm و Pandora) و شزم قرمز(ما به مبارزه با ویروس نقص ایمنی در آفریقا کمک می کنیم)

    شازم

    قیمت: رایگان
    توسعه دهنده: Shazam Entertainment Ltd.
    نسخه در حال بررسی: 4.7.4
    امتیاز تحریریه: ★★★★★

    Shazam Encore

    قیمت: 5.99 دلار
    توسعه دهنده: Shazam Entertainment Ltd.
    نسخه در حال بررسی: 4.7.5
    امتیاز تحریریه: ★★★★★

    Shazam برای iPad

    قیمت: رایگان
    توسعه دهنده: Shazam Entertainment Ltd.
    نسخه در حال بررسی: 2.5.0
    امتیاز تحریریه: ★★★★★


    هر سال آهنگ های بیشتری منتشر می شود، اما آنقدرها مورد پسند یک نفر قرار نمی گیرد. پیگیری روندها بسیار دشوار است اگر این کار را برای روزها انجام ندهید، و اغلب ما بیشتر آنها را می شنویم جاهای مختلفآهنگ های جالب، اما چگونه می دانید چه موسیقی در حال پخش است؟

    قبلا شرایط به گونه ای بود که بعد از ماه ها یا سال ها آهنگی می آمد که مورد پسند و فراموشی قرار گرفته بود یا می شد از منبع نویسنده آهنگ را فهمید. در هر صورت، پروسه پر کردن کتابخانه صوتی بسیار طولانی و گاهی دردناک بود، اما امروز Shazam وجود دارد.

    Shazam - برنامه چیست؟

    Shazam به شما کمک می کند آهنگی را که دوست دارید بر اساس بخشی از آن، به طور خاص تر گزیده ای 10 ثانیه ای، پیدا کنید. به لطف الگوریتم های خاص، نام هنرمند و ترکیب او در مقابل شما ظاهر می شود. به لطف دستکاری ساده، می توانید همه چیز را دریافت کنید اطلاعات لازماینجا و الان.

    برنامه تشخیص موسیقی برای اندروید، آیفون و به طور کلی هر پلتفرم دیگری که بلندگوی داخلی و دسترسی به شبکه وجود دارد کار می کند. شما مطلقاً در محیط برنامه محدود نیستید، برای چندین سال کار، نه تنها به کراس پلتفرم تبدیل شده است، بلکه بسیاری از ویژگی های اضافی را نیز اضافه کرده است.

    در ابتدا Shazam طبق این طرح کار می کرد: با شماره ای تماس می گیرید و گزیده ای از آهنگ را روشن می کنید، سپس پیامکی با نام آهنگ دریافت می کنید، این سرویس پرداخت شد. از آن زمان، آب زیادی جاری شده است این لحظهنرم افزار تشخیص موسیقی شزمدر سراسر جهان شناخته شد و حتی عبارت خود را "shazam" به دست آورد - این همان چیزی است که کاربران فرآیند جستجوی صوتی را می نامند.

    اکنون برنامه نه تنها می‌تواند موسیقی را پیدا کند، بلکه علاوه بر آن، به شما نشان می‌دهد: پیوندی به فروشگاه رسمی پلتفرم برای دانلود صدا، اگر تصویری در دسترس باشد که شامل جلد رسمی آلبوم باشد. همچنین اگر کلیپی ضبط شده باشد، لینک آن را دریافت خواهید کرد. علاوه بر این، عملکردهای شبکه اجتماعی معرفی شده است که می توانید با دوستان چت کنید، فید جستجوی آنها را ببینید، رتبه بندی محبوب ترین آهنگ های جهان را مشاهده کنید. البته این برنامه دارای سابقه جستجو است و اگر نام ملودی را فراموش کردید می توانید آن را مشاهده کنید.

    Shazam همچنین می تواند با سرویس های دیگری مانند Spotify یا Rdio همگام شود. قادر به جستجو برای اشعار.

    Shazam چگونه استفاده کنیم؟

    تقریباً اصل کار به شرح زیر است: برنامه 10 ثانیه ضبط می کند. مسیر. سپس در یک سرور مرکزی مشترک آپلود می شود، جایی که جستجو در نقاط خاصی با استفاده از یک ربات قدرتمند انجام می شود. احتمال یافتن یک ترکیب بسیار زیاد است، اگرچه 100٪ نیست. پایگاه داده خدمات شامل بیش از 40 میلیون آهنگ است.

    برای استفاده موفقیت آمیز از برنامه، باید به اینترنت دسترسی داشته باشید، در غیر این صورت این روش نیز انجام می شود، اما طبق یک اصل متفاوت. بخش ضبط خواهد شد، اما فرآیند شناسایی زمانی در دسترس خواهد بود که به شبکه دسترسی پیدا کنید و به سادگی دکمه مناسب را فشار دهید.

    سرویس Shazam برای استفاده در کشورهای مستقل مشترک المنافع رایگان است و نسخه پولی ندارد. به طور کلی گزینه تجاری وجود دارد و تنها مزیت آن عدم تبلیغات است. افسوس، مثل خیلی ها برنامه های رایگان، Shazam از تبلیغات درآمد دارد.

    استفاده از این برنامه بسیار ساده است و حتی برای بدشانس ترین کاربر نیز قابل دسترسی است، شما باید:

    • خود برنامه را دانلود کنید، می توانید آن را در استور پیدا کنید و رایگان است، برای اندروید https://play.google.com/store/apps/details?id=com.shazam.android&hl=ru;
    • برنامه را اجرا کنید؛
    • روی نماد Shazam، دکمه گرد در مرکز کلیک کنید.

    • گوشی هوشمند، تبلت یا لپ تاپ خود را به منبع موسیقی بیاورید.

    • پس از گذشت 10 ثانیه از ضبط، اطلاعات مورد نظر خود را دریافت خواهید کرد.

    باید در نظر داشت که این برنامه کاملاً هوشمند است و می تواند نویز و تداخل را در صورت وجود کمی فیلتر کند. با این حال، با سطح بالای نویز شخص ثالث، نمی توانید ملودی را پیدا کنید، باید آن را حذف کنید یا در صورت امکان موقعیت را تغییر دهید.

    این سرویس با آهنگ های شناخته شده، با نوازندگان انگلیسی زبان، بهترین کار را دارد، اما آهنگ های روسی را نیز به خوبی تشخیص می دهد.

    پس از یک نتیجه رضایت بخش، حداکثر اطلاعات را در مورد هنرمند و خود کار دریافت خواهید کرد، توسعه دهندگان شعر آهنگ را فراموش نکرده اند. همچنین پیوندهایی به منابع اضافی مانند ویکی پدیا وجود خواهد داشت که تاریخچه زندگی / کار موسیقیدان و گاهی اوقات شرایط جالب نوشتن یک آهنگ را شرح می دهد.

    خدمات دیگری با عملکرد مشابه وجود دارد، اما مقایسه با Shazam بسیار دشوار است، امروزه این شرکت بیش از 1 میلیارد دلار سرمایه دارد. با توجه به مقیاس شرکت، بدیهی است که احتمال موفقیت جستجو بسیار بیشتر می شود.

    تمام ویژگی ها و قابلیت های ارائه شده برنامه آن را به دستیار ارزشمندی تبدیل می کند که روند پر کردن چندین بار کتابخانه صوتی را تسهیل می کند. فقط بهترین آهنگ ها را با Shazam گوش کنید!

    اگر هنوز در مورد موضوع «شزم چیست؟» سؤالی دارید؟ توابع اصلی و استفاده از برنامه را می توانید در نظرات بپرسید


    if(function_exists("the_ratings")) (the_ratings();) ?>

    shazam چگونه کار می کند؟ سوالی که مورد توجه بسیاری از کاربران است. راستی اصل این سرویس چیست؟

    این برنامه ای است که به شما امکان می دهد تشخیص دهید ساخته های موسیقی. برای راه اندازی آن، باید روی دکمه در پنجره برنامه ظاهر شده کلیک کنید. اسکنر را راه اندازی می کند که داده ها را برای شناسایی به سرور ارسال می کند.

    یعنی اصل عملکرد سرویس shazam به شرح زیر است:

      • یک پایگاه داده از چاپ های موسیقی در ابتدا ایجاد شد،
      • هر کاربر می تواند با فشار دادن یک دکمه در برنامه، ترکیب مورد علاقه خود را علامت گذاری کند. متن جستجو شده باید حداقل 10 ثانیه باشد،
    • برنامه آن را به سرویسی می فرستد که در آن فرآیند جستجو انجام می شود،
    • اگر ملودی پیدا شد، اطلاعات فوراً روی صفحه نمایش نمایش داده می شود - عنوان، هنرمند، ژانر، اما اگر هیچ مطابقی پیدا نشد، یک اعلان خطا می آید.

    این اصول اولیه سرویس است.

    برای اینکه shazam موثرتر کار کند، می‌توانید دستگاه را به منبع موسیقی نزدیک‌تر کنید.

    درباره اثر انگشت بیشتر بدانید

    "نقاط" چیست؟ هنگامی که کاربر آهنگ مورد علاقه خود را "تگ" کرد، برنامه یک "اثر انگشت" ده ثانیه ای برای آن ایجاد می کند - یک نمونه صدا.

    بسیاری از آهنگ ها در پایگاه داده Shazam ذخیره می شوند، اطلاعات به طور مرتب به روز می شوند. در همه نمونه ها، سه شاخص اصلی متمایز می شوند - فرکانس، زمان، شدت. هنگامی که شخصی شروع به جستجوی ملودی می کند، اسکنر آن را به یک "اثر انگشت" تولید می کند که شامل فرکانس، زمان و شدت است.

    بنابراین، آهنگ به یک نمودار فرکانس-زمان، به اصطلاح طیف‌نگار، تبدیل می‌شود که نقاط آن باید با یکی از نمونه‌های پایگاه داده مطابقت داشته باشد. shazam اینطوری کار میکنه!

    رابط سرویس

    برنامه به رنگ آبی است. رابط سرویس بسیار ساده است. پس از راه اندازی برنامه، یک پنجره برنامه بر روی صفحه نمایش تلفن همراه ظاهر می شود، تنها با دکمه بزرگ. با کلیک بر روی آن، فرآیند اسکن ترکیب شروع می شود و انیمیشنی شبیه دانلود روی صفحه ظاهر می شود.

    پس از اسکن ملودی، اطلاعات مربوط به آن در یک پنجره جداگانه ظاهر می شود که در پایین آن اطلاعات اضافی درباره آهنگ وجود دارد.

    منو تاریخچه جستجو را ذخیره می کند، که در هر زمان قابل مشاهده است.

    ما قبلاً متوجه شده ایم که shazam چگونه کار می کند ، اما این برنامه مزایای دیگری نیز دارد:

    اگر shazam به درستی کار نمی کند، چندین راه برای اصلاح وضعیت وجود دارد. بنابراین، در صورت لزوم، برای تشخیص آهنگ، پیامی روی صفحه تلفن همراه ظاهر می شود - "متاسفانه، ما نتوانستیم آهنگ را تشخیص دهیم! مطمئن شوید که گوشی خود را نزدیک منبع صدا نگه دارید.

    امروزه باور کردن آن سخت است، اما دو دهه پیش، کسب اطلاعات با استفاده از تلفن همراه تا حدودی دشوارتر از اکنون بود. هیچ کدام وجود نداشت اپ استوربرای دانلود هر برنامه ای در نیم دقیقه، نه سیری که ساعت زنگ دار را تنظیم می کند و تماس با والدینتان را به شما یادآوری می کند و نه “OK, Google” آماده پاسخگویی به هر سوالی نیستند.

    آن روزها، برای درخواست، باید (کی یادش می‌آید؟) «پیام می‌فرستاد شماره کوتاه” (به عنوان مثال، 411 -  کد دایرکتوری آدرس در ایالات متحده است). برای اینکه حریف خود را در حین بحث با دانش خود تحت تأثیر قرار دهید، باید یک اس ام اس با متن GOOGL به شماره 46645 ارسال می کردید (بله، گوگل با این کار شروع کرد).

    در (از راه دور) 1999، شماره کوتاه 2580 تنها یکی از بسیاری بود، اما این کد یک ماموریت ویژه داشت: با کمک آن، دگرگونی های جادویی انجام شد. انتخاب اعداد نیز تصادفی نیست: آنها یک خط عمودی را روی صفحه کلید تلفن تشکیل می دهند،  - این اعداد هستند که کلید امپراتوری موسیقی Shazam شده اند.

    در ابتدا Shazam در لندن مستقر بود و هر ساکن بریتانیا با شنیدن آهنگی ناآشنا می توانست 2580 را شماره گیری کرده و 30 ثانیه صدا را ضبط کند. پس از آن تماس به طور خودکار قطع می شد و کاربر اس ام اسی با نام آهنگ و هنرمند دریافت می کرد و گاهی اوقات (در صورت موجود بودن آهنگ در پایگاه داده Shazam) - یک لینک برای دانلود آهنگ زنگ.

    بنیانگذاران Shazam

    برای بنیانگذاران استارت آپ کریس برتون، فیلیپ اینگلبرشت، اوری وانگ و دیراژ موکرجی، این فرآیند یک جادوی خالص بود. با وجود اینکه در ابتدا کاربران فقط اعداد 2580 را می دانستند، این سرویس از همان ابتدا Shazam نام داشت. و اگر برای طرفداران کمیک این کلمه با کاپیتان مارول همراه بود و برای طرفداران بسکتبال با شکیل اونیل در فیلم Kazaam، برای بنیانگذاران یک استارتاپ، بلافاصله به معنای جادو بود.

    چرا Shazam؟

    بارتون در فستیوال پیشگامان در وین در سال 2013 گفت: «کلمه Shazam واقعاً در فرهنگ لغت وجود دارد. این یک تعجب است به معنای "وقتی چیزهای زیبا را تداعی می کنید." به عنوان مثال، اگر لازم بود به جشنواره ای از سانفرانسیسکو تله پورت کنم و فوراً آنجا بودم، می گفتم «شزم! اینجا من در وین هستم!»

    ما به این نتیجه رسیدیم که معنای کلمه Shazam برای توصیف فرآیند جادویی تشخیص موسیقی عالی است. و (در کمال تعجب) حتی امروز نیز پس از سالها، ستون فقرات کل خط Shazam باقی مانده است. این شرکت قصد دارد این فرآیند جادویی را بر روی صفحه نمایش گوشی هوشمند هر کاربر نشان دهد.

    هر کسی که حداقل یک بار از Shazam استفاده کرده باشد، احتمالاً با این جمله موافق است، زیرا در حالی که این فناوری از زمان تماس با یک شماره کوتاه فاصله زیادی را طی کرده است، ماهیت آن ثابت مانده است. کاربران گوشی‌های هوشمند و رایانه شخصی می‌توانند برنامه را دانلود کنند، آن را برای ضبط آهنگ یا برنامه تلویزیونی باز کنند (یا دوربین را به سمت عکسی در مجله بگیرند)، و - SHAZAM! - اطلاعات فورا ظاهر می شود.

    با این حال، در پشت صحنه اجرای جادویی، برنامه اثرانگشت صوتی یا بصری پیچیده ای از محتوا ایجاد می کند و آن را با داده های موجود در پایگاه داده بیش از 15 میلیارد آهنگ و تصویر برای ثبات مقایسه می کند. همه چیز جادویی به نظر می رسد، اما Shazam از یک الگوریتم پیچیده و تعدادی فناوری برای تشخیص محتوای صوتی استفاده می کند.

    کریس بارتون می‌گوید: «ما در آستانه راه‌اندازی Shazam با موانع زیادی برخورد کردیم. - و اصلی ترین آنها ایجاد یک الگوریتم در مقیاس بزرگ (و واقعاً کارآمد) بود که می تواند آهنگ را حتی در یک محیط پر سر و صدا شناسایی کند. سپس لازم بود که در مورد آن به طیف گسترده ای از کاربران گفته شود. یکی دیگر از موانع، جمع آوری و رونویسی موسیقی کافی برای کارکرد سرویس است. مینی گوگل خود را بسازید موتور جستجوو خوشه کامپیوترهای موازی خودش، ده ها کامپیوتر که به تنهایی ذخیره می شوند دیسکهای سختاثر انگشت آکوستیک هر آهنگ”.

    جولیوس اسمیت، استاد مهندسی برق دانشگاه استنفورد، که به دلیل ایجاد الگوریتم‌هایی برای سینت سایزرهای یاماها مشهور بود، کمک گرفت. اسمیت به سرعت مشاور Shazam شد و تیم را به دانشجوی فارغ التحصیل آن زمان خود، اوری وانگ، که تنها یکی از بنیانگذاران هنوز در شرکت است، معرفی کرد - او مشاور ارشد علمی است.

    وقتی الگوریتم ایجاد شد و سرویس شروع به کار کرد، نوبت به یک برنامه تمام عیار رسید. با تبدیل شدن به یکی از اولین برنامه های کاربردی برای App Store در سال 2008، پنج سال بعد Shazam در بین 10 برنامه برتر در جهان جای گرفت.

    در ابتدا، در صورتی که Shazam بتواند آهنگ مورد نظر خود را تعیین کند، کاربران این سرویس هزینه تماس با یک شماره کوتاه را پرداخت می کردند. امروزه این اپلیکیشن در مدل shareware کار معجزه می کند. نسخه اصلی را می توان دانلود کرد و برادر بزرگترش Shazam Encore - در ایالات متحده خریداری کرد تا اطلاعات انحصاری در مورد برنامه های تلویزیونی دریافت کند (به عنوان مثال، اعضای بازیگران، لینک وب سایت رسمی، افراد مشهور، موسیقی استفاده شده در برنامه، کانال های توییتر، جزئیات IMDB و خیلی بیشتر). و پس از اینکه برنامه برای استفاده در ساعت های هوشمند در دسترس قرار گرفت، اطلاعات مربوط به هر آهنگی را می توان به سادگی با لمس مچ دست به دست آورد.

    چه می توان گفت؟ شاید واقعاً جادو است.