ראשי תיבות של Voice Commands: The Future of iOS App Interaction

פקודות קוליות מעצבות באופן יסודי כיצד משתמשים מעורבים באפליקציות iOS, נעים מעבר ממשקי הקש-and-Swipe פשוטים לשליטה חופשית, אינטואיטיבית.על ידי מינוף ממשק ה- iOS דיבור זיהוי מחדש, מפתחים יכולים לשלב יכולות דיבור בזמן אמת לטקסט שהופכים את היישומים לנגישים יותר, יעילים ומשלבים.אם מאפשרים ניווט מבוקר קולי למסלול כושר, המאפשר זיהוי ללא ידיים באפליקציות מתקדמות של שימוש ב-APIQIQIQ, או בתכונות הפעלה יעילות מתקדמות של שימוש ב-Regnition Site, יעילות יותר, יעילות ו-APIQualationual Management.

הבנת ה-iOS דיבור Recognition API

(ה-iOS) זיהוי API, חלק ממסגרת ה-iOS:0Speech מסגרת 1FreaLT:1, מאפשר לאפליקציות להמיר אודיו חי או מוקלט לטקסט.הוא תומך ביותר מ-60 שפות ודיאלטים, עם מנוע ההכרה פועל על-ידי או על-ידי שפות נתמכות (עבור שפות תמיכה) או בשרתים של Apple.

יכולות מפתח כוללות:

  • תוצאות חלקית בזמן אמת (שימושיות לגילוי פיקוד מתקדם).
  • (ב) ,התמיכה ב-[[1924]]]], [[1924]]]]]], [[1924]]]]
  • אינטגרציה עם ⁇ 0 AVAudioEngineFLT:1 עבור לכידת אודיו ושחיקה.

חשוב לציין כי ה- API מיועד לפקודות ממוקדות משתמשים ולא לתרחישים רצופים, תמידיים (אפל כופת מקסימום דקה אחת על משימה יחידה הכרה) הגבלה זו מעודדת מעורבות מכוונת ושימור חיי הסוללה.

הגדרת הכרת דיבור באפליקצייתך

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

הכינו את הפרויקט שלכם

  • (ה) ,0) ,SpeechFLT:1 היכולת של הפרויקט שלך , Signing & Capabilities.
  • (ב) ,0) NSMicrophoneUsageDescriptionion: 1 מפתח ב-FLT:1 (למשל, "האפליקציית הזו צריכה גישה מיקרופון לקביעת פקודות קוליות").
  • כולל את המפתח של ההרחבה:0 (להלן: "ה אפליקציה הזו שולחת את הדיבור לשרתי אפל כדי לזהות פקודות").

הערה: שני המפתחות נדרשים גם אם אתה מתכנן להשתמש רק בזיהוי על-ידי ה-Apple עדיין זקוק להסכמה של משתמשים.

2.בקשה

(ב) ,5 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

import Speech

SFSpeechRecognizer.requestAuthorization { authStatus in
 DispatchQueue.main.async {
 switch authStatus {
 case .authorized:
 // Enable voice command UI
 case .denied, .restricted:
 // Explain why speech recognition is unavailable
 case .notDetermined:
 // This should not occur after the request
 @unknown default:
 break
 }
 }
}

3.יצירת אינסטיאנס של SFSpeechRecognizer

(ב) ,0) SFSpeechRecognierphFLT ( 1:1) עם מקומי שמתאים לקהל היעד שלך.

let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))

4.הגדירו את מושב אודיו ומנוע

(ב) ,0) ,[[1924]]]], [[1924]]]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]

let audioEngine = AVAudioEngine()
let inputNode = audioEngine.inputNode

let recordingFormat = inputNode.outputFormat(forBus: 0)
inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer, _) in
 self.request.append(buffer)
}

audioEngine.prepare()
try? audioEngine.start()

תמיד עוטפים מנוע אודיו מתחיל בלוק 7 (FLT 7) בייצור כדי לטפל במיקרופון ללא זמינות.

הוראות קוליות: מנאום לפעולה

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

משימות זיהוי

let request = SFSpeechAudioBufferRecognitionRequest()
request.shouldReportPartialResults = true

let recognitionTask = recognizer?.recognitionTask(with: request) { result, error in
 guard let result = result else {
 // Handle error
 return
 }
 let transcript = result.bestTranscription.formattedString
 // Check for commands
 if transcript.lowercased().contains("next") {
 // Execute action
 }
}

פיקוד מתקדם

(ב) ,ב[[1924]], [[1924]], [[1924]]]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]

  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ,0) יצירת אוצר מילים עליון (FLT:1) עם נרדפות (למשל, "סקיפ", "הבא", "קדימה").
  • (ב) ,0) , חכה לסף אמון גבוה יותר: לבדוק את ה-FLT:10 לפני משחק.
  • (ב) ,0) ,הסבר על מזבח ה' (ב) כדי למנוע מספר גורמים מאותו ביטוי.
func processTranscript(_ transcript: String) {
 let lowercased = transcript.lowercased()
 let commands: [String: () -> Void] = [
 "next": { self.showNextItem() },
 "go back": { self.showPreviousItem() },
 "stop": { self.stopPlayback() }
 ]
 for (command, action) in commands {
 if lowercased.contains(command) {
 action()
 break
 }
 }
}

