chrome.ttsEngine (original) (raw)

דילוג לתוכן הראשי

תיאור

שימוש ב-API של chrome.ttsEngine כדי להטמיע מנוע המרה של טקסט לדיבור(TTS) באמצעות תוסף. אם התוסף שלכם ירשם באמצעות ה-API הזה, הוא יקבל אירועים שמכילים משפט שצריך לדבר ופרמטרים אחרים כשתוסף או אפליקציית Chrome כלשהם ישתמשו ב-API tts כדי ליצור דיבור. לאחר מכן, התוסף יכול להשתמש בכל טכנולוגיית אינטרנט זמינה כדי לסנתז את הדיבור ולייצר פלט שלו, ולשלוח אירועים בחזרה לפונקציה הקוראת כדי לדווח על הסטטוס.

הרשאות

ttsEngine

מושגים ושימוש

תוסף יכול לרשום את עצמו כמנוע דיבור. כך הוא יכול ליירט חלק מהקריאות או את כולן לפונקציות כמו tts.speak() ו-tts.stop() ולספק הטמעה חלופית. תוספים יכולים להשתמש בכל טכנולוגיית אינטרנט זמינה כדי לספק דיבור, כולל אודיו בסטרימינג משרת, אודיו ב-HTML5. התוסף יכול גם לבצע פעולות שונות עם ההצהרות, כמו להציג כתוביות בחלון קופץ או לשלוח אותן כהודעות ביומן לשרת מרוחק.

כדי להטמיע מנוע TTS, התוסף צריך להצהיר על ההרשאה ttsEngine ואז להצהיר על כל הקולות שהוא מספק במניפסט של התוסף, כך:

{
  "name": "My TTS Engine",
  "version": "1.0",
  "permissions": ["ttsEngine"],
  "tts_engine": {
    "voices": [
      {
        "voice_name": "Alice",
        "lang": "en-US",
        "event_types": ["start", "marker", "end"]
      },
      {
        "voice_name": "Pat",
        "lang": "en-US",
        "event_types": ["end"]
      }
    ]
  },
  "background": {
    "page": "background.html",
    "persistent": false
  }
}

אפשר לציין מספר בלתי מוגבל של קולות בתוסף.

חובה לכלול את הפרמטר voice_name. השם צריך להיות תיאורי מספיק כדי לזהות את שם הקול ואת המנוע שבו נעשה שימוש. במקרה הנדיר שבו שני תוספים יירשמו קולות עם אותו שם, הלקוח יכול לציין את המזהה של התוסף שצריך לבצע את הסינתזה.

הפרמטר lang הוא אופציונלי, אבל מומלץ מאוד. כמעט תמיד, קול מסונתז יכול לדבר רק בשפה אחת. כשמנוע תומך ביותר משפה אחת, הוא יכול לרשום בקלות קול נפרד לכל שפה. במקרים נדירים שבהם קול אחד יכול לטפל ביותר משפה אחת, הכי קל פשוט לרשום שני קולות נפרדים ולטפל בהם באמצעות אותה לוגיקה באופן פנימי. עם זאת, אם רוצים ליצור קול שיטפל בביטויים בכל שפה, צריך להשמיט את הפרמטר lang מהמניפסט של התוסף.

לבסוף, הפרמטר event_types נדרש אם המנוע יכול לשלוח אירועים כדי לעדכן את הלקוח לגבי התקדמות סינתז הדיבור. מומלץ מאוד לתמוך בסוג האירוע 'end' כדי לציין מתי הדיבור מסתיים, אחרת Chrome לא יוכל לתזמן משפטים שנמצאים בתור.

אחרי הטעינה, תוסף יכול להחליף את רשימת הקולות המוצגים באמצעות קריאה ל-chrome.ttsEngine.updateVoices. (שימו לב שהפרמטרים שמשמשים בקריאה הפרוגרמטית ל-updateVoices הם באותיות רישיות (case-sensitive) בסגנון camel case: למשל, voiceName, בניגוד לקובץ המניפסט שבו נעשה שימוש ב-voice_name).

סוגי האירועים האפשריים שאפשר לשלוח תואמים לסוגים של האירועים שהשיטה speak() מקבלת:

אירועי 'interrupted' ו-'cancelled' לא נשלחים על ידי מנוע הדיבור, אלא נוצרים באופן אוטומטי על ידי Chrome.

לקוחות של Text-to-speech יכולים לקבל את פרטי הקול מהמניפסט של התוסף באמצעות קריאה ל-tts.getVoices, בהנחה שרשמת מאזינים לאירועי דיבור כפי שמתואר בהמשך.

טיפול באירועי דיבור

כדי ליצור דיבור לפי בקשה של לקוחות, התוסף צריך לרשום מאזינים גם ל-onSpeak וגם ל-onStop, כך:

const speakListener = (utterance, options, sendTtsEvent) => {
  sendTtsEvent({type: 'start', charIndex: 0})

  // (start speaking)

  sendTtsEvent({type: 'end', charIndex: utterance.length})
};

const stopListener = () => {
  // (stop all speech)
};

chrome.ttsEngine.onSpeak.addListener(speakListener);
chrome.ttsEngine.onStop.addListener(stopListener);

ההחלטה אם לשלוח בקשת דיבור מסוימת לתוסף או לא מבוססת אך ורק על כך שהתוסף תומך בפרמטרים הקוליים הנתונים במניפסט שלו ושיש לו מאזינים רשומים ל-onSpeak ול-onStop. במילים אחרות, אין דרך להרחבה לקבל בקשה לדיבור ולהחליט באופן דינמי אם לטפל בה.

