`

Android 语音输入API使用

 
阅读更多

原文链接:http://www.javaarch.net/jiagoushi/782.htm

 

 

Android 语音输入API使用

Android已经支持语音输入的API了,不过不知道中文输入识别效果怎么样。这里给一个怎么使用语音输入的示例

首先在android工程中的页面布局文件中res/layout/main.xml添加一个button和text

	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
		xmlns:tools="http://schemas.android.com/tools"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_above="@+id/textView1"
		android:layout_toLeftOf="@+id/textView1"
		android:gravity="center"
		android:orientation="vertical" >
	 
		<ImageButton
			android:id="@+id/btnSpeak"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"
			android:layout_margin="10dp"
			android:layout_marginRight="10dp"
			android:layout_marginTop="10dp"
			android:contentDescription="@string/speak"
			android:src="@android:drawable/ic_btn_speak_now" />
	 
		<TextView
			android:id="@+id/txtText"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:layout_marginLeft="10dp"
			android:layout_marginRight="10dp"
			android:layout_marginTop="10dp"
			android:textAppearance="?android:attr/textAppearanceLarge" />
	 
	</LinearLayout>
	
active类SpeechToTextDemoActivity.java

	package net.viralpatel.android.speechtotextdemo;
	 
	import java.util.ArrayList;
	 
	import android.app.Activity;
	import android.content.ActivityNotFoundException;
	import android.content.Intent;
	import android.os.Bundle;
	import android.speech.RecognizerIntent;
	import android.view.Menu;
	import android.view.View;
	import android.widget.ImageButton;
	import android.widget.TextView;
	import android.widget.Toast;
	 
	public class MainActivity extends Activity {
	 
		protected static final int RESULT_SPEECH = 1;
	 
		private ImageButton btnSpeak;
		private TextView txtText;
	 
		@Override
		public void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.activity_main);
	 
			txtText = (TextView) findViewById(R.id.txtText);
	 
			btnSpeak = (ImageButton) findViewById(R.id.btnSpeak);
	 
			btnSpeak.setOnClickListener(new View.OnClickListener() {
	 
				@Override
				public void onClick(View v) {
	 
					Intent intent = new Intent(
							RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
	 
					intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
	 
					try {
						startActivityForResult(intent, RESULT_SPEECH);
						txtText.setText("");
					} catch (ActivityNotFoundException a) {
						Toast t = Toast.makeText(getApplicationContext(),
								"Opps! Your device doesn't support Speech to Text",
								Toast.LENGTH_SHORT);
						t.show();
					}
				}
			});
	 
		}
	 
		@Override
		public boolean onCreateOptionsMenu(Menu menu) {
			getMenuInflater().inflate(R.menu.activity_main, menu);
			return true;
		}
	 
		@Override
		protected void onActivityResult(int requestCode, int resultCode, Intent data) {
			super.onActivityResult(requestCode, resultCode, data);
	 
			switch (requestCode) {
			case RESULT_SPEECH: {
				if (resultCode == RESULT_OK && null != data) {
	 
					ArrayList<String> text = data
							.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
	 
					txtText.setText(text.get(0));
				}
				break;
			}
	 
			}
		}
	}
	
这里android.speech是Android语音输入的核心包,android.speech.RecognizerIntent是一个主要的类,这个active会弹出一个语音输入对话框,然后接收语音输入,识别语音内容转为文本,但我们启动语音输入active后,需要通过startActivityForResult()方法接收文本结果。在.putExtra()方法还需要输入RecognizerIntent.EXTRA_LANGUAGE_MODE语言类型,这里是en-US。

我们通过覆盖onActivityResult(int requestCode, int resultCode, Intent data)方法来处理结果数据,通过data获取key为RecognizerIntent.EXTRA_RESULTS来接收文本内容list,然后设置到text框上。

示例代码地址:http://viralpatel-net-tutorials.googlecode.com/files/SpeechToTextDemo.zip

 

 

分享到:
评论
2 楼 ls0609 2017-08-08  
语音实现在线听书
http://blog.csdn.net/ls0609/article/details/71519203
1 楼 wangli61289 2016-11-03  
http://viralpatel-net-tutorials.googlecode.com/files/SpeechToTextDemo.zip
楼主,下载不了,地址不存在

相关推荐

    Android 语音输入小例子

    这个“Android语音输入小例子”很可能是演示如何在应用中集成和使用这一功能的一个示例项目。让我们深入了解一下Android系统中的语音输入功能及其实现。 1. **Android SDK中的语音识别服务** Android系统从1.6版本...

    android实现语音输入源码

    总之,实现Android语音输入涉及到Android系统服务的集成、权限管理、UI交互设计以及语音识别结果的处理等多个方面。理解并掌握这些知识点,可以帮助开发者为用户提供一个高效、流畅的语音交互体验。

    Android 语音输入

    本篇文章将深入探讨Android语音输入的实现原理和开发实践。 首先,Android系统提供了一个名为`SpeechRecognizer`的类,它是实现语音识别的核心组件。这个类允许应用监听用户的语音输入,并将其转换为文本。开发者...

    android 语音识别demo

    本示例项目“android语音识别demo”采用的是科大讯飞(IFlytek)的API,这是一个在中国广泛使用的语音识别服务提供商。下面将详细介绍这个demo的实现原理和关键知识点。 1. **科大讯飞API**:科大讯飞提供了多种...

    云知声集成AndroidStudio版(语音输入方案

    云知声是一家专注于智能语音技术的公司,其提供的集成Android Studio版语音输入方案,为开发者提供了便捷的API和工具,以便将语音识别功能轻松地整合到Android应用中。 首先,我们要理解云知声的语音识别技术是如何...

    android语音识别之科大讯飞语音API的使用

    这篇博客“android语音识别之科大讯飞语音API的使用”详细介绍了如何集成并使用科大讯飞的SDK来实现语音输入和转换为文本的功能。下面我们将深入探讨这个过程。 首先,我们需要了解科大讯飞语音API的基础知识。科大...

    android 仿微信语音聊天demo

    【Android 微信语音聊天Demo】是一个典型的移动应用开发示例,主要展示了如何在Android平台上构建类似微信的语音聊天功能。这个Demo包含了按钮状态切换、语音录制、本地存储、回放和加载等一系列关键操作,是Android...

    Android手机语音录入软件设计和实现

    这部分内容涵盖了录音API的使用,如MediaRecorder类的配置和操作。同时,也讨论了用户界面的设计,包括按钮、文本框等UI元素的布局和交互逻辑。 在系统测试与结论部分,论文进行了详尽的测试,确保软件在各种条件下...

    android 语音识别转文字.zip

    首先,**百度语音识别**是百度公司提供的一个强大的API服务,它可以将用户的语音输入转化为文字,适用于多种场景,如智能助手、在线教育、会议记录等。在Android应用中集成百度语音识别,可以提升用户体验,尤其是...

    android4.1.2 - api 16 源码

    3. **语音输入与搜索**:这一版本加强了语音输入功能,使得用户可以通过语音进行搜索和其他操作,提升了设备的可用性。 4. **多任务管理**:Android 4.1.2提供了更强大的多任务管理,用户可以轻松切换和关闭应用,...

    Android蓝牙语音数据传输

    - **编码语音**: 在Android中,我们可以使用AudioRecord类来录制音频,将其转换为PCM数据。录音的设置参数包括采样率、通道数和位深度。通常,立体声44.1kHz 16位的PCM格式是常见的选择。 - **建立Socket连接**: ...

    android api 14

    7. **语音输入**:ICS支持系统级的语音输入,用户无需物理键盘即可输入文本,提高了交互性。 8. **面部解锁**:API 14添加了面部解锁功能,通过摄像头识别用户脸部来解锁设备,增强了安全性与便利性。 9. **USB...

    android 语音识别

    通过`VoiceRecognitionService`服务和`SpeechRecognizer`类,可以实现语音识别的本地化处理,提供更符合应用风格的语音输入体验。 6. **SpeechRecognizer类**:这是Android提供的一个用于语音识别的关键类,它提供...

    云知声集成AndroidStudio版(语音输入方案)

    云知声的Android语音输入SDK,如文件名"sound_android_voiceInput_sdk_v3.10.49"所示,是专为Android平台设计的语音识别服务。这个版本号(v3.10.49)可能代表了该SDK的迭代优化和更新,包括性能提升和新功能添加。...

    android语音识别计算器-基于讯飞api

    首先,我们需要了解科大讯飞API,它是一个强大的语音识别服务,能将用户的语音输入转化为文字。在Android应用中集成讯飞API,开发者可以借助其SDK,它提供了丰富的语音识别接口,包括实时语音转文字、离线语音识别等...

    android4.0-api14

    - 语音输入全面升级:用户可以在任何文本输入框中使用语音输入,无需专门的按钮触发,极大地提升了输入效率。 - 手写识别:支持手写输入,包括连续手写,适合不习惯虚拟键盘的用户。 5. **相机功能增强**: - ...

    Android 语音转换成文字

    二、Android语音识别的实现方法 1. 使用系统内置服务:Android提供了SpeechRecognizer类,它是一个接口,用于与系统级的语音识别服务交互。开发者可以通过创建SpeechRecognizer对象,设置识别监听器,然后调用start...

    Android语音助手DEMO

    综上所述,创建一个Android语音助手DEMO需要结合Android SDK中的语音服务API,配合第三方库和自定义的对话逻辑,以实现一个完整的交互体验。对于初学者来说,这个DEMO是一个很好的起点,可以帮助他们了解并掌握语音...

    alanguage语音输入

    二、集成语音输入API 在Android应用程序中集成语音输入,开发者需要引入相应的API。这包括使用`SpeechRecognizer`类来创建语音识别器,`RecognitionListener`接口来监听语音识别的结果,以及`Intent`来启动和结束...

Global site tag (gtag.js) - Google Analytics