1) 그것은이 콜백 메소드가 결과를 얻기 위해 사용하는 구글 API를,에서 만든 같은 서비스에 음성 인식 기능을 넣어 적절한 방법이다. 지속적으로 실행하려면 서비스가 절전 모드로 전환되는 것을 방지하는 wakelock을 처리해야합니다. 여기에 더 많은 정보가 제공됩니다. Wake locks android service recurring 큰 배터리 단점이 있습니다. CPU가 계속 작동하고 수신되는 사운드 데이터를 연속적으로 계산해야하기 때문입니다. (필터, 임계 값 등으로 줄일 수 있음)
2) 음성 인식은 간단한 작업이 아닙니다. 참조 할 수있는 많은 계산 및 데이터가 필요합니다. 입력 된 오디오가 깨끗하지 않으면 (잡음, 많은 사람의 목소리 등) 올바른 출력을 얻는 것이 더 어렵습니다. 정확도를 높이기 위해 할 수있는 일은 필터 입력 오디오 : 노이즈 억제, 저역 통과 필터 등입니다. 100 % 정확도는 기대할 수 없지만 80-95 %를 달성 할 수 있습니다.
하드 더 많은 인간의 목소리를 필터링하는 것입니다. 그러나 단어의 시작과 끝을 결정하는 적응 임계 값을 가진 간단한 진폭 (오디오 강도 레벨) 알고리즘을 사용할 수 있습니다. 적절한 음성은 전화/장치에 가장 가까운 가장 큰 소리입니다. 따라서 에 따르면 4)은 소리가 가장 크기 때문에 사용자가 마이크 가까이 말할 때 정확도가 더 좋습니다.
3) 센서로 무엇을 의미하는지 알지 못하지만 단순히 단어를 디코딩하는 대신 사람의 목소리를 감지하는 알고리즘이 있습니다. 이 알고리즘은 일부 코드가 된 Speex 프로젝트 문서에서 찾을 수 있어야 음성 활동 감지 (VAD)라고 http://www.speex.org/
음성 인식을 처리 할 수
가장 간단한 방법은 구글 음성 API를 느릅 나무를 사용하는 것입니다 꽤 좋은, 그리고 그것은 언어의 많음을 인식하지만, 필요 인터넷 연결 - 결과를 얻는 데 시간이 걸립니다.
더 빠른 CMU Sphinx이지만 모든 디코딩이 장치에서 이루어지기 때문에 언어 모델이 거의없고 RAM 메모리와 프로세서 계산이 더 필요합니다. 필자의 의견으로는 dicitionary (인식되는 단어)가 명령 (왼쪽, 오른쪽, 뒤로, 멈춤, 시작 등)처럼 작을 때 매우 좋다.
* 음성 * 인식 또는 * 음성 * 인식을 의미합니까? ([태그 : 음성 인식] 발췌 부분을 읽으십시오 : "음성 인식은 말하는 사람의 신원을 나타내며"음성 인식 "을 의미하기 위해 자주 오용됩니다 - 무엇이 말하고 있는지 식별하십시오.) –
다음 번에 하나의 질문을 찾으십시오. 한 번에 한 가지 질문 만하면됩니다. 그 대답을 찾는 데 도움이 될 것입니다. –