זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

זיהוי אירועי אודיו עם אמזון זיהוי

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

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

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

שימוש בנתוני אודיו עם למידת מכונה

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

אודיו מוקלט מאוחסן בדרך כלל כרצף של דגימות קול, המודדות את עוצמת גלי הקול שפגעו במיקרופון במהלך ההקלטה, לאורך זמן. יש מגוון רחב של פורמטים שאיתם ניתן לאחסן את הדגימות הללו, אך גישה נפוצה היא לאחסן 10,000, 20,000 או אפילו 40,000 דגימות בשנייה, כאשר כל דגימה היא מספר שלם בין 0-65535 (שני בתים). מכיוון שכל דגימה מודדת רק את עוצמת גלי הקול ברגע מסוים, נתוני הקול בדרך כלל אינם מועילים לתהליכי ML מכיוון שאין להם תכונות שימושיות במצב הגולמי.

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

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

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

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

בנוסף, אנו יכולים לשנות את מדידת העוצמה לפי תדר לפי זמן כדי לשפר תכונות שונות של האודיו הנמדד. כמו קנה המידה של ציר ה-Y שמיושם על ידי ספקטרוגרמה של Mel, אחרים מדגישים מאפיינים כמו עוצמת 12 שיעורי הגובה הייחודיים המשמשים ללימוד מוזיקה (כרומה). שיעור אחר מדגיש תכונות אופקיות (הרמוניות) או תכונות אנכיות (הקשה). סוג הצליל שמתגלה צריך להניע את סוג הספקטרוגרמה המשמשת למערכת הזיהוי.

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

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

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

מחפש צלילים בדידים בספקטרוגרמה

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

חלון מתייחס לשימוש בחלון הזזה שנע על פני כל הספקטרוגרם, מבודד כמה שניות (או פחות) בכל פעם. על ידי בידוד חוזר ונשנה של חלקים מהתמונה הכוללת, אנו מקבלים תמונות קטנות יותר שניתן לחפש אחר נוכחות הצליל שיזוהה. מכיוון שכל חלון יכול לגרום רק לחלק מהתמונה שאנו מחפשים (כמו במקרה של חיפוש אחר צליל שלא מתחיל בדיוק בתחילת חלון), חלונות מבוצעים לרוב עם חלונות עוקבים שחופפים. לדוגמה, החלון הראשון מתחיל ב-0:00 ומתארך ב-2 שניות, ואז החלון השני מתחיל ב-0:01 ומתארך ב-2 שניות, והחלון השלישי מתחיל ב-0:02 ומתארך ב-2 שניות, וכן הלאה.

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

ציר Y מלא

ציר Y מלא

ציר Y מוגבל

ציר Y מוגבל

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

אם התמונות שלך כבר מתויגות, אימון זיהוי אמזון נגיש בכמה לחיצות בלבד. לחלופין, אתה יכול לתייג את התמונות ישירות בתוך ממשק התיוג של Amazon Rekognition, או להשתמש האמת של אמזון SageMaker כדי לתייג אותם עבורך. כאשר Amazon Rekognition מתחילה להתאמן מסט התמונות שלך, היא מייצרת עבורך מודל ניתוח תמונה מותאם אישית תוך מספר שעות בלבד. מאחורי הקלעים, Rekognition Custom Labels טוענים ובודקים אוטומטית את נתוני האימון, בוחרת את אלגוריתמי ה-ML הנכונים, מכשירה מודל ומספקת מדדי ביצועים של המודל. לאחר מכן תוכל להשתמש בדגם המותאם אישית שלך דרך API של זיהוי תוויות מותאמות אישית ולשלב אותו באפליקציות שלך.

הרכבת נתוני הדרכה והכשרת מודל של Rekognition Custom Labels

ב ריפו של GitHub המשויך לפוסט זה, תמצא קוד שמראה כיצד להאזין לצליל של אזעקת עשן המופעלת, ללא קשר לרעשי רקע. במקרה זה, המודל שלנו ל-Rekognition Custom Labels הוא מודל סיווג בינארי, כלומר התוצאות הן "זוהה קול אזעקת עשן" או "לא זוהה קול אזעקת עשן".

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

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

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

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

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

נתוני ההדרכה והבדיקה מאוחסנים ב-an שירות אחסון פשוט של אמזון דלי (Amazon S3). מבנה הספריות הבא הוא נקודת התחלה טובה לארגון נתונים בתוך הדלי.

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

הקוד לדוגמה בריפו של GitHub מאפשר לך לבחור כמה תמונות אימון ליצור. תוויות מותאמות אישית של זיהוי אינן דורשות מספר רב של תמונות הדרכה. סט הדרכה של 200-500 תמונות אמור להספיק.

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

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

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

ארכיטקטורה מקצה לקצה לזיהוי קול

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

הדיאגרמה הבאה מציגה ארכיטקטורה לדוגמה המיישמת צינור מסקנות זה.

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

ארכיטקטורה זו ממתינה לקובץ שמע שיוכנס לתוך דלי S3, אשר לאחר מכן גורם ל- AWS למבדה פונקציה שיש להפעיל. Lambda הוא שירות מחשוב נטול שרתים מונע אירועים המאפשר לך להריץ קוד כמעט עבור כל סוג של יישום או שירות אחורי מבלי להקצות או לנהל שרתים. אתה יכול להפעיל פונקציית Lambda מיותר מ-200 שירותי AWS ותוכנה כשירות (SaaS), ולשלם רק עבור מה שאתה משתמש בו.

הפונקציה Lambda מקבלת את שם הדלי ואת שם המפתח (או שם הקובץ) של קובץ האודיו. הקובץ מוורד מאמזון S3 לזיכרון הפונקציה, אשר לאחר מכן ממיר אותו לספקטרוגרמה ומבצע סינון חלונות ותדרים. כל חלק מחלון של הספקטרוגרם נשלח לאחר מכן לאמזון זיהוי, המשתמשת במודל של Amazon Custom Labels שהוכשר בעבר כדי לזהות את הצליל. אם הצליל הזה נמצא, פונקציית Lambda מאותתת על ידי שימוש ב- שירות התראה פשוט של אמזון הודעה (Amazon SNS). Amazon SNS מציעה גישת פאב/משנה אליה ניתן לשלוח הודעות שירות תורים פשוט של אמזון (Amazon SQS) תורים, פונקציות Lambda, נקודות קצה HTTPS, כתובות אימייל, דחיפה לנייד ועוד.

סיכום

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

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


על המחברים

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.גרג זומרוויל הוא ארכיטקט אב טיפוס בכיר בצוות AWS Prototyping והנדסת ענן, שם הוא עוזר ללקוחות AWS ליישם פתרונות חדשניים לבעיות מאתגרות עם למידת מכונה, IoT וטכנולוגיות ללא שרת. הוא גר באן ארבור, מישיגן ונהנה לתרגל יוגה, לשרת את הכלבים שלו ולשחק פוקר.

זיהוי אירועי אודיו עם Amazon Rekognition PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ג'ף הרמן הוא ארכיטקט אב טיפוס בכיר בצוות אבות טיפוס והנדסת ענן של AWS, שם הוא עוזר ללקוחות AWS ליישם פתרונות חדשניים לבעיות מאתגרות. הוא גר ביוניונוויל, קונטיקט ונהנה מעבודות עץ, נפחות ומיינקראפט.

בול זמן:

עוד מ למידת מכונות AWS