GPT
M

music_genres_classification

קוד פתוח

dima806apache-2.02023-08-11

  • transformers
  • pytorch
  • safetensors
  • wav2vec2
  • audio-classification

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

  • 95Mפרמטרים
  • 722 MBמשקל הקבצים
  • 2,528הורדות בחודש
  • 40לייקים

מה זה

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

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

מתאים ל

  • מיון ספריות מוזיקה

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

  • העשרת מטא-דאטה לקטלוג

    הוספת תגית ז'אנר ראשונית לשירים שאין עליהם מידע מסודר בקובץ.

  • סינון ראשוני לרדיו ופודקאסט

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

איפה זה נופל

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

שאלות
נפוצות

האם המודל יודע לזהות מוזיקה ישראלית או מזרחית?

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

האם צריך להמיר את קובצי האודיו לפני השליחה למודל?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("audio-classification", model="dima806/music_genres_classification")
print(pipe("שלום"))

הקבצים

7 קבצים במאגר, 722 MB סך הכול. הקישורים מובילים ישירות ל־Hugging Face.

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש
  • שימוש בפטנטים

הרישיון המלא בעמוד המודל ↗