안녕하세요.
구글 음성 인식을 이용해서, 글쓰기를 할때 활용하려하거든요.
Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getPackageName());
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "ko-KR");
i.putExtra("android.speech.extra.GET_AUDIO_FORMAT", "audio/AMR");
i.putExtra("android.speech.extra.GET_AUDIO", true);
startActivityForResult(i, VOICE);
위와 같이 해서 GET_AUDIO를 true로하고, AMR파일을 얻어올 수 있게 했습니다.
그리고 Activity Result쪽에서는..
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ArrayList<String> speechList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
String result = speechList.get(0);
Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show();
// 저장
Uri audioUri = data.getData();
Log.i("audioUri", audioUri.toString());
}
일단 RecognizerIntent.EXTRA_RESULTS의 문자열 들 중 가장 유사한 것이 0번이니까 유사한 단어를 그냥 토스트로 보구요.. 그 이후에 이 녹음한 파일을 저장해야하거든요.
일단 data.getData()로 해당 amr파일의 URI값을 얻어와 해당 파일의 주소를 알고 얻어왔습니다. 이 uri를 갖고 음악파일로 저장하려하는데요.
구글링을 통해 얻어온 곳에서는
저 audioURI 밑 부분에
ContentResolver contentResolver = getContentResolver();
try {
InputStream filestream = contentResolver.openInputStream(audioUri);
Log.i("fileStream",filestream.toString());
} catch (Exception e){
}
이런식으로 InputStream으로 받던데요. InputStream으로 받는 이유가 뭔가요???
아직 파일 저장이 익숙치가 않아서 ㅠㅜ
혹시 아시면 답변 부탁드립니다 (__)