您好,登錄后才能下訂單哦!
本篇內容介紹了“android語音輸入怎么實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
語音輸入集成的是科大訊飛的SDK,簡單的實現了語音轉換為文字的過程,當然科大訊飛還提供了很多接口用來實現更加復雜的語音識別系統。
布局文件 :
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="0dip" > <EditText android:id="@+id/txt_result" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="20sp" android:paddingBottom="40dip" android:gravity="top|left" android:editable="false" /> </RelativeLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/bt_search" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:text="開始說話" > </Button> </LinearLayout> </LinearLayout>
mainActivity 注釋很詳細,不再贅述,不明白的可以留言一起學習。
package com.test.demo; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import com.iflytek.speech.RecognizerResult; import com.iflytek.speech.SpeechConfig.RATE; import com.iflytek.speech.SpeechError; import com.iflytek.ui.RecognizerDialog; import com.iflytek.ui.RecognizerDialogListener; public class HelloDemoActivity extends Activity implements OnClickListener { protected static final String TAG = "ThirdActivity"; private EditText txt_result; private RecognizerDialog rd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.demo); findView(); //RecognizerDialog(Context context, String params); "appid=1234567,usr=test,pwd=12345" usr、pwd不是必選的 //創建語音識別dailog對象,appid到訊飛就注冊獲取 rd = new RecognizerDialog(this ,"appid=此處填你申請到的ID"); } private void findView() { txt_result = (EditText) findViewById(R.id.txt_result); findViewById(R.id.bt_search).setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_search: showReconigizerDialog(); break; default: break; } } private void showReconigizerDialog() { //setEngine(String engine,String params,String grammar); /** * 識別引擎選擇,目前支持以下五種 “sms”:普通文本轉寫 “poi”:地名搜索 “vsearch”:熱詞搜索 “vsearch”:熱詞搜索 “video”:視頻音樂搜索 “asr”:命令詞識別 params 引擎參數配置列表 附加參數列表,每項中間以逗號分隔,如在地圖搜索時可指定搜索區域:“area=安徽省合肥市”,無附加參數傳null */ rd.setEngine("sms", null, null); //設置采樣頻率,默認是16k,android手機一般只支持8k、16k.為了更好的識別,直接弄成16k即可。 rd.setSampleRate(RATE.rate16k); final StringBuilder sb = new StringBuilder(); Log.i(TAG, "識別準備開始............."); //設置識別后的回調結果 rd.setListener(new RecognizerDialogListener() { @Override public void onResults(ArrayList<RecognizerResult> result, boolean isLast) { for (RecognizerResult recognizerResult : result) { sb.append(recognizerResult.text); Log.i(TAG, "識別一條結果為::"+recognizerResult.text); } } @Override public void onEnd(SpeechError error) { Log.i(TAG, "識別完成............."); txt_result.setText(sb.toString()); Log.i(TAG, "識別完成:"+txt_result.getText().toString()); } }); txt_result.setText(""); //先設置為空,等識別完成后設置內容 rd.show(); } }
“android語音輸入怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。