
Click to Talk, בגודל 15 וב-All Caps מבוטל. הלחצן ממוקם בתחתית האמצע, ומעליו TextView שיציג את הטקסט שזוהה.RecognizerIntent.ACTION_RECOGNIZE_SPEECH, עם RecognizerIntent.EXTRA_LANGUAGE_MODEL בערך Free Form לדיבור חופשי. לזיהוי ביטויי חיפוש באינטרנט אפשר לבחור מודל Web Search.startActivityForResult, ואת ה-request code שומרים כקבוע בקוד.onActivityResult בודקים שה-request code הנכון ושהתוצאה OK, ואז לוקחים את הפריט הראשון מתוך RecognizerIntent.EXTRA_RESULTS.הטקסט המלא של הדקות הראשונות בהרצאה «Speech Recognizer - Wear App» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שהצלחנו לבנות אפליקציה שרצה על שעון והרמנו אמולטור והרצנו את האפליקציה על האמולטור בואו נבנה אפליקציה שמבצעת איזושהי פעולה קצת יותר ממשית ומה שאנחנו הולכים לבנות זה אפליקציה שמכילה speech recognition ומסוגלת לשמוע את מה שהיוזר אומר ולתרגם לו את זה לטקסט ולאחר
מכן נוכל לעשות עם הטקסט מה שאנחנו רוצים. אז בואו קודם כל נעצב את הממשק משתמש שלנו, אנחנו נמצאים ב-Round Activity Main, ב-Layout של ה-Round Watch, נוסיף כאן איזשהו לחצן, Wrap Content, נגדיר שאנחנו ב-Text Click to Talk ויש לנו Text Size, בואו ניתן לו 15 ובואו נגדיר לו
טקסט אול קאפס פולס ואנחנו רוצים לשים אותו פחות או יותר באמצע למטה זה יהיה הליין פרנט בוטום וסנטר הוריזונטל אנחנו רוצים את הטקסט הזה גם כן אבל בואו נעלה אותו טיפה למעלה נוריד את הסנטר ורטיקל וניתן לו איזה מרג'ין טופ נניח 40 כך שהוא יוכל להתחיל לכתוב את הטקסט שלנו כאן בואו אפילו ניקח יותר 60. ניפטר מהטקסט הזה או שפשוט נגדיר אותו כ-Tools ואז הוא יופיע לנו כאן אבל הוא לא יופיע
לנו בריצה ונעלה מרג'ין בוטום באיזה 30 את הלחצן קליק טו טולק ואנחנו אנחנו עכשיו יכולים להיכנס ל-onclick-button-click-talk-onclick. בואו ניכנס לאירוע שלו, ופה אנחנו רוצים לכתוב את הקטע קוד שמצליח להאזין למשתמש.
אז איך אנחנו עושים את זה? אז למעשה אנחנו צריכים להשתמש ב-implicit intent, יש במערכת האנדרואיד implicit intent עבור speech recognition.
אז בואו נבנה פה Intent שווה New Intent וניתן לו RecognizerIntent.ActionRecognizeSpeech זה בעצם הקבוע של האקשן עבור ה-ImplicitIntent.
אנחנו צריכים להגדיר לו עכשיו IntentPutExtra ואנחנו צריכים לתת קבוע שנקרא recognizer intent.extra language model וזה בעצם איזה language המודל אנחנו רוצים שהמערכת תשתמש איתו.
כאשר אם אנחנו רוצים שה-recognizer יקשיב ובעצם יזהה דיבור חופשי, זה נקרא רקוגנייזר אינטנט נקודה language model freeform כאשר אם אנחנו רוצים שהוא יזהה יותר ביטויים של חיפוש באינטרנט זה לדוגמה יכול להיות websearch אז בואו ניקח freeform כרגע ויש לנו את ההגדרה של האינטנט עכשיו אנחנו רוצים to start
activity for result כי אנחנו נקבל בחזרה מה implicit intent הזה את הטקסט שפשוט היוזר דיבר intent והפרמטר השני כאמור אמור להיות ה-request code אז בואו ניצור כאן למעלה private static פיינל אינטג'ר ריקווסט קוד פיצ' רקוגנייזר ניתן לו נניח אחד ונשלח אותו גם כן בכדי לוודא באמת שאנחנו מקבלים את התוצאה מהבקשה הזאת.
הדבר הבא שאנחנו רוצים לעשות זה לדרוס את onActivityResult ולקבל את התשובה. אז קודם כל בואו נבדוק שה-request code שלנו זה מה שהגדרנו למעלה, request code speech recognizer.
והדבר הבא שאנחנו רוצים לבדוק זה שה-result code שווה ל-result OK, שהכל היה בסדר ולא היה איזה ביטול מסוים שהתרחש באמצע.
אם הכל בסדר, אנחנו רוצים לקבל את הטקסט. זה בעצם מגיע על ידי הדאטה שקיבלנו,