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).
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.") –
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. –