最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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


常量

描述

ACTION_RECOGNIZE_SPEECH

開(kāi)啟語(yǔ)音活動(dòng)

ACTION_WEB_SEARCH

開(kāi)啟網(wǎng)絡(luò)語(yǔ)音模式,結(jié)果將以網(wǎng)頁(yè)搜索顯示

EXTRA_LANGUAGE

設(shè)置語(yǔ)言庫(kù)

EXTRA_LANGUAGE_MODEL

語(yǔ)音識(shí)別模式

EXTRA_MAX_RESULTS

返回的最大結(jié)果

EXTRA_PROMPT

提示用戶(hù)可以開(kāi)始語(yǔ)音

EXTRA _RESULTS

將字符串返回到一個(gè)ArrayList中

LANGUAGE_MODEL-FREE_FORM

在一種語(yǔ)言模式上自由語(yǔ)言

LANGUAGE_MODEL-WEB_SEARCH

使用語(yǔ)言模型在Web上搜索

RESULT_AUDIO_ERROR

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

RESULT_CLIENT_ERROR

返回結(jié)果時(shí),客戶(hù)端遇到錯(cuò)誤

RESULT_NETWORK_ERROR

返回結(jié)果時(shí),網(wǎng)絡(luò)遇到錯(cuò)誤

RESULT_NO_MATCH

沒(méi)有檢測(cè)到語(yǔ)音的錯(cuò)誤

RESULT_SERVER_ERROR

返回結(jié)果時(shí),服務(wù)器遇到錯(cuò)誤


這里我們只需要通過(guò)Intent來(lái)傳遞一個(gè)動(dòng)作以及一些屬性,然后通過(guò)startActivityForResult來(lái)開(kāi)始語(yǔ)音,代碼如下:

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

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

點(diǎn)擊按鈕后:

如果沒(méi)聯(lián)網(wǎng)會(huì)出現(xiàn)連接錯(cuò)誤:

 

向話筒說(shuō)完“電腦”一詞后:

具體實(shí)現(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來(lái)傳遞語(yǔ)音識(shí)別的模式,并且開(kāi)啟語(yǔ)音模式
        Intent intent = new Intent(
            RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        // 語(yǔ)言模式和自由形式的語(yǔ)音識(shí)別
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        // 提示語(yǔ)言開(kāi)始
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "請(qǐng)開(kāi)始語(yǔ)音");
        // 開(kāi)始語(yǔ)音識(shí)別
        startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
      } catch (ActivityNotFoundException e) {
        Toast.makeText(RecognizerIntent_TestActivity.this, "找不到語(yǔ)音設(shè)備",
            Toast.LENGTH_LONG).show();
      }
    }
  }
  // 語(yǔ)音結(jié)束時(shí)的回調(diào)函數(shù)
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE
        && resultCode == RESULT_OK) {
      // 取得語(yǔ)音的字符
      ArrayList<String> results = data
          .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
      // 設(shè)置視圖的更新
      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);
  }
}

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

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Kotlin協(xié)程低級(jí)api startCoroutine與ContinuationInterceptor

    Kotlin協(xié)程低級(jí)api startCoroutine與ContinuationInterceptor

    這篇文章主要為大家介紹了Kotlin協(xié)程低級(jí)api startCoroutine與ContinuationInterceptor示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Android實(shí)現(xiàn)ViewPager無(wú)限循環(huán)效果(一)

    Android實(shí)現(xiàn)ViewPager無(wú)限循環(huán)效果(一)

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)ViewPager無(wú)限循環(huán)效果的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 21天學(xué)習(xí)android開(kāi)發(fā)教程之SurfaceView

    21天學(xué)習(xí)android開(kāi)發(fā)教程之SurfaceView

    21天學(xué)習(xí)android開(kāi)發(fā)教程之SurfaceView,SurfaceView由于可以直接從內(nèi)存或者DMA等硬件接口取得圖像數(shù)據(jù),因此是個(gè)非常重要的繪圖容器,操作相對(duì)簡(jiǎn)單,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android通過(guò)訪問(wèn)網(wǎng)頁(yè)查看網(wǎng)頁(yè)源碼實(shí)例詳解

    Android通過(guò)訪問(wèn)網(wǎng)頁(yè)查看網(wǎng)頁(yè)源碼實(shí)例詳解

    這篇文章主要介紹了Android通過(guò)訪問(wèn)網(wǎng)頁(yè)查看網(wǎng)頁(yè)源碼的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • android播放視頻時(shí)在立體聲與單聲道之間切換無(wú)變化原因分析及解決

    android播放視頻時(shí)在立體聲與單聲道之間切換無(wú)變化原因分析及解決

    使用第三方視頻播放器,有立體聲與單聲道之間切換,發(fā)現(xiàn)切換后無(wú)作用,原因是由于在HAL層默認(rèn)沒(méi)有處理上層發(fā)的stereo 轉(zhuǎn)mono的命令,具體的解決方法如下
    2013-06-06
  • flutter InkWell實(shí)現(xiàn)水波紋點(diǎn)擊效果

    flutter InkWell實(shí)現(xiàn)水波紋點(diǎn)擊效果

    這篇文章主要為大家詳細(xì)介紹了flutter InkWell實(shí)現(xiàn)水波紋點(diǎn)擊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 最新評(píng)論

    华池县| 郯城县| 焦作市| 铅山县| 绥滨县| 高邮市| 汝城县| 加查县| 开江县| 兴宁市| 淮南市| 忻州市| 布拖县| 慈溪市| 通海县| 聊城市| 琼结县| 共和县| 莱芜市| 酒泉市| 伊宁市| 海安县| 禄丰县| 广水市| 通海县| 彭州市| 华亭县| 佛教| 衡阳县| 宝鸡市| 太仓市| 全椒县| 昔阳县| 漳州市| 临清市| 祁东县| 盐山县| 旅游| 博客| 阿勒泰市| 天气|