אודיו ושפה מדוברת הם מקורות עשירים של נתונים שאפשר להשתמש בהם כדי לזהות את הכוונות של המשתמשים, לתעד מידע על העולם שסביבנו ולהבין בעיות ספציפיות שצריך לפתור. החל מ-Gemma 3n, אתם יכולים להשתמש בנתוני אודיו במשימות של יצירת הנחיות ויצירת תוכן באמצעות Gemma. אפשר להשתמש בו למגוון משימות של ניתוח אודיו ופרשנות, והמודל אומן לטפל במשימות הבאות של עיבוד דיבור ביותר מ-100 שפות מדוברות:
- דיבור לטקסט (STT): נקרא גם זיהוי דיבור אוטומטי (ASR). הטכנולוגיה הזו לוקחת נתוני אודיו של שפה מדוברת ומתמללת אותם לפלט טקסט באותה שפה. מידע נוסף
- תרגום אוטומטי של דיבור (AST): נקרא גם תרגום של דיבור לטקסט (S2TT). הטכנולוגיה הזו לוקחת נתוני אודיו של דיבור בשפה אחת ומתרגמת אותם לטקסט בשפה אחרת. מידע נוסף
אתם יכולים להשתמש בתכונות האלה במגוון אפליקציות, כמו:
- פיתוח ממשקים של אפליקציות שמופעלות באמצעות הקול
- יצירת שירותי תמלול לפגישות או להרצאות
- הפעלת פונקציית החיפוש הקולי בסביבות רב-לשוניות
במדריך הזה מוצגת סקירה כללית של יכולות עיבוד האודיו של Gemma 3n, כולל שיקולים לגבי נתונים, דוגמאות לשימוש ושיטות מומלצות.
נתוני אודיו
נתוני אודיו דיגיטלי יכולים להגיע בפורמטים שונים וברמות רזולוציה שונות. פורמטי האודיו שבהם אפשר להשתמש עם Gemma, כמו פורמטים של MP3 ו-WAV, נקבעים לפי המסגרת שבוחרים להמיר נתוני קול לטנסורים. ריכזנו כאן כמה שיקולים ספציפיים להכנת נתוני אודיו לעיבוד באמצעות Gemma:
- עלות הטוקנים: כל שנייה של אודיו היא 6.25 טוקנים.
- ערוצי אודיו: נתוני האודיו מעובדים כערוץ אודיו יחיד. אם משתמשים באודיו רב-ערוצי, כמו ערוץ שמאלי וערוץ ימני, כדאי לצמצם את הנתונים לערוץ יחיד על ידי הסרת ערוצים או שילוב נתוני הקול לערוץ יחיד.
- אורך הקטע: מומלץ להשתמש בקטעי אודיו באורך של עד 30 שניות, אבל אפשר לעבד קטעים ארוכים יותר, עד לגודל חלון ההקשר של המודל, בניכוי טוקני הפלט שאתם מבקשים.
- תדירות דגימה: תדירות עיבוד האודיו של הטוקנייזר היא 16kHz עם פריימים של 32 מילישניות.
- עומק סיביות: טוקנייזר האודיו משתמש בנתוני float 32-bit לכל פריים בטווח [-1, 1] לכל דגימת אודיו.
אם נתוני האודיו שאתם מתכננים לעבד שונים באופן משמעותי מהעיבוד של הקלט, במיוחד מבחינת הערוצים, קצב הדגימה ועומק הביטים, כדאי לשקול דגימה מחדש או חיתוך של נתוני האודיו כדי להתאים לרזולוציית הנתונים שהמודל מטפל בה.
קידוד אודיו
כשמקודדים נתוני אודיו באמצעות הטמעת קוד משלכם לשימוש ב-Gemma 3n, צריך לפעול לפי תהליך ההמרה המומלץ. אם אתם עובדים עם קובצי אודיו שמקודדים בפורמט ספציפי, כמו נתונים מקודדים ב-MP3 או ב-WAV, אתם צריכים קודם לפענח אותם לדגימות באמצעות ספרייה כמו ffmpeg. אחרי שמפענחים את הנתונים, ממירים את האודיו לצורות גל של 16kHz float32 בערוץ מונו בטווח [-1, 1]. לדוגמה, אם אתם עובדים עם קובצי WAV של מספרים שלמים בפורמט PCM עם 16 ביטים, חתומים, סטריאו, בתדירות של 44.1 kHz, אתם צריכים לפעול לפי השלבים הבאים:
- ביצוע דגימה מחדש של נתוני האודיו ל-16kHz
- דאון-מיקס מסטריאו למונו על ידי חישוב ממוצע של 2 הערוצים
- המרת הערך מ-int16 ל-float32, וחלוקה ב-32768.0 כדי לשנות את קנה המידה לטווח [-1, 1]
המרת דיבור לטקסט (STT)
מודל Gemma 3n אומן לזיהוי דיבור רב-לשוני, כך שתוכלו לתמלל קלט אודיו בשפות שונות לטקסט. בדוגמאות הקוד הבאות מוצגות הנחיות למודל לתמלול טקסט מקובצי אודיו באמצעות Hugging Face Transformers:
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"
processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "http://localhost/recording_01.wav"},
{"type": "audio", "audio": "http://localhost/recording_02.wav"},
{"type": "audio", "audio": "http://localhost/recording_03.wav"},
{"type": "text", "text": "Transcribe these audio files in order"},
]
}
]
input_ids = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True, return_dict=True,
return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)
outputs = model.generate(**input_ids, max_new_tokens=64)
text = processor.batch_decode(
outputs,
skip_special_tokens=False,
clean_up_tokenization_spaces=False
)
print(text[0])
דוגמת קוד מלאה יותר, כולל התקנת ספרייה, זמינה בקטע בנושא אודיו במסמך הרצת Gemma באמצעות Hugging Face Transformers.
תרגום דיבור אוטומטי
Gemma 3n מאומן למשימות של תרגום דיבור רב-לשוני, ומאפשר לכם לתרגם אודיו של דיבור ישירות לשפה אחרת. בדוגמאות הקוד הבאות מוצגות הנחיות למודל לתרגום אודיו של דיבור לטקסט באמצעות Hugging Face Transformers:
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"
processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
{"type": "text", "text": "Transcribe this audio into English, and then translate it into French."},
]
}
]
input_ids = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True, return_dict=True,
return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)
outputs = model.generate(**input_ids, max_new_tokens=64)
text = processor.batch_decode(
outputs,
skip_special_tokens=False,
clean_up_tokenization_spaces=False
)
print(text[0])
דוגמת קוד מלאה יותר, כולל התקנת ספרייה, זמינה בקטע בנושא אודיו במסמך הרצת Gemma באמצעות Hugging Face Transformers.