1 of 29

Text-To-Speech

and

Speech-To-Text

2 of 29

חלק #1

Text-To-Speech

3 of 29

זוהי מחלקה המאפשרת להמיר טקסט לדיבור.

היא מספקת פעולות שונות לשלוט בדיבור,

כגון הגדרת קצב דיבור, גובה וכדומה.

Text-To-Speech

4 of 29

כדי להשתמש ב-TextToSpeech, צריך:

  1. לאתחל את שמחלקה
  2. לקבוע שפה לדיבור
  3. להפעיל פעולה המשמיע את הטקסט

Text-To-Speech

5 of 29

אתחול

מספיק לאתחל את המנגנון פעם אחת,

אין צורך לאתחל כל פעם מחדש.

חשוב לזכור שאתחול לוקח זמן מסוים:

צריך לדאוג שאתחול מסתיים

לפני

שמשמיעים טקסט

Text-To-Speech

6 of 29

אתחול

כדאי לבצע אתחול באקטיביטי הראשונה ביותר

עד לפני שיהיה בכלל צורך להשתמש

ב-TextToSpeech

אחד מהדרכים המומלצות:

לכתוב מחלקת עזר לאתחול והשמעה

Text-To-Speech

7 of 29

מחלקת עזר לאתחול והשמעה

של TextToSpeech

Text-To-Speech

פעולת אתחול

פעולת השמעה

פעולת שחרור משאבים

8 of 29

מחלקת עזר לאתחול והשמעה

של TextToSpeech

Text-To-Speech

פעולת אתחול

9 of 29

Text-To-Speech

מחלקת עזר לאתחול והשמעה

של TextToSpeech

פעולת השמעה

10 of 29

Text-To-Speech

מחלקת עזר לאתחול והשמעה

של TextToSpeech

פעולת שחרור משאבים

מומלץ לבצע זימון לפעולה זו

באותם מקומות של אפליקציה בה מתבצעת

סגירת האפליקציה

11 of 29

זימון לפעולת אתחול

Text-To-Speech

12 of 29

Text-To-Speech

זימון לפעולת השמעה

13 of 29

Text-To-Speech

זימון לשחרור משאבים

14 of 29

שימוש ממש, אבל ממש לא מומלץ!

(למרות שעובד... לפעמים...)

Text-To-Speech

15 of 29

אז למה לא מומלץ!

כי בצורה זאת מנגנון Text-To-Speech

רץ בזרם הראשי של אפליקציה

והוא עלול "לעצור" ביצוע כל פעילות באפליקציה

עד שלא תסתיים השמעה של כל הטקססט.

במקרה של השמעת לימה או מספר קטן של מילים

תופעה "לעצור הכל עד שאני מדבר"

אולי לא תגרום ל-ANR... אולי...

Text-To-Speech

16 of 29

הכי נכון להפעיל מנגנון Text-To-Speech

דרך service ובתהליך רקע (אסינכרוני)

Text-To-Speech

17 of 29

מחלקה שיורשת מ-Service

Text-To-Speech

18 of 29

יצירת תהליך רקע

וביצוע בו השמעה

(בעזרת זימן פעולה במחלקה TextToSpeechHelper)

Text-To-Speech

19 of 29

יצירת תהליך רקע

וביצוע בו השמעה

(בעזרת זימן פעולה במחלקה TextToSpeechHelper)

Text-To-Speech

אין צורך לבצע אתחול כל פעם,

אבל אפשר...

20 of 29

אתחול במחלקת שירות

Text-To-Speech

21 of 29

חלק #2

Speech-To-Text

22 of 29

קיימת גם אפשרות

"הפוכה":

להשתמש במיקרופון כדי להקליט דיבור

ואז להפוך אותו לטקסט

Speech-To-Text

23 of 29

קודם כל יש הוסיף ל-AndroidManifest

אישור להקלטת אודיו

Speech-To-Text

באקטיביטי מפעילים פעולה

לבקשת אישור סופי מהמשתמש

24 of 29

צריך גם לדאוג להפעיל חיבור לאינטרנט,

כי מדובר בשירות של Google.

מומלץ, כמובן, להשתמש, למשל,

ב-BroadcastReceiver מתאים

כדי לבדוק תקינות החיבור.

Speech-To-Text

25 of 29

משתנה המרכזי הוא

משתנה מסוג SpeechRecognizer:

"מזהה דיבור"

מחלקה ב-Android SDK

המאפשרת לאפליקציות לבצע זיהוי דיבור

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

של המשתמש לפורמט טקסט.

Speech-To-Text

26 of 29

מכינים תכונות להפשלת זיהוי דיבור

Speech-To-Text

27 of 29

בגלל שמדובר בתהליך

"צא מאפליקציה שלי,

לך תשתמש במשהו אחר,

תחזיר לי תוצאה"

מכינים ActivityResultLauncher

Speech-To-Text

המשך בשקופית הבאה

28 of 29

רושמים בו את הפקודות והפעולות

הדרושות לקבלת התוצאה,

הוצאת תוצאה של המרה דיבור לטקסט

ותצוגת הטקסט

Speech-To-Text

29 of 29

בלחיצה על הלחצן

מפעילים את השירות

Speech-To-Text

Speech-To-Text