מטרות
העברת טקסט שזוהה על ידי Cloud Vision API אל Cloud Translation API.
אפשר ליצור מילוני מונחים של Cloud Translation ולהשתמש בהם כדי להתאים אישית את התרגומים של Cloud Translation API.
יצירת ייצוג אודיו של טקסט מתורגם באמצעות Text-to-Speech API.
עלויות
לכל Google Cloud API יש מבנה תמחור נפרד.פרטים על התמחור מופיעים במדריך התמחור של Cloud Vision, במדריך התמחור של Cloud Translation ובמדריך התמחור של Text-to-Speech.
לפני שמתחילים
חשוב לוודא שיש לכם:- פרויקט במסוףGoogle Cloud עם Vision API, Cloud Translation API ו-Text-to-Speech API מופעלים
- היכרות בסיסית עם תכנות ב-Python
הורדת דוגמאות הקוד
במדריך הזה נעשה שימוש בקוד בספרייה samples/snippets/hybrid_glossaries של ספריות הלקוח של Cloud ל-Python.
כדי להוריד את הקוד של המדריך הזה ולעבור אליו, מריצים את הפקודות הבאות מהטרמינל.
git clone https://github.com/googleapis/python-translate.git cd samples/snippets/hybrid_glossaries/
הגדרה של ספריות לקוח
במדריך הזה נעשה שימוש בספריות הלקוח של Vision, Translation ו-Text-to-Speech.
כדי להתקין את ספריות הלקוח הרלוונטיות, מריצים את הפקודות הבאות מהטרמינל.
pip install --upgrade google-cloud-vision pip install --upgrade google-cloud-translate pip install --upgrade google-cloud-texttospeech
הגדרת הרשאות ליצירת מילון מונחים
כדי ליצור מילוני מונחים לתרגום, צריך להשתמש במפתח של חשבון שירות עם הרשאות 'עריכה של Cloud Translation API'.
כדי להגדיר מפתח של חשבון שירות עם הרשאות עריכה ב-Cloud Translation API:
יוצרים חשבון שירות:
נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים את הפרויקט הרצוי.
לוחצים על Create Service Account (יצירת חשבון שירות).
כותבים שם בשדה Service account name. השדה Service account ID ימולא במסוףGoogle Cloud בהתאם לשם הזה.
אופציונלי: בשדה Service account description, מזינים תיאור של חשבון השירות.
לוחצים על Create and continue.
לוחצים על השדה Select a role (בחירת תפקיד) ובוחרים באפשרות Cloud Translation > Cloud Translation API Editor (עורך Cloud Translation API).
לוחצים על Done כדי לסיים ליצור את חשבון השירות.
חשוב לא לסגור את החלון של הדפדפן, כי תשתמשו בו גם בשלב הבא.
מורידים מפתח JSON לחשבון השירות שיצרתם:
- במסוף Google Cloud , לוחצים על כתובת האימייל של חשבון השירות שיצרתם.
- לוחצים על Keys.
- לוחצים על Add key ואז על Create new key.
לוחצים על יצירה. למחשב שלכם תתבצע הורדה של קובץ JSON עם המפתח.
חשוב לאחסן את קובץ המפתח באופן מאובטח כי הוא יכול לשמש לצורך אימות כחשבון השירות שלכם. אפשר להעביר את הקובץ לאן שרוצים ולשנות את השם שלו למה שרוצים.
לוחצים על Close.
בטרמינל, בתיקייה
hybrid_glossaries, מגדירים את המשתנהGOOGLE_APPLICATION_CREDENTIALSבאמצעות הפקודה הבאה. מחליפים אתpath_to_keyבנתיב של קובץ ה-JSON שהורדתם ומכיל את המפתח החדש של חשבון השירות.Linux או macOS
export GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Windows
set GOOGLE_APPLICATION_CREDENTIALS=path_to_key
ייבוא ספריות
במדריך הזה נעשה שימוש בייבוא המערכת ובייבוא ספריית הלקוח הבאים.
הגדרת מזהה הפרויקט
צריך לשייך Google Cloud פרויקט לכל בקשה שנשלחת אל Google Cloud API. מגדירים את משתנה הסביבה GOOGLE_CLOUD_PROJECT מהטרמינל כדי לציין את Google Cloud הפרויקט.
בפקודה הבאה, מחליפים את PROJECT_NUMBER_OR_ID במספר הפרויקט או במזהה הפרויקט. Google Cloud מריצים את הפקודה הבאה מהטרמינל.
Linux או macOS
export GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Windows
set GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
במדריך הזה נעשה שימוש במשתנה הבא של מזהה הפרויקט הגלובלי.
שימוש ב-Vision כדי לזהות טקסט מתמונה
משתמשים ב-Vision API כדי לזהות ולחלץ טקסט מתמונה.
Vision API משתמש בזיהוי תווים אופטי (OCR) כדי לתמוך בשני פיצ'רים של זיהוי טקסט: זיהוי של טקסט צפוף, או DOCUMENT_TEXT_DETECTION, וזיהוי של טקסט דליל, או TEXT_DETECTION.
בדוגמת הקוד הבאה אפשר לראות איך משתמשים בתכונה DOCUMENT_TEXT_DETECTION של Vision API כדי לזהות טקסט בתמונה עם טקסט צפוף.
שימוש בתרגום עם מילוני מונחים
אחרי שחולצים טקסט מתמונה, אפשר להשתמש במילוני מונחים לתרגום כדי להתאים אישית את התרגום של הטקסט שחולץ. מילוני מונחים מספקים תרגומים מוגדרים מראש שמבטלים את התרגומים של מונחים ייעודיים ב-Cloud Translation API.
תרחישי שימוש במילון המונחים:
שמות מוצרים: לדוגמה, 'Google Home' צריך להיות מתורגם ל-'Google Home'.
מילים דו-משמעיות: לדוגמה, המילה 'bat' יכולה להתייחס לציוד ספורט או לבעל חיים. אם אתם יודעים שאתם מתרגמים מילים שקשורות לספורט, כדאי להשתמש במילון מונחים כדי להזין ל-Cloud Translation API את התרגום של המילה bat בהקשר של ספורט, ולא בהקשר של בעל חיים.
מילים שאולות: לדוגמה, המילה 'bouillabaisse' בצרפתית מתורגמת ל-'bouillabaisse' באנגלית. השפה האנגלית שאלה את המילה 'bouillabaisse' מהשפה הצרפתית. אדם דובר אנגלית שלא מכיר את ההקשר התרבותי הצרפתי אולי לא יידע שבוילבאס היא מנת תבשיל דגים צרפתית. אפשר להגדיר במילון מונחים תרגום שונה מזה שמופיע ב-Google Translate. לדוגמה, אפשר להגדיר ש-bouillabaisse בצרפתית יתורגם ל-fish stew באנגלית.
יצירת קובץ מילון מונחים
Cloud Translation API מקבל קובצי מילון מונחים בפורמטים TSV, CSV או TMX. במדריך הזה נשתמש בקובץ CSV שהועלה ל-Cloud Storage כדי להגדיר קבוצות של מונחים שווי ערך.
כדי ליצור קובץ CSV של מילון מונחים:
מציינים את השפה של עמודה באמצעות קודי שפה לפי תקן ISO-639 או BCP-47 בשורה הראשונה של קובץ ה-CSV.
fr,en,
מפרטים זוגות של מונחים מקבילים בכל שורה בקובץ ה-CSV. מפרידים בין המונחים באמצעות פסיקים. בדוגמה הבאה מוגדר התרגום לאנגלית של כמה מילים צרפתיות שקשורות לקולינריה.
fr,en, chèvre,goat cheese, crème brulée,crème brulée, bouillabaisse,fish stew, steak frites,steak with french fries,
הגדרת וריאציות של מילה. Cloud Translation API הוא תלוי אותיות רישיות (case-sensitive) ורגיש לתווים מיוחדים כמו מילים עם סימני הטעמה. כדי לוודא שהמילון מטפל בווריאציות של מילה, צריך להגדיר במפורש איות שונה של המילה.
fr,en, chevre,goat cheese, Chevre,Goat cheese, chèvre,goat cheese, Chèvre,Goat cheese, crème brulée,crème brulée, Crème brulée,Crème brulée, Crème Brulée,Crème Brulée, bouillabaisse,fish stew, Bouillabaisse,Fish stew, steak frites,steak with french fries, Steak frites,Steak with french fries, Steak Frites,Steak with French Fries,
מעלים את מילון המונחים לקטגוריה ב-Cloud Storage. לצורך המדריך הזה, לא צריך להעלות קובץ מונחים לקטגוריה של Cloud Storage ולא צריך ליצור קטגוריה של Cloud Storage. במקום זאת, כדי להימנע מעלויות של Cloud Storage, אפשר להשתמש בקובץ המונחים שזמין לציבור שנוצר עבור המדריך הזה. שולחים את ה-URI של קובץ מילון מונחים ב-Cloud Storage אל Cloud Translation API כדי ליצור משאב מילון מונחים. ה-URI של קובץ המילון המונחים שזמין לכולם במדריך הזה הוא gs://cloud-samples-data/translation/bistro_glossary.csv. כדי להוריד את המילון, לוחצים על קישור ה-URI שלמעלה, אבל לא פותחים אותו בכרטיסייה חדשה.
יצירת משאב של מילון מונחים
כדי להשתמש במונחון, צריך ליצור משאב מונחון באמצעות Cloud Translation API. כדי ליצור משאב מילון מונחים, שולחים את ה-URI של קובץ מילון מונחים ב-Cloud Storage אל Cloud Translation API.
מוודאים שאתם משתמשים במפתח של חשבון שירות עם הרשאות "עריכה של Cloud Translation API", ומוודאים שהגדרתם את מזהה הפרויקט במסוף.
הפונקציה הבאה יוצרת משאב מילון מונחים. בעזרת מילון המונחים הזה, תוכלו להתאים אישית את בקשת התרגום בשלב הבא של המדריך הזה.
תרגום באמצעות מילונים
אחרי שיוצרים משאב מילון מונחים, אפשר להשתמש בו כדי להתאים אישית תרגומים של טקסט שנשלח אל Cloud Translation API.
הפונקציה הבאה משתמשת במשאב המילון המונחים שיצרתם קודם כדי להתאים אישית את תרגום הטקסט.
שימוש בהמרת טקסט לדיבור עם שפת סימון לסינתזת דיבור
עכשיו, אחרי שהתאמתם אישית תרגום של טקסט שזוהה בתמונה, אתם מוכנים להשתמש ב-Text-to-Speech API. Text-to-Speech API יכול ליצור אודיו סינתטי של הטקסט המתורגם.
Text-to-Speech API יוצר אודיו סינתטי ממחרוזת של טקסט פשוט או ממחרוזת של טקסט שמסומן באמצעות Speech Synthesis Markup Language (SSML). SSML היא שפת תגי עיצוב שתומכת בהוספת הערות לטקסט באמצעות תגי SSML. אתם יכולים להשתמש בתגי SSML כדי להשפיע על האופן שבו Text-to-Speech API מעצב את יצירת הדיבור הסינתטי.
הפונקציה הבאה ממירה מחרוזת של SSML לקובץ MP3 של דיבור סינתטי.
איך הכל משתלב יחד
בשלבים הקודמים הגדרתם פונקציות ב-hybrid_glossaries.py שמשתמשות ב-Vision, בתרגום ובהמרת טקסט לדיבור. עכשיו אפשר להשתמש בפונקציות האלה כדי ליצור דיבור מסונתז של טקסט מתורגם מהתמונה הבאה.

