אתר זה עושה שימוש בעוגיות על מנת להבטיח לך את חוויית הגלישה הטובה ביותר.
גיקיפדיה: איך Shazam מזהה את השירים שאנחנו אוהבים?

גיקיפדיה: איך Shazam מזהה את השירים שאנחנו אוהבים?

כיצד עובדות האפליקציות שיודעות מה מתנגן ברדיו או במסיבה? למה אינן מזהות כל שיר שתשמיעו להן ולאילו יישומים נוספים מתאימה הטכנולוגיה הזו?

30.07.2013, 15:53 | הראל עילם

במשך שנים ארוכות סבל המין האנושי מבעיה לא ממש חשובה, אבל מציקה בהחלט: הרדיו משמיע שיר שמוצא חן בעיניכם או שלא יוצא לכם מהראש, אבל אתם לא מצליחים לזהות אותו בשום אופן. בשנים האחרונות הצרה הזאת נפתרה, כשאפליקציות כמו שזאם ודומותיה הגיעה לטלפונים החכמים של רבים מאיתנו. כל מה שצריך לעשות הוא להפעיל אותן, והן כבר יקשיבו לשיר ויגידו לכם את שמו.

קראו עוד בכלכליסט

שזאם מסוגלת לזהות שירים ברמת דיוק מפתיעה: גם אם הרמקול לא ממש איכותי ויש רעש רקע, היא לרוב תאתר את השיר הנכון. אפילו אם תשמיעו לה גרסה אחרת של השיר, תבצעו רמיקס או אפילו תגבירו ותאטו את הקצב, היא כנראה תעמוד במשימה. סאונדהאונד, המתחרה העיקרית של שזאם, יכולה גם לזהות שירים אם תזמזמו את הלחן שלהם.

אפליקציית שזאם אפליקציית שזאם אפליקציית שזאם

לעומת זאת, אפליקציות שאמורות לזהות את קולכם כמו סירי כמעט תמיד מפספסות כמה מילים, במיוחד בגלל מבטא כבד או רעשי רקע. זה עלול להיות די קריטי כשאתם רוצים להגיע לתל אביב, ואפליקציית הניווט שולחת אתכם בטעות לתל חי. מה גורם להבדל?

השוואה אקוסטית

ההסבר טמון בשיטות הפעולה השונות של שני סוגי האפליקציות. יישומים לזיהוי קול אנושי עובדים על בסיס שיטה הסתברותית: מאות אנשים אומרים את אותה מילה במגוון מבטאים והטיות, ויוצרים מאגר עצום של מילים מוקלטות. כשהאפליקציה פועלת, היא משווה בין המילה שהיא שומעת למילה המוקלטת הקרובה ביותר. שיטה זו מתאימה לדיבור אנושי, שבו יש אינספור שילובי מילים וצלילים, אבל היא אף פעם לא תהיה מדויקת לחלוטין.

שזאם ודומותיה, לעומת זאת, עובדות על בסיס שיטה המכונה "טביעת אצבע אקוסטית‭."‬ הן משוות בין הצלילים שהן שומעת למאגר שברשותן. אף על פי שיש מיליוני שירים, עדיין מדובר בהרבה פחות אפשרויות מכל צירופי המילים האפשריים בשפות השונות.

הזיהוי מתאפשר גם במסיבה סואנת, צילום: אוראל כהן הזיהוי מתאפשר גם במסיבה סואנת | צילום: אוראל כהן הזיהוי מתאפשר גם במסיבה סואנת, צילום: אוראל כהן

שזאם ודומותיה אינן מנסות להשוות את הצלילים שהן שומעות לשיר מוקלט - אחרת הן לא היו יכולות לזהות גרסאות אחרות של השיר, שלא לדבר על מצב שבו המשתמש שר או מזמזם אותו. במקום זאת האפליקציות ממפות את התבנית של השיר, בחיפוש אחר מקצב, עוצמה ותדרים.

לא שירים, קודים

החיסרון העיקרי בגישה ששזאם מתבססת עליה הוא הצורך בכוח עיבוד משמעותי: ניתוח ומיפוי של שיר מלא בזמן אמת ידרוש מחשב-על. החברה פתרה את הבעיה בעזרת גישה חדשנית: היא לא מתיימרת לנתח את השיר כולו, אלא נקודות "שיא" – שבהן הקצב והאינטנסיביות גבוהים במיוחד. אלו בדרך כלל החלקים שבזכותם השיר נחרת בזיכרון.

