2014-06-20 2 views
4

내 응용 프로그램에 음성 명령 수신기를 추가하고 싶습니다. 미리 정의 된 키워드를 듣고 키워드를 사용하면 일부 방법이 호출됩니다.Android의 음성 명령 키워드 수신기

음성 명령 인식 (활성화 명령)은 Google 음성 서버로 보내기 요청없이 작동해야합니다.

어떻게 Android에서 할 수 있습니까?

몇 가지 유용한 자료를 게시 해 주셔서 감사합니다.

+0

Google 서버로 전송하지 않고? 그런 다음 장치에서 음성 인식을 수행하는 타사 라이브러리를 찾고 있습니다. 라이센스면에서 5 개의 우수한 인물이 존재할 것으로 예상되는데, 세계에서 단 하나 또는 두 개의 회사가 있습니다. –

답변

4

Pocketsphinx를 사용하여이 작업을 수행 할 수 있습니다. 예를 들어 Pocketsphinx android demo을 확인하면 오프라인에서 키워드를 효율적으로 듣고 "oh mighty computer"와 같은 특정 명령에 반응 할 수 있습니다. 리스너

recognizer = SpeechRecognizerSetup.defaultSetup() 
     .setAcousticModel(new File(modelsDir, "hmm/en-us-semi")) 
     .setDictionary(new File(modelsDir, "lm/cmu07a.dic")) 
     .setKeywordThreshold(1e-40f) 
     .getRecognizer(); 

recognizer.addListener(this); 
recognizer.addKeyphraseSearch("keywordSearch", "oh mighty computer"); 
recognizer.startListening("keywordSearch); 

및 정의 : 당신은 최선 키워드 임계 값을 조정할 수 있습니다

@Override 
public void onPartialResult(Hypothesis hypothesis) { 
    if (hypothesis == null) 
      return; 
    String text = hypothesis.getHypstr(); 
    if (text.equals(KEYPHRASE)) { 
     // do something and restart listening 
     recognizer.cancel(); 
     doSomething(); 
     recognizer.startListening("keywordSearch"); 
    } 
} 

당신이 인식을 만들고 단지 키워드 스포팅 검색을 추가하는 작업을 수행하는 코드는 간단하다 탐지/거짓 경보 일치. 이상적인 검색 정확도를 위해서 키워드는 적어도 3 음절, 4 음절 이상이어야합니다.

+1

공식 페이지에서 Android 프로젝트 예제를 다운로드했지만 ADT를 사용하여 빌드했지만 다음 오류가 발생했습니다 : "java.io.FileNotFoundException : sync/models/grammar/digit.gram.md5 오류." 내가 뭘 잘못 했니? – redrom

+0

아마 당신은 개미가 설치되어 있지 않습니다. 프로젝트를 빌드 할 때 사용자 지정 빌드 단계가 실행되는지 확인하십시오. 프로젝트 빌더 목록에 "Asset List Builder"로 있어야합니다. –

+0

공식 페이지에서 설치 설명서를 따르려고했는데 ANT로 빌드하려고하면 다음 메시지가 표시됩니다. 작업 영역/PocketSphinx/build.xml : 55 : sdk.dir가 없습니다. 'android update project'를 사용하여 local.properties를 생성하거나 ANDROID_HOME 환경 변수를 통해 주입해야합니다. – redrom