תמלול של המרת דיבור לטקסט (STT) באמצעות Cloud Speech-to-Text API

ה-Cloud Speech API מאפשר להפעיל דיבור ותמלול טקסט מקובצי אודיו ביותר מ-80 שפות.

בשיעור Lab זה נקליט קובץ אודיו ונשלח אותו ל-Cloud Speech API לתמלול.

מה תלמדו

  • יצירת בקשה של Speech API וקריאה ל-API באמצעות תלתל
  • קריאה ל-Speech API עם קובצי אודיו בשפות שונות

מה תצטרך להכין

  • פרויקט של Google Cloud Platform
  • דפדפן, למשל Chrome או Firefox

איך תשתמשו במדריך הזה?

לקרוא אותו בלבד לקרוא אותו ולהשלים את התרגילים

איך היית מדרג את החוויה שלך ב-Google Cloud Platform?

מתחילים מתחילים בקיאים

הגדרת סביבה בקצב עצמי

אם עדיין אין לכם חשבון Google (Gmail או Google Apps), עליכם ליצור חשבון. נכנסים למסוף ב-Google Cloud Platform (console.cloud.google.com) ויוצרים פרויקט חדש:

צילום מסך מ-2016-02-10 12:45:26.png

חשוב לזכור את מזהה הפרויקט הוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם הקודם כבר תפוס, והוא לא יעבוד בשבילך.) נתייחס אליו מאוחר יותר ב-codelab הזה בתור PROJECT_ID.

לאחר מכן, עליך להפעיל חיוב ב-Cloud Console כדי להשתמש במשאבים של Google Cloud.

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

משתמשים חדשים ב-Google Cloud Platform זכאים לתקופת ניסיון בחינם בשווי 300$.

לוחצים על סמל התפריט בפינה הימנית העליונה של המסך.

בוחרים את מרכז השליטה ממשקי API ושירותים מהתפריט הנפתח.

לוחצים על הפעלת ממשקי API ושירותים.

לאחר מכן, מחפשים את ה "Speech" בתיבת החיפוש. לוחצים על Google Cloud Speech API:

לוחצים על הפעלה כדי להפעיל את Cloud Speech API:

ממתינים מספר שניות עד שהיא תופעל. יוצג לך ברגע שהיא תופעל:

התכונה Google Cloud Shell היא סביבת שורת פקודה שפועלת ב-Cloud. המכונה הווירטואלית המבוססת על Debian נטענת עם כל כלי הפיתוח הדרושים לך (gcloud, bq, git ואחרים) וספריית בית קבועה בנפח של 5GB. אנחנו נשתמש ב-Cloud Shell כדי ליצור את הבקשה שלנו ב-Speech API.

כדי להתחיל להשתמש ב-Cloud Shell, לוחצים על הסמל "הפעלת Google Cloud Shell" צילום מסך 2015-06-08 ב-17.30.32 בפינה השמאלית העליונה של סרגל הכותרת

סשן של Cloud Shell ייפתח בתוך מסגרת חדשה בחלק התחתון של המסוף, ויציג הודעה בשורת הפקודה. יש להמתין עד שהדף user@project:~$ תופיע

אנחנו נשתמש ב-curl כדי לשלוח בקשה ל-Speech API, ולכן נצטרך ליצור מפתח API כדי להעביר אותו לכתובת ה-URL של הבקשה. כדי ליצור מפתח API, נכנסים לקטע APIs & Services > Credentials (מרכזת המשתמשים) במרכז השליטה של הפרויקט:

לאחר מכן לוחצים על יצירת פרטי כניסה:

בתפריט הנפתח, בוחרים באפשרות מפתח API:

השלב הבא הוא להעתיק את המפתח שיצרת עכשיו ולבחור סגירה (אין להגביל את המפתח).

עכשיו, אחרי שיש לך מפתח API, עליך לשמור אותו במשתנה סביבה כדי להימנע מהוספת הערך של מפתח ה-API בכל בקשה. ניתן לעשות זאת ב-Cloud Shell. עליך להחליף את <your_api_key> במפתח שהעתקת עכשיו.

export API_KEY=<YOUR_API_KEY>

ניתן ליצור את הבקשה ל-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 של קובץ האודיו שלנו ב-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 של קובץ האודיו שלכם, והערך של confidence מציין עד כמה ה-API תומלל את האודיו שלכם בצורה מדויקת.

לידיעתך, התקשרנו לשיטה 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 של Google Cloud Storage של קובץ האודיו שלכם. לחלופין, ניתן להעביר מחרוזת בקידוד base64 של תוכן האודיו.

באילו נושאים מדובר?

  • העברת Speech API ל-URI של Google Cloud Storage של קובץ אודיו
  • יצירת בקשה של Speech API וקריאה ל-API באמצעות תלתל
  • קריאה ל-Speech API עם קובצי אודיו בשפות שונות

השלבים הבאים