zoukankan      html  css  js  c++  java
  • Android语音识别--->>RecongnizerIntent实现

    首先,咱得先说下注意点:

        Android中主要通过RecognizerIntent来实现语音识别,其实代码比较简单,但是如果找不到设置,就会抛出异常 ActivityNotFoundException,所以我们需要捕捉这个异常。而且语音识别在模拟器上是无法测试的,因为语音识别是访问google 云端数据,所以如果手机的网络没有开启,就无法实现识别声音的!一定要开启手机的网络,如果手机不存在语音识别功能的话,也是无法启用识别,我的话用的是那个科大的某某飞的语音软件,一运行就可以自动调用这个软件进行语音识别。

     RecognizerIntent的一些Summary(在Android API中也可以查到):

    下面可以查下Android的这个类RecognizerIntent的用法,然后我们开始使用Intent传递消息

     1  try{  
     2                 //通过Intent传递语音识别的模式,开启语音  
     3                 Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
     4                 //语言模式和自由模式的语音识别  
     5                 intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);  
     6                 //提示语音开始  
     7                 intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音");  
     8                 //开始语音识别  
     9                 startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);  
    10                 }catch (Exception e) {  
    11                     // TODO: handle exception  
    12                     e.printStackTrace();  
    13                     Toast.makeText(getApplicationContext(), "找不到语音设备", 1).show();  
    14                 }  

    作为一个使用的模块使用。

    • 主要是先使用
    RecognizerIntent.ACTION_RECOGNIZE_SPEECH  开启语音
    • 然后在可以切换语音模式和自由模式
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    • 然后开始语音识别:
    startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);  
    主要的过程就是如上所示了,自然还需要回调用户语音的数据。
     1 @Override  
     2     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
     3         // TODO Auto-generated method stub  
     4         //回调获取从google得到的数据   
     5         if(requestCode==VOICE_RECOGNITION_REQUEST_CODE && resultCode==RESULT_OK){  
     6             //获得语音输入的字符  
     7             ArrayList<String> results=data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);  
     8               //获得需要的字符
     9             String resultString="";  
    10             for(int i=0;i<results.size();i++){  
    11                 resultString+=results.get(i);  
    12             }  
    13             Toast.makeText(this, resultString, 1).show();  
    14         }  
    15         super.onActivityResult(requestCode, resultCode, data);  
    16     }  

    这样的结合就可以实现语音识别了。

     
     


    我就是我,是不一样的烟火...
  • 相关阅读:
    计算机重要算法
    文明能压碎,情怀不衰,无论枯干山水
    【首先膜拜大湿】poj-2386-Lake Counting-DFS模板题
    图论待做题
    HUD-1142
    课后作业第二篇
    课后作业第一篇
    linux安装tomcat(转载:http://blog.csdn.net/zhuihunmiling/article/details/8977387)
    log4j 日志的初始化
    用Wget进行下载
  • 原文地址:https://www.cnblogs.com/Mr-stockings/p/8252786.html
Copyright © 2011-2022 走看看