欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android編程之語音識別實現(xiàn)方法

 更新時間:2016年10月24日 09:55:27   作者:pku_android  
這篇文章主要介紹了Android編程語音識別實現(xiàn)方法,結(jié)合實例形式較為詳細的分析了Android語音識別的操作步驟與相關實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Android編程之語音識別實現(xiàn)方法。分享給大家供大家參考,具體如下:

語音識別技術在手機上應用得相當廣泛,人類日常最頻繁的溝通方式是語音,而在手機應用中,大部分是通過硬件手動輸入,目前這依然是主要與手機互動的方式。但是隨著手機軟硬件功能的不斷提升,可以預見在不久的將來,語音交流將是人機交互的主要方式。IPhone手機內(nèi)置的Siri語音助手就是一個很好的例子。而鮮為人知的是其使用的語音識別技術來自于Google。而想而知,作為Google力推的Android自然被植入了最核心的語音識別技術,其還整合了Google的云端技術以更好的實現(xiàn)人機語音互動。

Android中主要通過RecognizerIntent來實現(xiàn)語音識別,它主要包括一些常量來表示語音的模式等,如下表所示:


常量

描述

ACTION_RECOGNIZE_SPEECH

開啟語音活動

ACTION_WEB_SEARCH

開啟網(wǎng)絡語音模式,結(jié)果將以網(wǎng)頁搜索顯示

EXTRA_LANGUAGE

設置語言庫

EXTRA_LANGUAGE_MODEL

語音識別模式

EXTRA_MAX_RESULTS

返回的最大結(jié)果

EXTRA_PROMPT

提示用戶可以開始語音

EXTRA _RESULTS

將字符串返回到一個ArrayList中

LANGUAGE_MODEL-FREE_FORM

在一種語言模式上自由語言

LANGUAGE_MODEL-WEB_SEARCH

使用語言模型在Web上搜索

RESULT_AUDIO_ERROR

返回結(jié)果時,音頻遇到錯誤

RESULT_CLIENT_ERROR

返回結(jié)果時,客戶端遇到錯誤

RESULT_NETWORK_ERROR

返回結(jié)果時,網(wǎng)絡遇到錯誤

RESULT_NO_MATCH

沒有檢測到語音的錯誤

RESULT_SERVER_ERROR

返回結(jié)果時,服務器遇到錯誤


這里我們只需要通過Intent來傳遞一個動作以及一些屬性,然后通過startActivityForResult來開始語音,代碼如下:

Intent intent= new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "開始語音");

當然,如果找不到設置,就會拋出ActivityNotFoundException,所以我們需要捕捉這個異常。在以下的例子中,我們實現(xiàn)了一個簡單的語音識別程序,當我們點擊“點擊使用語音識別”按鈕之后,開始語音,然后在onActivityResult方法中取得結(jié)果并顯示出來,其中如果當前手機沒有連接到互聯(lián)網(wǎng)則會顯示連接問題,運行效果如以下所示:

點擊按鈕后:

如果沒聯(lián)網(wǎng)會出現(xiàn)連接錯誤:

 

向話筒說完“電腦”一詞后:

具體實現(xiàn)的代碼如下:

public class RecognizerIntent_TestActivity extends Activity {
  private static final int VOICE_RECOGNITION_REQUEST_CODE = 1;
  private ListView mList;
  Button mButton;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mButton = (Button) findViewById(R.id.button1);
    mButton.setOnClickListener(new myRecognizerIntentListener());
    mList = (ListView) findViewById(R.id.listView1);
  }
  public class myRecognizerIntentListener implements OnClickListener {
    public void onClick(View v) {
      try {
        // 用Intent來傳遞語音識別的模式,并且開啟語音模式
        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, VOICE_RECOGNITION_REQUEST_CODE);
      } catch (ActivityNotFoundException e) {
        Toast.makeText(RecognizerIntent_TestActivity.this, "找不到語音設備",
            Toast.LENGTH_LONG).show();
      }
    }
  }
  // 語音結(jié)束時的回調(diào)函數(shù)
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE
        && resultCode == RESULT_OK) {
      // 取得語音的字符
      ArrayList<String> results = data
          .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
      // 設置視圖的更新
      mList.setAdapter(new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_1, results));
      String resultsString = "";
      for (int i = 0; i < results.size(); i++) {
        resultsString += results.get(i);
      }
      Toast.makeText(this, resultsString, Toast.LENGTH_LONG).show();
    }
    super.onActivityResult(requestCode, resultCode, data);
  }
}

更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android開發(fā)入門與進階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android操作SQLite數(shù)據(jù)庫技巧總結(jié)》、《Android操作json格式數(shù)據(jù)技巧總結(jié)》、《Android數(shù)據(jù)庫操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android編程開發(fā)之SD卡操作方法匯總》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設計有所幫助。

相關文章

  • Android仿京東首頁畫軸效果

    Android仿京東首頁畫軸效果

    這篇文章主要為大家詳細介紹了Android仿京東首頁畫軸效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Flutter實現(xiàn)旋轉(zhuǎn)掃描效果

    Flutter實現(xiàn)旋轉(zhuǎn)掃描效果

    這篇文章主要介紹了通過Flutter RotationTransition實現(xiàn)雷達旋轉(zhuǎn)掃描的效果,文中的示例代碼講解詳細,感興趣的同學可以動手試一試
    2022-01-01
  • SpringBoot 打包文件名增加編譯時間

    SpringBoot 打包文件名增加編譯時間

    這篇文章主要為大家介紹了SpringBoot 打包編譯時間實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Android?Canva實現(xiàn)漸變進度條

    Android?Canva實現(xiàn)漸變進度條

    這篇文章主要為大家介紹了Android?Canva實現(xiàn)漸變進度條示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Android Studio 打包生成APK文件方法

    Android Studio 打包生成APK文件方法

    Android Studio是谷歌推出一個Android集成開發(fā)工具,基于IntelliJ IDEA。這篇文章主要介紹了Android Studio 打包生成APK文件方法,需要的朋友可以參考下
    2018-07-07
  • Android?studio實現(xiàn)動態(tài)背景頁面

    Android?studio實現(xiàn)動態(tài)背景頁面

    這篇文章主要為大家詳細介紹了Android?studio實現(xiàn)動態(tài)背景頁面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android基于OpenCV實現(xiàn)圖像修復

    Android基于OpenCV實現(xiàn)圖像修復

    實際應用中,圖像常常容易受損,如存在污漬的鏡頭、舊照片的劃痕、人為的涂畫(比如馬賽克),亦或是圖像本身的損壞。修復圖像就成為一個常見的需求了,本文講述Android基于OpenCV實現(xiàn)圖像修復的步驟,有此需求的朋友可以參考下
    2021-06-06
  • 詳解Android的反編譯和代碼混淆

    詳解Android的反編譯和代碼混淆

    本篇文章主要介紹了詳解Android的反編譯和代碼混淆,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • android ScrollView實現(xiàn)下拉放大頭部圖片

    android ScrollView實現(xiàn)下拉放大頭部圖片

    這篇文章主要為大家詳細介紹了android ScrollView實現(xiàn)下拉放大頭部圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • android 為應用程序創(chuàng)建桌面快捷方式技巧分享

    android 為應用程序創(chuàng)建桌面快捷方式技巧分享

    手機裝的軟件過多,找起來很不方便,所以在主頁面有一個快捷方式的話會很不錯的,本文將介紹如何實現(xiàn),需要了解跟多的朋友可以參考下
    2012-12-12

最新評論