通常情況下,這種集成分兩種,壹種是直接調用SDK為開發者設計好的彈出框,開發者不需要開發識別交互界面;還有壹種是開發者只利用SDK提供的語音識別服務,自己開發壹個屬於自己的交互設計。
本文介紹最簡單直接調起彈出框的方法。
首先,測試機需要安裝如谷歌語音、百度語音、訊飛語音等產品的語音軟件,這時可以在系統設置界面的語言與輸入處找到相關的語音識別功能列表。然後就可以直接調用了。
下面是調用的步驟:
首先:在Activity中實例壹個intent,intent的action設置為RecognizerIntent.ACTION_RECOGNIZE_SPEECH或者RecognizerIntent.ACTION_WEB_SEARCH,關於RecognizerIntent可以查看本博客之前的文章,然後調用壹個帶返回結果的操作
<pre name="code" class="java">@Override
public void onClick(View v) {
Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
//Intent intent=new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
startActivityForResult(intent, 0);
}
然後:在返回結果中取出攜帶字符串RecognizerIntent.EXTRA_RESULTS對應的結果,android語音識別服務統壹將結果以ArrayList<String>形式返回,如下代碼
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ArrayList<String> results = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
Log.i("zpf", results.get(0).toString());
}
另外,需要在配置文件中添加:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />