zoukankan      html  css  js  c++  java
  • Android开发之语音识别

    2013-07-03

    语音识别

    2008年Google语音搜索在iphone平台上线,Android 1.5 将语音识别应用到搜索功能上。

    手动输入是目前主要与手机互动的方式,语音搜索宗旨是最大限度地改善人机交互的便捷性。

    在玩游戏时,通过语音来控制操作,更显得人性化,体验更佳。

    Android 中主要通过RecognizerIntent来实现语音识别。

    RecognizerIntent包括的常量

    ACTION_RECOGNIZE_SPEECH

    ACTION_WEB_SEARCH

    EXTRA_LANGUAGE

    EXTRA_LANGUAGE_MODEL

    EXTRA_MAX_RESULTS

    EXTRA_PROMPT

    EXTRA_RESULTS

    LANGUAGE_MODEL_FREE_FORM

    LANGUAGE_MODEL_WEB_SEARCH

    RESULT_AUDIO_ERROR

    RESULT_CLIENT_ERROR

    RESULT_NETWORK_ERROR

    RESULT_NO_MATCH

    RESULT_SERVER_ERROR

    // 打开语音识别

    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);

    在模拟器上找不到语音设备,会抛出异常ActivityNotFoundException。

    示例:

    点击“开始使用语音识别”按钮后,开始语音输入,然后在onActivityResult方法中取得结果并显示出来

    protect 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);

        StringBuffer sb = new StringBuffer();

        for(int i=0; i<results.size; i++) {

          sb.append(results.get(i));

        }

        Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show();

        super.onActivityResult(requestCode, resultCode, data);

      }

    }

  • 相关阅读:
    2019牛客暑期多校训练营(第三场)B题、H题
    2019牛客暑期多校训练营(第四场)k题、j题
    Manacher算法 & Palindrome
    HDU 3336——Count the string
    判断一个点是否在三角形内
    P1052 过河
    P1353 [USACO08JAN]跑步Running
    hdu 1686 Oulipo
    Cyclic Nacklace HDU
    高精地图技术分析
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3168722.html
Copyright © 2011-2022 走看看