2012-12-24 39 views
6

[có thể trùng lặp] Nhưng tôi không tìm thấy câu trả lời cho câu hỏi của mình bên dưới.Android: Nhận dạng giọng nói

Tôi đã làm một số nghiên cứu về nhận dạng giọng nói cho hai ngày qua và tôi đã không nhận được câu trả lời cho câu hỏi của tôi:

  1. Có thể chạy nhận dạng giọng nói như một dịch vụ? Tôi muốn thực hiện một cái gì đó như thế này: Tôi cần phải gọi một số mặc dù điện thoại của tôi thông qua nhận dạng giọng nói đang ở chế độ ngủ.
  2. Nhận dạng giọng nói có hoạt động đúng cách để phát hiện các từ khi tôi đang ở trên xe lửa, xe buýt, v.v. không?
  3. Có cảm biến nào để phát hiện giọng nói ngoài việc nhận dạng giọng nói không?
  4. Để nhận dạng giọng nói hoạt động bình thường, người dùng có cần nói chuyện gần hơn với điện thoại không?
+7

Bạn có nghĩa là * nhận dạng giọng nói * hoặc nhận dạng * giọng nói * không? (Đọc phần trích dẫn của [nhận dạng giọng nói]: "Nhận dạng giọng nói nghĩa là nhận diện người nói và thường bị áp dụng sai nghĩa là" Nhận dạng giọng nói "- nhận diện những gì đang được nói.") –

+2

Lần sau hãy thử tìm kiếm một câu hỏi tại một thời điểm và đặt một câu hỏi tại một thời điểm. Điều đó sẽ giúp bạn tìm ra câu trả lời. –

Trả lời

10

1) Đó là cách tiếp cận đúng đắn để đưa nhận dạng giọng nói vào một dịch vụ, như nó được thực hiện trong Google api, nơi các phương thức callback được sử dụng để có được kết quả. Để làm cho nó chạy liên tục, dịch vụ phải đối phó với wakelock mà sẽ tránh rơi vào chế độ ngủ. Một số thông tin được cung cấp ở đây Wake locks android service recurring Nó có một bất lợi lớn - sử dụng pin cao, gây ra bởi công việc liên tục của CPU và tính toán liên tục của dữ liệu âm thanh đến. (Có thể được giảm với các bộ lọc, ngưỡng, vv)

2) Nhận dạng giọng nói không phải là một nhiệm vụ đơn giản. Nó mong muốn số lượng lớn tính toán và dữ liệu để tham chiếu đến. Nếu âm thanh đầu vào không rõ ràng (tiếng ồn, nhiều tiếng nói của con người, vv), sẽ khó có được đầu ra phù hợp. Những gì có thể được thực hiện để làm cho độ chính xác tốt hơn là, lọc đầu vào âm thanh: tiếng ồn suppresion, thấp vượt qua bộ lọc vv Bạn không thể mong đợi chính xác 100%, nhưng 80-95% có thể đạt được.

Khó hơn là lọc nhiều tiếng nói của con người. Nhưng có thể sử dụng một số biên độ đơn giản (cường độ âm thanh) các thuật toán với ngưỡng thích nghi quyết định khi từ bắt đầu và kết thúc. Ý tưởng là giọng nói thích hợp là lớn nhất = gần nhất với điện thoại/thiết bị. Vì vậy, theo 4) độ chính xác tốt hơn khi người dùng nói gần với micrô, vì đó là giọng nói to nhất.

3) Tôi không biết ý bạn là gì bởi cảm biến, nhưng có các thuật toán đơn giản phát hiện giọng nói của con người thay vì giải mã từ. Các thuật toán này được gọi là Phát hiện hoạt động bằng giọng nói (VAD) Một số mã phải được tìm thấy trong tài liệu dự án Speex http://www.speex.org/

Phương pháp đơn giản nhất để xử lý nhận dạng giọng nói là sử dụng Google Speech rất tốt và nhận ra nhiều ngôn ngữ nhưng cần Kết nối Internet - và phải mất một lúc để có được kết quả.
Tốc độ nhanh hơn là CMU Sphinx nhưng nó có ít kiểu ngôn ngữ, cần thêm bộ nhớ RAM và tính toán proccesor vì mọi giải mã được thực hiện trên thiết bị. Trong suy nghĩ của tôi nó rất tốt khi dicitionary (từ được nhận ra) là nhỏ như lệnh (trái, phải, lạc hậu, dừng lại, bắt đầu, vv).

+0

Cảm ơn bạn đã nhập. Tôi muốn phát triển một ứng dụng sẽ tự động gọi số khẩn cấp khi tôi nói Trợ giúp cho dù tôi ở đâu. Tôi có thể ở trong xe buýt, chợ hoặc ở đâu đó.Tôi đã không nhận được câu trả lời cho câu hỏi đầu tiên của tôi, xin vui lòng cho cô biết, nếu bạn có bất kỳ đầu vào? –

+0

Tôi đã cập nhật câu trả lời của tôi, vì vậy nó bao gồm câu hỏi đầu tiên của bạn là tốt, trong trường hợp của bạn Sphinx sẽ rất nhanh, và rất aqqurate vì chỉ có một từ cần thiết để được công nhận. "HELP" – MP23

+0

Một lần nữa cảm ơn bạn đã nhập. Về câu hỏi và câu trả lời thứ 4, như bạn đã đề cập, chúng tôi cần nói gần micrô để có độ chính xác cao hơn. Giả sử tôi đang trên xe buýt và tôi cần một số trợ giúp nơi nó quá đông đúc và quá ồn ào, nó có thể không giúp nhận ra từ đúng? –

Các vấn đề liên quan