안드로이드 개발 질문/답변
(글 수 45,052)
커니님의 책을 사서 공부 중인데...
음성 인식 예제를 활용하여 음성 인식 결과를 비교하는 부분을 만들어볼려고하는
if 하고 equals 가 들어가면 자꾸 에러가 나네요.
이 소스가 어디에 위치하던 똑같이요.
물론 음성인식 결과를 안받고 미리 입력 해둔 변수끼리 equals로 비교해도 마찬가지입니다.
3일 내내 고민중인데 해결이 안되네요 ㅠ
고수님들의 답변을 기다립니다 ㅠ
package com.androidhuman.example.VoiceRecognitionExample;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class VoiceRecognitionExample extends Activity {
private Button recogButton;
private TextView recogText;
private TextView Textif;
private static int VOICE_REQ_CODE = 0;
boolean isVoiceRecognitionAvailable(){
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() != 0)
return true;
else
return false;
}
void startVoiceRecognition(){
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault().toString());
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "음성인식");
startActivityForResult(intent, VOICE_REQ_CODE);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
recogText = (TextView)findViewById(R.id.text);
recogButton = (Button)findViewById(R.id.speak_now);
recogButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(isVoiceRecognitionAvailable())
startVoiceRecognition();
else
Toast.makeText(VoiceRecognitionExample.this, "음성인식기가 없습니다.", Toast.LENGTH_LONG).show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == VOICE_REQ_CODE && resultCode == Activity.RESULT_OK){
ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
recogText.setText(results.get(0));
String texthi="안녕";
String textwold= results.get(0);
if(texthi.equals(textwold)){
Textif.setText("비교가능합니다");
}
}
}