סוגים

AudioBuffer

פרמטרים שמכילים מאגר אודיו ונתונים משויכים.

מאפיינים

AudioStreamOptions

מכיל את הפורמט של ערוץ האודיו שצפוי להיווצר על ידי מנוע.

מאפיינים

LanguageInstallStatus

סטטוס ההתקנה של קול.

Enum

"notInstalled"

"installing"

"installed"

"failed"

LanguageStatus

סטטוס ההתקנה של שפה.

מאפיינים

LanguageUninstallOptions

אפשרויות להסרת שפה מסוימת.

מאפיינים

SpeakOptions

האפשרויות שצוינו לשיטה tts.speak().

מאפיינים

TtsClient

המזהה של הלקוח שמבקש את הסטטוס.

מאפיינים

TtsClientSource

סוג מבקש הבקשה.

Enum

"chromefeature"

"extension"

VoiceGender

Chrome מגרסה 54 ואילך הוצאה משימוש החל מגרסה Chrome 70

המאפיין 'מגדר' הוצא משימוש והמערכת תתעלם ממנו.

Enum

Methods

updateLanguage()

chrome.ttsEngine.updateLanguage(
  status: LanguageStatus,
): void

הפונקציה נקראת על ידי מנוע כשמתבצע ניסיון להתקנת שפה, וכשההתקנה של שפה מבוטלת. הקריאה מתבצעת גם בתגובה לבקשת סטטוס מלקוח. כשמתקינים או מסירים קול, המנוע צריך גם לבצע קריאה ל-ttsEngine.updateVoices כדי לרשום את הקול.

פרמטרים

updateVoices()

chrome.ttsEngine.updateVoices(
  voices: TtsVoice[],
): void

הקריאה הזו מתבצעת על ידי מנוע כדי לעדכן את רשימת הקולות שלו. הרשימה הזו מבטלת את כל הקולות שהוגדרו במניפסט של התוסף.

פרמטרים

אירועים

onInstallLanguageRequest

chrome.ttsEngine.onInstallLanguageRequest.addListener(
  callback: function,
)

האירוע הזה מופעל כשלקוח TTS מבקש להתקין שפה חדשה. המנוע אמור לנסות להוריד ולהתקין את השפה, ולקרוא ל-ttsEngine.updateLanguage עם התוצאה. אם הפעולה תתבצע בהצלחה, המנוע צריך גם לבצע קריאה ל-ttsEngine.updateVoices כדי לרשום את הקולות החדשים שזמינים.

פרמטרים

onLanguageStatusRequest

chrome.ttsEngine.onLanguageStatusRequest.addListener(
  callback: function,
)

האירוע מופעל כשלקוח TTS מבקש את סטטוס ההתקנה של שפה.

פרמטרים

onPause

chrome.ttsEngine.onPause.addListener(
  callback: function,
)

אופציונלי: אם מנוע תומך באירוע ההשהיה, הוא צריך להשהות את ההבעה הנוכחית שנאמרת, אם יש כזו, עד שהוא יקבל אירוע המשך או אירוע עצירה. לתשומת ליבכם: אירוע עצירה אמור גם לנקות את המצב מושהה.

פרמטרים

onResume

chrome.ttsEngine.onResume.addListener(
  callback: function,
)

אופציונלי: אם מנוע תומך באירוע ההשהיה, הוא צריך לתמוך גם באירוע ההמשך כדי להמשיך לדבר את ההבעה הנוכחית, אם יש כזו. לתשומת ליבכם: אירוע עצירה אמור גם לנקות את המצב מושהה.

פרמטרים

onSpeak

chrome.ttsEngine.onSpeak.addListener(
  callback: function,
)

הפונקציה הזו נקראת כשהמשתמש מבצע קריאה ל-tts.speak() ואחת מהקולות מהמניפסט של התוסף הזה היא הראשונה שתתאים לאובייקט האפשרויות.

פרמטרים

onSpeakWithAudioStream

chrome.ttsEngine.onSpeakWithAudioStream.addListener(
  callback: function,
)

הפונקציה הזו נקראת כשהמשתמש מבצע קריאה ל-tts.speak() ואחת מהקולות מהמניפסט של התוסף הזה היא הראשונה שתתאים לאובייקט האפשרויות. ההבדל בין ttsEngine.onSpeak לבין ttsEngine.onSpeak הוא ש-Chrome מספק שירותי הפעלת אודיו ומטפל בשליחת אירועי TTS.

פרמטרים

onStop

chrome.ttsEngine.onStop.addListener(
  callback: function,
)

האירוע הזה מופעל כשמתבצעת קריאה ל-tts.stop, ויכול להיות שהתוסף הזה נמצא באמצע דיבור. אם תוסף מקבל קריאה ל-onStop והדיבור כבר הופסק, הוא לא אמור לעשות שום דבר (לא להעלות שגיאה). אם הדיבור נמצא במצב מושהה, הפעולה הזו אמורה לבטל את המצב המושהה.

פרמטרים

onUninstallLanguageRequest

chrome.ttsEngine.onUninstallLanguageRequest.addListener(
  callback: function,
)

האירוע הזה מופעל כשלקוח TTS מציין ששפה מסוימת כבר לא נדרשת.

פרמטרים

אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers‏.‏ Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.

עדכון אחרון: 2025-08-11 (שעון UTC).