בדף הזה מוסבר איך מקבלים ערכי הזמן שחלף עבור אודיו שתומלל באמצעות Cloud Speech-to-Text.
Cloud STT יכול לכלול ערכים של הזמן שחלף (חותמת זמן) בטקסט התגובה לבקשת הזיהוי. ערכי הזמן שחלף מציגים את ההתחלה והסוף של כל מילה מדוברת שמזוהה באודיו שסופק. ערך של היסט זמן מייצג את משך הזמן שחלף מתחילת האודיו, במרווחים של 100 אלפיות השנייה.
הזחות זמן שימושיות במיוחד לניתוח קובצי אודיו ארוכים, שבהם יכול להיות שתצטרכו לחפש מילה מסוימת בטקסט המזוהה ולאתר אותה (לדלג אליה) באודיו המקורי. Cloud STT תומך בהזזות זמן לכל שיטות זיהוי הדיבור: speech:recognize, speech:longrunningrecognize ו-Streaming.
ערכי הזמן שחלף נכללים רק בחלופה הראשונה שמופיעה בתשובת הזיהוי.
כדי לכלול את הפרשי השעות בתוצאות של הבקשה, צריך להגדיר את הפרמטר enableWordTimeOffsets לערך true בהגדרת הבקשה.
פרוטוקול
פרטים נוספים זמינים בנקודת קצה ל-API של speech:longrunningrecognize.
כדי לבצע זיהוי דיבור סינכרוני, שולחים בקשת POST ומספקים את גוף הבקשה המתאים. בדוגמה הבאה מוצגת בקשת POST באמצעות curl. בדוגמה נעשה שימוש ב-Google Cloud CLI כדי ליצור אסימון גישה. הוראות להתקנת ה-CLI של gcloud מופיעות במדריך למתחילים.
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': { 'language_code': 'en-US', 'enableWordTimeOffsets': true }, 'audio':{ 'uri':'gs://gcs-test-data/vr.flac' } }" "https://speech.googleapis.com/v1/speech:longrunningrecognize"
מידע נוסף על הגדרת גוף הבקשה מופיע במאמרי העזרה בנושא RecognitionConfig ו-RecognitionAudio.
אם הבקשה תתבצע בהצלחה, השרת יחזיר קוד סטטוס 200 OK של HTTP ואת התשובה בפורמט JSON. אם הפעולה לא הושלמה (עדיין מתבצעת),
התגובה תהיה דומה לדוגמה הבאה:
{ "name": "2885768779530032514", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 97, "startTime": "2020-12-14T03:11:54.492593Z", "lastUpdateTime": "2020-12-14T03:15:57.484509Z", "uri": "gs://{BUCKET_NAME}/{FILE_NAME}" } }
כשהתהליך יסתיים, הפלט ייראה כך:
{
"name": "7612202767953098924"
}כאשר name הוא השם של הפעולה הממושכת שנוצרה עבור הבקשה.
עיבוד הקובץ vr.flac נמשך כ-30 שניות. כדי לאחזר את תוצאת הפעולה, שולחים בקשת GET לנקודת הקצה https://speech.googleapis.com/v1/operations/. מחליפים את your-operation-name בערך name שקיבלתם מהבקשה שלכם longrunningrecognize.
curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ "https://speech.googleapis.com/v1/operations/your-operation-name"
אם הבקשה מצליחה, השרת מחזיר קוד סטטוס 200 OK של HTTP ואת התשובה בפורמט JSON:
{ "name": "7612202767953098924", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 100, "startTime": "2017-07-20T16:36:55.033650Z", "lastUpdateTime": "2017-07-20T16:37:17.158630Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "transcript": "okay so what am I doing here...(etc)...", "confidence": 0.96596134, "words": [ { "startTime": "1.400s", "endTime": "1.800s", "word": "okay" }, { "startTime": "1.800s", "endTime": "2.300s", "word": "so" }, { "startTime": "2.300s", "endTime": "2.400s", "word": "what" }, { "startTime": "2.400s", "endTime": "2.600s", "word": "am" }, { "startTime": "2.600s", "endTime": "2.600s", "word": "I" }, { "startTime": "2.600s", "endTime": "2.700s", "word": "doing" }, { "startTime": "2.700s", "endTime": "3s", "word": "here" }, { "startTime": "3s", "endTime": "3.300s", "word": "why" }, { "startTime": "3.300s", "endTime": "3.400s", "word": "am" }, { "startTime": "3.400s", "endTime": "3.500s", "word": "I" }, { "startTime": "3.500s", "endTime": "3.500s", "word": "here" }, ... ] } ] }, { "alternatives": [ { "transcript": "so so what am I doing here...(etc)...", "confidence": 0.9642093, } ] } ] } }
אם הפעולה לא הסתיימה, אפשר לדגום את נקודת הקצה על ידי שליחה חוזרת של בקשת GET עד שהמאפיין done של התגובה יהיה true.
gcloud
פרטים נוספים זמינים בפקודה
recognize-long-running.
כדי לבצע זיהוי דיבור אסינכרוני, משתמשים ב-Google Cloud CLI ומציינים את הנתיב של קובץ מקומי או כתובת URL של Google Cloud Storage. כוללים את הדגל --include-word-time-offsets.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --include-word-time-offsets --async
אם הבקשה מצליחה, השרת מחזיר את המזהה של הפעולה ארוכת הטווח בפורמט JSON.
{
"name": OPERATION_ID
}אחרי כן, מריצים את הפקודה הבאה כדי לקבל מידע על הפעולה.
gcloud ml speech operations describe OPERATION_ID
אפשר גם לבצע דגימה של הפעולה עד שהיא תושלם על ידי הפעלת הפקודה הבאה.
gcloud ml speech operations wait OPERATION_ID
אחרי שהפעולה מסתיימת, היא מחזירה תמליל של האודיו בפורמט JSON.
{ "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "confidence": 0.9840146, "transcript": "how old is the Brooklyn Bridge", "words": [ { "endTime": "0.300s", "startTime": "0s", "word": "how" }, { "endTime": "0.600s", "startTime": "0.300s", "word": "old" }, { "endTime": "0.800s", "startTime": "0.600s", "word": "is" }, { "endTime": "0.900s", "startTime": "0.800s", "word": "the" }, { "endTime": "1.100s", "startTime": "0.900s", "word": "Brooklyn" }, { "endTime": "1.500s", "startTime": "1.100s", "word": "Bridge" } ] } ] } ] }
Go
מידע על התקנה ושימוש בספריית הלקוח של Cloud STT מופיע במאמר ספריות הלקוח של Cloud STT. מידע נוסף מופיע במאמרי העזרה של Cloud STT Go API.
כדי לבצע אימות ב-Cloud STT, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנה ושימוש בספריית הלקוח של Cloud STT מופיע במאמר ספריות הלקוח של Cloud STT. מידע נוסף מופיע במאמרי העזרה של Cloud STT Java API.
כדי לבצע אימות ב-Cloud STT, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנה ושימוש בספריית הלקוח של Cloud STT מופיע במאמר ספריות הלקוח של Cloud STT. מידע נוסף מופיע במאמרי העזרה של Cloud STT Node.js API.
כדי לבצע אימות ב-Cloud STT, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנה ושימוש בספריית הלקוח של Cloud STT מופיע במאמר ספריות הלקוח של Cloud STT. מידע נוסף מופיע במאמרי העזרה של Cloud STT Python API.
כדי לבצע אימות ב-Cloud STT, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
שפות נוספות
C#: צריך לפעול לפי הוראות ההגדרה של C# בדף של ספריות הלקוח ואז לעבור אל מאמרי העזרה של Cloud STT ל- .NET.
PHP: צריך לפעול לפי הוראות ההגדרה של PHP בדף של ספריות הלקוח ואז לעבור אל מאמרי העזרה של Cloud STT ל-PHP.
Ruby: פועלים לפי הוראות ההגדרה של Ruby בדף של ספריות הלקוח, ואז עוברים אל מאמרי העזרה של Cloud STT ל-Ruby.