2012-03-03 6 views
0

사용자가 명령을 받아 편집 텍스트 (또는 다른 컨테이너)에 표시하는 앱을 만들고 싶습니다. Google 음성 인식을 사용하고 있지만 엔진에서 들려주는 문장이 여러 개 표시됩니다 .. Edittext에 목록을 표시하지 않고 모든 옵션에서 올바른 것을 얻고 싶습니다.Android 음성 인식 앱

그리고 가능한 경우 ' 계속적인 문장으로 그렇게하고 싶습니다. (안녕 친구. 회의에 참석하십시오. 늦었습니다.) 이걸 도와주세요. 사전에

감사합니다 :)

답변

2

이 코드는 "말"버튼까지 유선 할 수 있으며 말했다 무엇에 가장 적합한 단일 문자열을 받게됩니다.

는 음성 인식 활동을 시작하려면 :

private static final int VOICE_RECOGNITION_REQUEST_CODE = 1; 

private void startVoiceRecognitionActivity() { 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH); 
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Speak Now"); 
    startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); 
} 

는 결과를 받으려면 :

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { 
     ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     if (matches != null && matches.size() > 0) { 
      String spokenText = matches.get(0); 
     } 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 
+0

당신이 나를 도와 드릴까요 .. 내 코드에 문제가 있습니다 무엇. 장치에서 실행할 때 충돌이 발생합니다. 나는 보호 무효 onActivityResult를 (INT requestCode가, INT의 resultCode, 의도 데이터) { \t \t 경우 (requestCode가 == request_code &&의 resultCode == RESULT_OK) \t \t { \t \t \t ... 문제는이 코드에 생각 ArrayList 는 = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS)와 일치합니다. \t \t \t 문자열 옵션 = null; \t \t \t 경우 (일치 = NULL && matches.size()> 0!) \t \t \t \t { \t \t \t = matches.get 옵션 (0); \t \t \t} \t \t \t et.setText (option); \t \t \t \t} \t \t super.onActivityResult (requestCode가,의 resultCode 데이터); \t} – Shah

+0

크래시가 발생하면 LogCat을보고 예외가 무엇인지 확인하고 충돌 원인을 식별해야합니다. –

+0

선생님, 전화로 실행 중입니다. LogCat을 보는 방법을 모르겠습니다. – Shah