בכך דומה טביעת האצבע האקוסטית, ששאזאם מחפשת, לטביעת אצבע אנושית. שוטרים אינם צריכים להשוות את כל הקווים והעיקולים בין טביעת האצבע של החשוד למאגר המשטרתי, אלא מחפשים נקודות בודדות וקריטיות. בדומה לכך, כאשר שאזאם מנפה את הקטעים האטיים והפחות רלבנטיים מהשירים שהיא בוחנת, היא גם זקוקה לפחות כוח עיבוד.

מאגר המידע של החברה, אם כן, אינו כולל שירים מוקלטים אלא מיליוני קודים - תבניות ממופות של שירים מוכרים. כאשר אתם מפעילים את האפליקציה, היא מאזינה לשיר הנשמע ברקע לכמה שניות ומקליטה אותו. היא מחפשת את הנקודות החשובות במקטע שהיא האזינה לו, שולחת את הקוד לשרתי החברה וחוזרת עם תשובה.

השרתים מחפשים השוואה בין הקוד של ההקלטה והקודים הקיימים, והתוצאה הסופית היא כמעט תמיד מדויקת. אחוזי ההצלחה של האפליקציה מתקרבים ‭,100%-ל‬ כל עוד מדובר בשיר שנמצא במאגרי החברה, ובתנאי שנתתם לשזאם מספיק זמן להקשיב למוזיקה. ומה יעשה מי ששמע לפני עשור שיר נפלא שנתקע לו בראש, לא מאתר אותו בשום מקום ולא ניחן ביכולות זמזום גבוהות במיוחד? את הבעיה הזאת הטכנולוגיה עדיין לא פתרה.

תגיות

35 תגובות לכתיבת תגובה לכתיבת תגובה

32.
אנשים כאן לא הבינו למה התכוון המשורר... יכול להיות שגם הוא לא הבין
בתור "אדם עילאי ומתנשא", להלן התגובה :) שיר מורכב מרצף של גלים, עם מאפיינים שונים. כאשר המערכת שלהם מקבלת שיר, היא יודעת לדגום את הנקודות החשובות בו. מה ז"א? (אני עדיין שומר על שפה לא מתמטית כאן). ז"א שתחשבו על תמונה. כשאתם מצלמים במצלמת 16MP ושומרים קובץ, גודל הקובץ הנשמר הוא גדול. יחד עם זאת, אתם יכולים לשמור כJPG לדוגמא, עם אפשרות לכווץ אותו (להוריד באיכות) גם 60% מהגודל (אם לא יותר) ועדיין להבין מה יש בתמונה. אותו הדבר קורה כאן, לוקחים שיר, "מכווצים" אותו (בניגוד לmp3 שעוד יש לו קצב דגימה גבוהה יחסית, כאן אין צורך), ובעצם הופכים אותו למבנה אחר. כיצד משווים בשניות מול מאגר של מיליוני שירים? לוקחים את הרצף הדיגיטלי הזה ומקודדים אותו לקוד (hash). כך שכאשר הפלאפון שלכם דוגם 10 שניות משיר ומעלה לשרתי shazam, המערכת שלהם, מבצעת את אותו התליך בדיוק על ה20 שניות (מאוד מהיר), מקבלת מחרוזת תווים ייחודית, שהיא חלק ממחרוזת תווים של שיר. כמובן שהמערכת שלהם מנסה גם ל"נרמל" (להביא לאותו בסיס) כל שיר שהיא מקבלת, רק לתהליך כזה יכולות להיות השלכות טכנולוגיות משמעותיות. חיפוש תווים במקרה כזה של זיהוי חח"ע (ההסתברות ל2 מחרוזות בנות 10 שניות זהות היא אפסית) הוא מהיר מאוד (מנוע חיפוש טקסטואלי). הם ינפיקו תוצאות נוספות, כי בכל זאת מעורבים כאן מרכיבים אקראיים (רעשים שלא נוקו, רעשים פנימיים וכו'). ולמי שאומר שזה "פשוט", או "פשוט מאוד", שירים את הכפפה ויבנה כזאת מערכת. אפילו לא סקלאבילית.
אדם עילאי ומתנשא  |  05.08.13
לכל התגובות