הקוד הבא קורא לפונקציות שמוגדרות ב-hybrid_glossaries.py כדי:
יצירת משאב מילון מונחים של Cloud Translation API
תשתמש ב-Vision API כדי לזהות טקסט בתמונה שלמעלה
לבצע תרגום של הטקסט שזוהה באמצעות מילון מונחים של Cloud Translation API
ליצור דיבור סינתטי של הטקסט המתורגם באמצעות המרת טקסט לדיבור (TTS)
הרצת הקוד
כדי להריץ את הקוד, מזינים את הפקודה הבאה בטרמינל בספרייה המשובטת hybrid_glossaries:
python hybrid_tutorial.py
הפלט הבא מופיע:
Created glossary bistro-glossary. Audio content written to file resources/example.mp3
אחרי שמריצים את hybrid_glossaries.py, מנווטים אל הספרייה resources מהספרייה hybrid_glossaries.
בודקים אם יש קובץ example.mp3 בספריית המשאבים.
כדאי להאזין לקטע האודיו הבא כדי לוודא שקובץ example.mp3 נשמע זהה.
פתרון בעיות שקשורות להודעות שגיאה
403 IAM permission 'cloudtranslate.glossaries.create' denied.
החריגה הזו מתרחשת כשמשתמשים במפתח של חשבון שירות בלי הרשאות של Cloud Translation API Editor.
KeyError: 'GOOGLE_CLOUD_PROJECT'
השגיאה הזו נוצרת אם לא מגדירים את המשתנה GOOGLE_CLOUD_PROJECT.
400 Invalid resource name project id
החריגה הזו מתרחשת אם משתמשים בשם מילון מונחים שמכיל תווים שאינם אותיות קטנות, ספרות, נקודות, נקודתיים או מקפים, או אם משתמשים במפתח של חשבון שירות ללא הרשאות של 'עורך Cloud Translation API'.
File filename was not found.
הגדרת המשתנה GOOGLE_APPLICATION_CREDENTIALS לנתיב קובץ לא תקין מעלה את החריגה הזו.
Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application
החריגה הזו מתרחשת אם לא מגדירים את המשתנה GOOGLE_APPLICATION_CREDENTIALS.
Forbidden: 403 POST API has not been used or is disabled
האזהרה הזו מוצגת אם שולחים קריאה ל-Cloud Translation API, ל-Cloud Vision API או ל-Text-to-Speech API בלי להפעיל את ממשקי ה-API האלה.
AttributeError: 'module' object has no attribute 'escape'
Python 2.7.10 או גרסאות קודמות לא תואמות ל-
HTML. כדי לפתור את השגיאה הזו, צריך להשתמש בסביבה וירטואלית של Python. הסביבה הווירטואלית תשתמש בגרסה החדשה ביותר של Python.UnicodeEncodeError
Python 2.7.10 או גרסאות קודמות לא תואמות ל-
HTML. כדי לפתור את השגיאה הזו, צריך להשתמש בסביבה וירטואלית של Python. הסביבה הווירטואלית תשתמש בגרסה החדשה ביותר של Python.
סידור וארגון
אם אין לכם צורך בפרויקט, אתם יכולים למחוק אותו באמצעות Google Cloud המסוף. מחיקת הפרויקט תמנע חיובים נוספים בחשבון לחיוב ב-Cloud על המשאבים שבהם השתמשתם במדריך הזה.
מחיקת הפרויקט
- בGoogle Cloud מסוף, עוברים לדף Projects.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
המאמרים הבאים
כל הכבוד! הרגע השתמשת ב-Vision OCR כדי לזהות טקסט בתמונה. לאחר מכן, יצרתם מילון מונחים לתרגום וביצעתם תרגום באמצעות המילון הזה. לאחר מכן, השתמשת בהמרת טקסט לדיבור כדי ליצור אודיו סינתטי של הטקסט המתורגם.
כדי להרחיב את הידע שלכם בנושא Vision, Cloud Translation ו-Text-to-Speech:
- יוצרים מילון מונחים משלכם. איך יוצרים קטגוריה ב-Cloud Storage ומעלים אליה את קובץ ה-CSV של המילון
- אפשר לנסות דרכים אחרות לשימוש במילוני מונחים לתרגום.
- איך משתמשים ב-Cloud Storage עם Cloud Vision OCR
- מידע נוסף על שימוש ב-SSML עם המרת טקסט לדיבור
- מידע על שימוש ב-Vision API
imageContextfield כדי להעביר הקשר נוסף לגבי תמונה כשמשתמשים ב-Vision OCR. - מעיינים במדריכים של הקהילה.