织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>嵌入式开发>Android>

android语音识别方法一:使用intent调用语音识别程序

落鹤生 发布于 2013-02-28 10:29 点击:次 
以下例程功能为:在应用程序中使用intent来调出语言识别界面,录音并识别后将识别的字串返回给应用程序。注意:使用前需要安装语音识别程序如语音搜索。
TAG:

1.     说明
以下例程功能为:在应用程序中使用intent来调出语言识别界面,录音并识别后将识别的字串返回给应用程序。注意:使用前需要安装语音识别程序如语音搜索。

2.     本例参考自android例程:
development/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.java

3.     可从此处下载可独立运行的代码:
http://download.csdn.net/source/2591401

4.     核心代码及说明

 

  1. package com.android.mystt1; 
  2.  
  3. import android.app.Activity; 
  4. import android.content.Intent; 
  5. import android.content.pm.PackageManager; 
  6. import android.content.pm.ResolveInfo; 
  7. import android.os.Bundle; 
  8. import android.speech.RecognizerIntent; 
  9. import android.view.View; 
  10. import android.view.View.OnClickListener; 
  11. import android.widget.ArrayAdapter; 
  12. import android.widget.Button; 
  13. import android.widget.ListView; 
  14.   
  15. import java.util.ArrayList; 
  16. import java.util.List; 
  17.  
  18. public class MyStt1Activity extends Activity implements OnClickListener { 
  19.        private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234
  20.        private ListView mList;          // 显示识别后字串的list控件 
  21.  
  22.        @Override 
  23.        public void onCreate(Bundle savedInstanceState) { 
  24.                 super.onCreate(savedInstanceState); 
  25.                 setContentView(R.layout.main); 
  26.                 Button speakButton = (Button) findViewById(R.id.btn_speak); // 识别按钮 
  27.                  mList = (ListView) findViewById(R.id.list); 
  28.                 PackageManager pm = getPackageManager(); 
  29.                 List<ResolveInfo> activities = pm.queryIntentActivities( 
  30. new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); //本地识别程序 
  31. //new Intent(RecognizerIntent.ACTION_WEB_SEARCH), 0); // 网络识别程序 
  32.                 if (activities.size() != 0) { 
  33.                       speakButton.setOnClickListener(this); 
  34.                 } else {// 若检测不到语音识别程序在本机安装,测将扭铵置灰 
  35.                          speakButton.setEnabled(false); 
  36.                          speakButton.setText("Recognizer not present"); 
  37.                 } 
  38.        } 
  39.  
  40.        public void onClick(View v) { 
  41.                 if (v.getId() == R.id.btn_speak) { 
  42.                          startMysttActivityActivity(); 
  43.                 } 
  44.        } 
  45.        private void startMysttActivityActivity() {          // 开始识别 
  46.                 Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
  47.                intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
  48.                                    RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
  49.                 intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo"); 
  50.                 startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); 
  51.                 // 调出识别界面 
  52.     } 
  53.        @Override 
  54.     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
  55.                 if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { 
  56. // Fill the list view with the strings the recognizer thought it could have heard 
  57. ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
  58. mList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
  59. matches)); 
  60.                 } 
  61.                 // 语音识别后的回调,将识别的字串在list中显示 
  62.                 super.onActivityResult(requestCode, resultCode, data); 
  63.        } 

(转载请注明出处: http://xy0811.spaces.live.com/) 

(xy0811)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201302/16521.html]
本文出处:live 作者:xy0811 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容