ידה של סוף-סוף-סוף-סוף-סוף-סוף-שטיפה ודממה

כברירת מחדל, משימת ההכרה מסתיימת כאשר המשתמש מפסיק לדבר וניתן לזהות הפסקה באופן ידני את המשימה על ידי קריאה של:12 או FLT:13 או; עבור ניסיון פיקוד מתמשך (למשל, דיקטציה, פעולות מרובות שלבים), להפעיל מחדש את המשימה ההכרה לאחר כל תוצאה.עם זאת, יש לזכור את אפל - 1 דקות על משימה אחת; עבור משימות ארוכות יותר, הפעלות שרשרת.

תכונות מתקדמות: On-Device Recognition and Custom Vocabularies

החל ב- iOS 13, אפל הציגה הכרה בדיבורים על שפות נבחרות (כיום אנגלית, צרפתית, גרמנית, יפנית, קוריאנית, מנדרינה סינית, ספרדית ועוד) יתרונות אינם כוללים תלות ברשת, עצלות מופחתת ופרטיות משופרת - שום אודיו לא עוזב את המכשיר.

guard let recognizer = SFSpeechRecognizer() else { return }
if recognizer.supportsOnDeviceRecognition {
 request.requiresOnDeviceRecognition = true
}

(ב) ,למידת דיוק (ב) יש מעט נמוך יותר משמות השרת, במיוחד עבור גופים או אוצר מילים יוצא דופן.לאפליקציות עם צנצנת אישית (למשל, תנאים רפואיים, שמות מוצרים), מומלץ להוסיף LT:0 לקוחות רשימת אוצר המילים של LTFLT:1 באמצעות LT:2SFSpeechregnizer'sof: 3LT5:15Fer או על ידי הכשרה (L)

טכניקה מתקדמת נוספת היא שימוש ב-FLT:0 (SFSpeechRecognizerDelegateFilloer:1 כדי לפקח על שינויים בזמינות (למשל, המשתמש מבטל את רשותו, שינויים במעמד הרשת).

class YourViewController: UIViewController, SFSpeechRecognizerDelegate {
 func speechRecognizer(_ speechRecognizer: SFSpeechRecognizer, availabilityDidChange available: Bool) {
 // Disable or enable voice command button based on availability
 }
}

הפרקטיקה הטובה ביותר עבור פיקודי קול בייצור

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

1 לספק פידבק

  • הצג אינדיקטור גלפור או פעוט כאשר מקשיבים.
  • הצגת הטקסט המוכר (אפילו חלקי) כך שמשתמשים יודעים שהמערכת עובדת.
  • (ב) שימוש ב-[[1924]] ב[[1924]]]], ב[[1924]], ב[[1924]], [[1924]]]], [[1924]]

טעות ביד גרייס

שגיאות נפוצות כוללות לא גישה מיקרופון, שירות זיהוי לא זמין, או איכות אודיו ירודה.אזהרת המשתמש עם הודעות ניתנות לפעולה (למשל, "בבקשה לדבר בקול רם יותר" או "לבדוק את הקשר לאינטרנט שלך").

אופטימיזציה עבור מוסכמות וסביבות שונות

(הופנה מהדף [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]

פרטיות ושקיפות

ברור מדוע אתה צריך מיקרופון ודיבור אישור, לעולם אל תרשום או לעבד דיבור ללא כוונת משתמש - עיצוב המערכת צריך צורך בברז מפורש כדי להתחיל פקודות קוליות.עבור יותר על הנחיות הפרטיות של אפל, ראה FLT:0 בירור אישור אישור ההרשאה לסמכות (FLT:1).

5.ליישם את הנפילה

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

מצבי שימוש אמיתיים ו השראה

  • (ב) ,0)Navigation Apps:FLT:1 "Take me home" או "הצג תחנות גז בקרבת מקום" באמצעות מפות SDKs.
  • (ב) ,0) , המוצריביות & הדג; הערה-Taking:03:03:03: "הקדשה הערה חדשה" או "משימה הוסף" משולבת עם נתוני הליבה או CloudKit.
  • (ב) ,0) מפקחי בית חכמים: "הסתובבו אורות בסלון" באמצעות בית קפה.
  • (ב) ⁇ :0 (בשיתוף: ⁇ ): "החליפה של 5 דקות" או "גישור 10".
  • (ב) ויקרא י"א: "בְּהָיָה אֱלֹהִים" (בראשית כ"ד, כ"ד).

(ב) לקבלת רעיונות נוספים, לחקור את ה-FLT:0 (SFSpeechrecognizer API ReferenceFreaLT:1 ו-FLT:2 TalkToMe מדגם CodesFLT:3 מ-Apple.

מסקנה: לחזק את המשתמשים שלך עם קול

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

התחל קטן: לשלב פקודה אחת ("Help" או "לך אחורה") בעדכון הבא שלך, ולאחר מכן להרחיב על בסיס משוב משתמש. כמו זיהוי על-ידי ה-device שיפור ושפות חדשות מתווספות, הפוטנציאל לחוויות iOS מבוקרות קול יגדל רק.