`
wangleyiang
  • 浏览: 221003 次
社区版块
存档分类
最新评论

Android 自带语音识别功能

阅读更多

在Android 1.5 SDK中已经加强了语音识别功能,第三方通过Intent就可以简单的使用这个功能!下面做简要说明!

先看页面布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" android:padding="5dip">

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="语音识别" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="#00000000">
    </ListView>

</LinearLayout>

说明:LinearLayout里面垂直放置了Button和ListView,通过Button的点击事件触发语音识别,然后把结果设置到ListView中。

 

Activity中的代码如下:

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class RecognizerActivity extends Activity implements OnClickListener, OnItemClickListener {
    
	private static final int VOICE_RECOGNITION_REQUEST_CODE = 131422;
	
	private ListView mListView;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mListView = (ListView) findViewById(R.id.listView1);
        mListView.setOnItemClickListener(this);
        
        ((Button) findViewById(R.id.button1)).setOnClickListener(this);
        
    }

	@Override
	public void onClick(View v) {
		
		mListView.setAdapter(null);
		
		try {
			
			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 (Exception e) {
			e.printStackTrace();
			Toast.makeText(this, "不能语音识别", Toast.LENGTH_SHORT).show();
		}
	}
	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		
		if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && data != null) {
			ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
			if (results != null) {
				mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
				Toast.makeText(this, results.toString(), Toast.LENGTH_SHORT).show();
				super.onActivityResult(requestCode, resultCode, data);
			}
		}
		
	}

	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position,
			long id) {
		Toast.makeText(this, parent.getAdapter().getItem(position).toString(), Toast.LENGTH_SHORT).show();
	}
	
}

 

说明:

  • onCreate:获得相关View的引用,并设置对应的事件处理;
  • onClick:清空ListView数据,并启动语音识别,如果系统没有Activity处理请求的Intent,以Toast形式提示;
  • onActivityResult:获得语音识别后的结果并做相关处理;
  • onItemClick:ListView中数据项点击事件处理------显示;

运行效果如图:



 

 

 

 

 

多说一句:当然还有其它方法实现语音识别,但此方法比较简单!:)

 

 

  • 大小: 32.7 KB
  • 大小: 49.3 KB
  • 大小: 52.5 KB
  • 大小: 50.8 KB
  • 大小: 42.2 KB
分享到:
评论

相关推荐

    测试可用的android远程语音识别实例

    1. **Android语音识别API**:Android系统提供了一个内置的`SpeechRecognizer`类,它允许开发者实现基本的语音识别功能。通过调用`startListening()`方法,应用可以启动录音并发送到语音识别服务,然后接收识别结果。...

    语音识别的安卓程序,调用安卓自带的语音识别

    语音识别是一门交叉学科。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。 语音...

    Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率.zip

    在Android平台上实现离线语音识别是一项重要的技术挑战,特别是在需要高效、实时且隐私保护的场景下。本项目通过使用开源的PocketSphinx库,成功地实现了小范围语音的高精度识别,达到99%的识别率。PocketSphinx是...

    android上实现语音识别,基于google的语音识别

    语音识别技术是在Android SDK1.5中才加入的(RecognizerIntent),这里我们简单的分析一下自带的api例子,其实它就是通过一个Intent的Action动作来完成的。主要有以下两种模式: ACTION_RECOGNIZE_SPEECH:一般语音...

    Android项目语音朗读-语音识别-语音.rar

    - 除了Android自带的服务,还可以使用第三方库,如`SpeechRecognitionClient`或`EasyTTS`,它们通常提供更丰富的功能和更好的用户体验。 6. **用户体验优化**: - 设计良好的用户界面,明确指示何时可以讲话,...

    基于Android的语音识别系统的实现.docx

    该模块采用Android SDK自带的语音识别服务,结合Google语音识别API,实现语音输入转化为文本。 4.2 天气查询模块 通过调用第三方天气API,如OpenWeatherMap,获取并解析天气数据,再以语音形式返回给用户。 4.3 ...

    Android语音识别Demo

    在这款Demo中,开发者可以学习如何集成科大讯飞的SDK,快速实现语音识别功能。值得注意的是,该Demo自带了必要的ID,这意味着开发者无需额外注册就能开始使用,但需要注意的是,它可能有限制的使用次数,对于商业...

    google自带的语音识别软件

    - **离线模式**:虽然在没有网络的情况下功能受限,但部分识别功能可以在离线状态下使用。 - **高精度**:谷歌的语音识别技术在行业内享有高精度的声誉,尤其在清晰的语音环境下。 在安装`voice_search` APK时,...

    语音朗读-语音识别Android源代码.zip

    在Android平台上实现语音朗读和语音识别功能,开发者通常会利用Google提供的Android Speech Recognition API以及Text-to-Speech (TTS)服务。以下是对这两个关键知识点的详细解释: **一、Android Speech ...

    语音朗读-语音识别-语音

    在Android Studio中开发一款集语音朗读和语音识别功能的APP是一项综合性的任务,涉及到多个技术领域。首先,我们需要理解语音技术的基本概念,这包括语音合成(TTS,Text-to-Speech)和语音识别(ASR,Automatic ...

    讯飞语音识别android studio最简单的例子

    讯飞语音官方自带demo导入android studio中经常报各种各样的错,上传的资源中往往很多都不能跑.....将资源中的id值改成自己的,把自己下载下来的libs里面的资源替换成自己就可以,或者参考我的项目结构,聪明如你...

    Android实例源码-语音识别&文本朗读类安卓源代码(6例).zip

    Android实例源码-语音识别&文本朗读类安卓源代码(6例) Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率 PocketSphinxAndroidDemo 三个android语音识别例程mystt 语音合成和语音听写,科大讯飞,...

    Android 语音转换成文字

    1. Android Speech Recognition API:这是Android系统自带的语音识别API,适用于简单的应用场景,但识别准确性和功能可能有限。 2. Google Cloud Speech-to-Text:提供高度准确的语音识别,支持实时和离线模式,...

    人工智能-项目实践-计算机视觉-音视频流录制+同时语音识别+同时人脸识别+同时语音合成.zip

    人工智能-项目实践-计算机视觉-音视频流录制+同时语音识别+同时人脸识别+同时语音合成 介绍 这是录制视频+语音识别+人脸识别的demo 软件架构 录制视频用的分为录制音频流和视频流; 利用Android的Camera视频流,...

    android源代码:语音识别与文本朗读

    在Android平台上,语音识别与文本朗读是两个重要的功能,它们极大地增强了用户的交互体验,尤其对于无障碍使用和移动办公场景非常关键。本文将深入探讨这两个技术的实现原理、API使用以及实际开发中的注意事项。 ...

    Android特色开发之传感器和语音识别.doc

    Android 特色开发之传感器和语音识别 Android 是一个面向应用程序开发的丰富平台,它拥有许多具有吸引力的用户界面元素、数据管理和网络应用等优秀的功能。Android 还提供了很多颇具特色的接口。本章我们将分别介绍...

    Flutter插件,可在iOS和Android(Swift / Java)上使用语音识别-Flutter开发

    speech_recognition一个使用语音识别的flutter插件iOS10 + / Android 4.1+基本示例Sytody,语音待办事项应用安装取决于o Speech_recognition一个使用语音识别的flutter插件iOS10 + / Android 4.1+基本示例Sytody,...

    google自带语音

    当用户使用语音识别功能时,数据通常会被匿名处理,并遵循Google的数据隐私政策。用户可以选择是否保存语音历史记录,以便于服务学习和提供更个性化的体验。 总的来说,Google的语音识别技术是Android生态系统中不...

Global site tag (gtag.js) - Google Analytics