באמצעות Cloud Speech API אפשר לבצע תמלול של קובצי אודיו ליותר מ-80 שפות.
בשיעור ה-Lab הזה נקליט קובץ אודיו ונשלח אותו אל Cloud Speech API לצורך תמלול.
מה תלמדו
- יצירת בקשה ל-Speech API והתקשרות ל-API באמצעות curl
- שליחת קריאה ל-Speech API עם קובצי אודיו בשפות שונות
מה נדרש
איך תשתמשו במדריך הזה?
איזה דירוג מגיע לדעתך לחוויית השימוש שלך ב-Google Cloud Platform?
הגדרת סביבה בקצב אישי
אם עדיין אין לכם חשבון Google (Gmail או Google Apps), אתם צריכים ליצור חשבון. נכנסים ל-Google Cloud Platform Console (console.cloud.google.com) ויוצרים פרויקט חדש:
חשוב לזכור את מזהה הפרויקט, שהוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם שמופיע למעלה כבר תפוס ולא יתאים לכם, מצטערים!). בהמשך ה-codelab הזה, נתייחס אליו כאל PROJECT_ID
.
בשלב הבא, תצטרכו להפעיל את החיוב ב-Cloud Console כדי להשתמש במשאבים של Google Cloud.
העלות של התרגיל הזה לא אמורה להיות גבוהה, אבל היא יכולה להיות גבוהה יותר אם תחליטו להשתמש ביותר משאבים או אם תשאירו אותם פועלים (ראו את הקטע 'ניקוי' בסוף המסמך הזה).
משתמשים חדשים ב-Google Cloud Platform זכאים לתקופת ניסיון בחינם בשווי 300$.
לוחצים על סמל התפריט בפינה השמאלית העליונה.
בתפריט הנפתח בוחרים בAPIs and Services .
לוחצים על Enable APIs and Services.
לאחר מכן, מחפשים את האפשרות 'דיבור' בתיבת החיפוש. לוחצים על Google Cloud Speech API:
לוחצים על Enable כדי להפעיל את Cloud Speech API:
מחכים כמה שניות עד שהאפשרות תופעל. אחרי ההפעלה, תראו את ההודעה הבאה:
Google Cloud Shell היא סביבת שורת פקודה שפועלת בענן. המכונה הווירטואלית הזו מבוססת על Debian, וטעונים בה כל הכלים הדרושים למפתחים (gcloud
, bq
, git
וכלים אחרים), ועם ספריית בית בעלת אחסון מתמיד בגודל 5GB. נשתמש ב-Cloud Shell כדי ליצור את הבקשה שלנו ל-Speech API.
כדי להתחיל להשתמש ב-Cloud Shell, לוחצים על הסמל 'הפעלת Google Cloud Shell' בפינה השמאלית העליונה של סרגל הכותרת.
בחלק התחתון של המסוף ייפתח סשן של Cloud Shell בתוך מסגרת חדשה ותופיע הודעה של שורת הפקודה. ממתינים עד להופעת ההנחיה user@project:~$
מכיוון שנשתמש ב-curl
כדי לשלוח בקשה ל-Speech API, נצטרך ליצור מפתח API כדי להעביר אותו בכתובת ה-URL של הבקשה. כדי ליצור מפתח API, עוברים אל הקטע APIs & Services > Credentials בלוח הבקרה של הפרויקט:
לאחר מכן לוחצים על יצירת אמצעי אימות:
בתפריט הנפתח, בוחרים באפשרות API key:
לאחר מכן, מעתיקים את המפתח שנוצר ולוחצים על Close (לא מגבילים את המפתח).
אחרי שיצרתם מפתח API, כדאי לשמור אותו במשתנה סביבה כדי שלא תצטרכו להוסיף את הערך של מפתח ה-API בכל בקשה. אפשר לעשות את זה ב-Cloud Shell. חשוב להחליף את <your_api_key>
במפתח שהעתקתם.
export API_KEY=<YOUR_API_KEY>
אפשר ליצור את הבקשה ל-Speech API בקובץ request.json
. כדי ליצור ולערוך את הקובץ הזה, אפשר להשתמש באחד מעורכי שורת הפקודה המועדפים (nano, vim, emacs) או בעורך האינטרנטי המובנה ב-Cloud Shell:
יוצרים את הקובץ בספריית הבית כדי שיהיה קל להתייחס אליו, ומוסיפים לקובץ request.json
את הנתונים הבאים :
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
גוף הבקשה כולל את האובייקטים config
ו-audio
. ב-config
, אנחנו מציינים ל-Speech API איך לעבד את הבקשה. הפרמטר encoding
מציין ל-API את סוג קידוד האודיו שבו אתם משתמשים בקובץ האודיו שאתם שולחים ל-API. FLAC
הוא סוג הקידוד של קובצי .raw (פרטים נוספים על סוג הקידוד זמינים בתיעוד). יש עוד פרמטרים שאפשר להוסיף לאובייקט config
, אבל encoding
הוא הפרמטר הנדרש היחיד. אם לא תציינו את השפה בבקשה, ברירת המחדל של languageCode
תהיה אנגלית.
באובייקט audio
, אפשר להעביר ל-API את ה-URI של קובץ האודיו שלנו ב-Cloud Storage או את האודיו בקידוד base64 כמחרוזת. בדוגמה הזו השתמשנו בכתובות URL של Cloud Storage. בשלב הבא נפעיל את Speech API.
עכשיו אפשר להעביר את גוף הבקשה, יחד עם משתנה הסביבה של מפתח ה-API ששמרתם קודם, אל Speech API באמצעות הפקודה curl
הבאה (הכול בשורת פקודה אחת):
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"
התגובה שמתקבלת מהפקודה curl
אמורה להיראות כך:
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
הערך transcript
יחזיר את התמלול של קובץ האודיו באמצעות Speech API, והערך transcript
מציין את רמת הביטחון של ה-API בתמלול המדויק של האודיו.confidence
אפשר לראות שקראנו לשיטה recognize
בבקשה שלמעלה. Speech API תומך בתמלול סינכרוני ואסינכרוני של דיבור לטקסט. בדוגמה הזו שלחנו קובץ אודיו מלא, אבל אפשר גם להשתמש בשיטה longrunningrecognize
כדי לבצע תמלול של דיבור בזמן אמת, בזמן שהמשתמש עדיין מדבר.
האם אתה דובר כמה שפות? Speech API תומך בתמלול של דיבור לטקסט ביותר מ-100 שפות. אפשר לשנות את הפרמטר languageCode
בrequest.json
. כאן אפשר למצוא רשימה של השפות הנתמכות.
ננסה קובץ אודיו בצרפתית (אפשר להאזין לו כאן כדי לקבל הצצה). משנים את הקובץ request.json כך שייראה כמו הקובץ הבא:
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "fr"
},
"audio": {
"uri":"gs://speech-language-samples/fr-sample.flac"
}
}
אמורה להתקבל התגובה הבאה:
{
"results": [
{
"alternatives": [
{
"transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
"confidence": 0.9710122
}
]
}
]
}
זהו משפט מסיפור ילדים צרפתי פופולרי. אם יש לכם קובצי אודיו בשפה אחרת, אתם יכולים לנסות להוסיף אותם ל-Cloud Storage ולשנות את הפרמטר languageCode
בבקשה.
למדתם איך לבצע תמלול של דיבור לטקסט באמצעות Speech API. בדוגמה הזו העברתם ל-API את ה-URI של קובץ האודיו ב-Google Cloud Storage. אפשר גם להעביר מחרוזת בקידוד base64 של תוכן האודיו.
מה למדנו
- העברת URI של Google Cloud Storage של קובץ אודיו אל Speech API
- יצירת בקשה ל-Speech API והתקשרות ל-API באמצעות curl
- שליחת קריאה ל-Speech API עם קובצי אודיו בשפות שונות
השלבים הבאים
- אפשר לעיין במדריכים של Speech API במסמכי התיעוד.
- מומלץ להתנסות ב-Vision API וב-Natural Language API.