2012-11-20 2 views
0

나는 이와 같은 인식기의 의도를 구현했습니다. 나는이 데이터와 함께 할 싶은 것이이Android Voice Regnition에서 번호 가져 오기

if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) 
    { 

     ArrayList<String> matches = data.getStringArrayListExtra(
       RecognizerIntent.EXTRA_RESULTS); 

    } 

같은 수익률

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 

    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Tell me stuff"); 
    startActivityForResult(intent, REQUEST_CODE); 

숫자와 간단한 문법 규칙을 구현합니다. 이

 if(matches.contains("my number is")) 
     { 

      string number = matches.getNextWord(); 

       //Then parse the string into an integer  

     } 

같은 예를 들어 뭔가를 분명히이 코드가 작동하지 않고 Google 검색이 절대적으로 아무것도 굴복하지 않기 때문에 사람이에 대한 해결책이 있는지 궁금하네요. 어떤 도움 주셔서 감사합니다

답변

1

문법이 필요 없습니다.

이 코드에서 내가하는 일을 확인하십시오.

https://github.com/gast-lib/gast-lib/blob/master/app/src/root/gast/playground/speech/food/command/AskForCalories.java

해당 라이브러리 내의 코드는 기본적으로이 방법 호출 가능한 인식 결과의 모든의 모든 말씀을 통해 루프 :

private boolean isNumber(String word) 
    { 
     boolean isNumber = false; 
     try 
     { 
      Integer.parseInt(word); 
      isNumber = true; 
     } catch (NumberFormatException e) 
     { 
      isNumber = false; 
     } 
     return isNumber; 
    } 

당신은 또한 당신의 코드를 할 수 있습니다 다른 단어를 받아 그 "too" "tree" "for"등과 같은 숫자처럼 들린다.