Lệnh Giọng nói: Tương lai của iOS tương tác

Lệnh giọng nói cơ bản được dùng lại cách mà người dùng có thể sử dụng ứng dụng iOS, di chuyển bên ngoài giao diện thanh công cụ và đánh dấu đơn giản để tự điều khiển, trực giác. Bằng cách sử dụng các lệnh thanh lọc ngôn ngữ iOS, các nhà phát triển có thể tích hợp các khả năng nói thật với văn bản để tạo ra các ứng dụng dễ truy cập hơn, hiệu quả hơn, và hấp dẫn. Dù cho khả năng điều khiển giọng nói cho thiết lập thiết lập thiết lập phát triển, hoặc sử dụng tính năng hỗ trợ năng hỗ trợ năng hỗ trợ năng sử dụng năng sử dụng năng sử dụng năng hạn chế, phát triển bổ sung ngôn ngữ ủy nhiệm cao nhất, hỗ trợ tính năng phát triển. Bài này sẽ mở rộng hơn. Bài này sẽ phát triển tiến trình kiểm tra tiến trình điều khiển ứng dụng các lệnh, và chọn ứng dụng ứng dụng đầu tiên, và tốt nhất, và sử dụng các tính năng tối ưu tiên.

Hiểu được sự công nhận ngôn ngữ iOS

Bộ lọc tiếng nói iOS, một phần của cơ chế nhận diện ), cho phép ứng dụng chuyển đổi âm thanh trực tiếp sang văn bản. Nó hỗ trợ hơn 60 ngôn ngữ và phương ngữ, với bộ máy nhận diện chạy trên-Device (cho ngôn ngữ) hoặc trên máy phục vụ của Apple. Trên thiết bị nhận diện đặc trưng và hoạt động ngoại tuyến, trong khi nhận dạng máy chủ thường cung cấp độ chính xác cao hơn cho câu phức tạp. Hạng chính [FLRL: FT] [FGRORRS] Trình duyệt [FR/K], quản lý], xử lý nhận dạng [FT] và quản lý [FT] tiến trình nhận dạng âm thanh, và]: [FTTTTTTTT].C].

Khả năng khóa bao gồm:

  • Kết quả có phần thời gian thực (dùng để phát hiện lệnh cấp tiến).
  • Hỗ trợ từ vựng tự chọn qua [FLT: 0] [FFRcogzer' .
  • Hợp nhất với AV HTMLngine cho việc thu và đệm âm thanh.

Điều quan trọng là cần lưu ý rằng hệ thống ADI được thiết kế để các lệnh người dùng và không phải để liên tục, luôn luôn lắng nghe (Apple áp dụng tối đa một phút trên một nhiệm vụ nhận diện). Giới hạn này khuyến khích sự tham gia có chủ tâm và bảo tồn mạng sống của người dùng. Để đọc thêm [FLT: 0] tài liệu văn phạm [FLT: 1) và [FL: 1] phiên bản [FL: 2] WC] WC19 về Cách phát âm [FL:].

Ghi nhận lời nói theo cách của bạn

Việc nhận diện giọng nói cần thiết sự cho phép xử lý cẩn thận và cấu hình âm thanh. Bên dưới là những bước thiết yếu, được mở rộng với các thực hành tốt nhất.

1, chuẩn bị dự án

  • Thêm khả năng trong & bảng chọn của dự án của bạn; khả năng ghi các điểm.
  • Bao gồm NSMicrophoneUsageDescription ] trong (v. g., " Ứng dụng này cần truy cập micro để xử lý lệnh giọng nói").
  • Bao gồm Phím Mở Tiếng NóiNSDescription ) [v. d., ứng dụng này gửi tiếng nói của bạn đến trình phục vụ của Apple để nhận dạng lệnh").

Ghi chú: cả hai phím đều cần thiết ngay cả khi bạn định chỉ sử dụng sự nhận diện trên thiết bị nhận diện — Apple vẫn cần sự chấp thuận của người dùng.

2. Yêu cầu xác nhận

Gọi Trình duyệt giọng nói.requestAuthization đầu ứng dụng (v., trong ). Trong ). Hãy điều khiển mỗi sự cho phép ủy quyền trạng thái duyên dáng:

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. Tạo một bộ nhận diện tiếng nói SF

Ngay lập tức Trình duyệt giọng nói với một địa phương khớp với thính giả đích của bạn. Đối với ngôn ngữ thiết bị mặc định, hãy qua ]:

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

Cấu hình phần mềm và chương trình âm thanh 4.

Thiết lập AVWEngine để ghi lưu dữ liệu. Hãy dùng chế độ .record . Bảo đảm [FLT:] để nhấn mạnh chất lượng lời nói:

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()

Luôn luôn kết nối động cơ âm thanh bắt đầu trong một khối [FLT: 7) trong sản xuất để xử lý Micro không ổn định.

Thi hành mệnh lệnh bằng giọng nói: Từ lời nói đến hành động

Một khi âm thanh đang chảy, bạn tạo một công việc nhận dạng và phân tích kết quả cho lệnh. Chìa khóa là phản ứng lại kết quả một phần để phát hiện lệnh ngay cả trước khi người dùng nói xong.

Tác vụ nhận dạng cơ bản

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
 }
}

Phân tích lệnh cấp cao

