今天看到了一本書上一個簡單的語音辨識代碼,現在抄過來,算是做個簡單的筆記吧,以防突然需要尋找的時候找不到資料。也希望需要這方面學習的朋友能關注一下。代碼是從書上看的,至於書的名字,就不寫了,這樣就沒有做廣告的嫌疑了!
別的不說了,代碼如下:
代碼
try {
Intent intent = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "開啟語音");
startActivityForResult(intent, SPEECHREQUEST);
} catch (Exception e) {
Toast.makeText(SpeechrecognitionTest.this, e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
如果要對返回的代碼進行處理,則需要重寫寫處理函數,代碼如下:
代碼
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
// requestCode 自己傳的代碼
// resultCode 返回的結果狀態
// TODO Auto-generated method stub
if (SPEECHREQUEST == requestCode && resultCode == RESULT_OK) {
Toast.makeText(SpeechrecognitionTest.this, "返回結果正常",
Toast.LENGTH_LONG).show();
ArrayList<String> result = intent.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); //擷取語言的字元
//如果是頁面的話,可以更新到頁面 每個字母一列
// ListView lv = new ListView(null);
//
// lv.setAdapter(new ArrayAdapter<String>(this, R.layout.main, result));
String resultString="";
//組成字串
for (int i=0;i<result.size();i++)
{
resultString +=result.get(i);
}
}
super.onActivityResult(requestCode, resultCode, intent);
}
通過以上方式就可以把通過語音說的顯示出來了!當然如果你要做別的方面的處理與識別也是可以的,具體的可以查看相關資料,這裡只是做一個簡單的入門介紹。