Đơn giản làm việc cho từ vựng nhỏ, nhưng để xem xét các bộ lệnh mạnh mẽ:

  • Using NSListicTagger để trích xuất từ khoá và lọc ra tiếng ồn.
  • Đang lập một từ lệnh ) với âm tiết (v. g., "skip", "next", "coming").
  • Đang chờ một ngưỡng tự tin cao hơn ): kiểm tra trước khi diễn.
  • Đang liệt kê một giá trị để ngăn chặn nhiều nguyên nhân gây ra từ cùng một cụm từ.
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
 }
 }
}

Xử lý kết thúc của ngôn ngữ và sự im lặng

Mặc định, nhiệm vụ công nhận kết thúc khi người dùng ngừng nói và tạm dừng. Bạn cũng có thể tự kết thúc công việc bằng hoặc . Đối với một kinh nghiệm lệnh liên tục (v. d., itation, impation, multi- Steps), khởi động lại công việc nhận sau mỗi kết quả. Tuy nhiên, hãy nhớ rằng công việc của Apple là giới hạn trong một thời gian nhất nhiệm vụ; cho phiên chạy dài hơn, công việc chuỗi.

Tính năng cấp cao:

Bắt đầu ở iOS 13, Apple giới thiệu nhận diện giọng nói trên thiết bị chọn (hiện thời là tiếng Anh, Đức, Nhật, Hàn, Trung Quốc, Tây Ban Nha, Tây Ban Nha, và nhiều ngôn ngữ khác). Để hiệu lực khả năng nhận diện trên thiết bị, các tiện ích không có phụ thuộc mạng, giảm độ riêng tư, và tăng cường độ riêng tư của âm thanh:

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

Ghi chú: Tính chính xác về mặt y học có thể thấp hơn mức độ [FLT: 0], đặc biệt đối với thực thể hoặc từ vựng đặc biệt. Đối với ứng dụng có thuật ngữ riêng [FLT] [FL:] [FT] [FL:15], hoặc qua [L] [L] [L] [L: FT] [L] [L] [L] [L] [L] [L] [L] [L] [L] [L] [L]. FT] [L]] [L] [L] [L]] [L]]. F.L.L.L.L.: [L.L.

Một kỹ thuật tiên tiến khác là dùng Trình duyệt giọng nói [FLT: 1] để theo dõi các thay đổi có sẵn (v. d., người dùng thu hồi quyền truy cập, thay đổi trạng thái mạng). Tính năng:

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

Những thực hành tốt nhất để ra lệnh bằng giọng nói

Giao diện giọng nói khác với chạm. Theo hướng dẫn để cung cấp một người dùng bóng loáng.

1. Cung cấp thông tin bổ sung hoàn toàn

  • Hiển thị một chỉ số sóng hình hoặc nhịp khi lắng nghe.
  • Hiển thị đoạn đã nhận (ngay cả một phần) để người dùng biết hệ thống đang hoạt động.
  • Dùng thông tin phản hồi haptic (via UIImpactFedbackgenator ) để nhận dạng lệnh.

2. Giải quyết lỗi nhẹ nhàng

Lỗi thường bao gồm không có truy cập microphone, dịch vụ nhận dạng không sẵn sàng, hoặc chất lượng âm thanh kém. Cảnh báo người dùng với thông điệp có thể hành động (v. d., "Xin nói to hơn" hoặc "Hãy kiểm tra kết nối internet của bạn").

3. Làm báp têm cho những lời buộc tội và môi trường khác nhau

Thử với một nhóm người nói khác nhau. Dùng phát hiện [FLT: 1] [FLT:] tính chất để tránh không khí ghi lại.

4 Quyền riêng tư và sự trong sạch

Rõ ràng giải thích tại sao bạn cần Micro và khả năng phát âm. Không bao giờ ghi âm hoặc tiến trình phát âm mà không cần người dùng có ý định — thiết kế hệ thống nên cần một cách gõ rõ ràng để bắt đầu lệnh giọng nói. Để thêm vào hướng dẫn riêng tư của Apple, xem [FLT: 0] để tìm hiểu [FLT: 0].

5 Gương xấu

Không phải mọi người dùng có thể hoặc muốn sử dụng giọng nói. Luôn luôn cung cấp khả năng truy cập thay thế hay nhập bàn phím. Để truy cập, có thể gọi lệnh giọng nói qua Công cụ Điều khiển chuyển tiếp hay Tiếng nói qua.

Dùng trường hợp và cảm hứng trên thế giới

  • Ứng dụng nạp:) "Đưa tôi về nhà" hay "Chỉ cho trạm xăng gần đó" bằng bản đồ SDKs.
  • Chương trình & DD; Ghi chú: [FLT: 1] "Create a ice" or "Adm" cộng với Core Data hoặc CloudKit.
  • Điều khiển Nhà nước: " Tắt đèn phòng khách" sử dụng HomeKit.
  • Fitness & Workout: "Start 5 phút mát mẻ" hay "Log 10 đẩy mạnh".
  • ) Đáp án giọng nói cho các thẻ flash hoặc câu đố.

Để có thêm ý tưởng, hãy khám phá phần mềm (FLT:0) phần tham khảo về ngôn ngữ ngôn ngữ ) và ) nói với tôi mã mẫu từ Apple.

Kết luận: Hãy cho người dùng sức mạnh bằng giọng nói

Từ việc sử dụng giọng nói iOS để sử dụng giọng nói của mình, giảm bớt sự va chạm, giảm khả năng tiếp cận và thích thú.

Bắt đầu từ nhỏ: Tổng hợp một lệnh duy nhất (“Cứu trợ cho người dùng) hoặc“ Hãy trở lại trong lần cập nhật tiếp theo, rồi mở rộng dựa trên phản hồi của người dùng.