苹果的iPhone 有语音识别用的是Google 的技术,做为Google 力推的Android 自然会将其核心技术往Android 系统里面植入,并结合google 的云端技术将其发扬光大。
所以Google Voice Recognition在Android 的实现就变得极其轻松。
语音识别,借助于云端技术可以识别用户的语音输入,包括语音控制等技术,下面我们将利用Google 提供的Api 实现这一功能。
功能点为:通过用户语音将用户输入的语音识别出来,并打印在列表上。
功能界面如下:
用户通过点击speak按钮显示界面:
用户说完话后,将提交到云端搜索:
在云端搜索完成后,返回打印数据:
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.Android.apis.app;
import com.example.Android.apis.R;
import Android.app.Activity;
import Android.content.Intent;
import Android.content.pm.PackageManager;
import Android.content.pm.ResolveInfo;
import Android.os.Bundle;
import Android.speech.RecognizerIntent;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.ArrayAdapter;
import Android.widget.Button;
import Android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
/**
* Sample code that invokes the speech recognition intent API.
*/
public class VoiceRecognition extends Activity implements OnClickListener {
private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
private ListView mList;
/**
* Called with the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Inflate our UI from its XML layout description.
setContentView(R.layout.voice_recognition);
// Get display items for later interaction
Button speakButton = (Button) findViewById(R.id.btn_speak);
mList = (ListView) findViewById(R.id.list);
// Check to see if a recognition activity is present
PackageManager pm = getPackageManager();
List activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() != 0) {
speakButton.setOnClickListener(this);
} else {
speakButton.setEnabled(false);
speakButton.setText("Recognizer not present");
}
}
/**
* Handle the click on the start recognition button.
*/
public void onClick(View v) {
if (v.getId() == R.id.btn_speak) {
startVoiceRecognitionActivity();
}
}
/**
* Fire an intent to start the speech recognition activity.
*/
private void startVoiceRecognitionActivity() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
}
/**
* Handle the results from the recognition activity.
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
// Fill the list view with the strings the recognizer thought it could have heard
ArrayList matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
mList.setAdapter(new ArrayAdapter(this, Android.R.layout.simple_list_item_1,
matches));
}
super.onActivityResult(requestCode, resultCode, data);
}
}
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-09/43068.htm
所以Google Voice Recognition在Android 的实现就变得极其轻松。
语音识别,借助于云端技术可以识别用户的语音输入,包括语音控制等技术,下面我们将利用Google 提供的Api 实现这一功能。
功能点为:通过用户语音将用户输入的语音识别出来,并打印在列表上。
功能界面如下:
用户通过点击speak按钮显示界面:
用户说完话后,将提交到云端搜索:
在云端搜索完成后,返回打印数据:
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.Android.apis.app;
import com.example.Android.apis.R;
import Android.app.Activity;
import Android.content.Intent;
import Android.content.pm.PackageManager;
import Android.content.pm.ResolveInfo;
import Android.os.Bundle;
import Android.speech.RecognizerIntent;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.ArrayAdapter;
import Android.widget.Button;
import Android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
/**
* Sample code that invokes the speech recognition intent API.
*/
public class VoiceRecognition extends Activity implements OnClickListener {
private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
private ListView mList;
/**
* Called with the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Inflate our UI from its XML layout description.
setContentView(R.layout.voice_recognition);
// Get display items for later interaction
Button speakButton = (Button) findViewById(R.id.btn_speak);
mList = (ListView) findViewById(R.id.list);
// Check to see if a recognition activity is present
PackageManager pm = getPackageManager();
List activities = pm.queryIntentActivities(
new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() != 0) {
speakButton.setOnClickListener(this);
} else {
speakButton.setEnabled(false);
speakButton.setText("Recognizer not present");
}
}
/**
* Handle the click on the start recognition button.
*/
public void onClick(View v) {
if (v.getId() == R.id.btn_speak) {
startVoiceRecognitionActivity();
}
}
/**
* Fire an intent to start the speech recognition activity.
*/
private void startVoiceRecognitionActivity() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo");
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
}
/**
* Handle the results from the recognition activity.
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
// Fill the list view with the strings the recognizer thought it could have heard
ArrayList matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
mList.setAdapter(new ArrayAdapter(this, Android.R.layout.simple_list_item_1,
matches));
}
super.onActivityResult(requestCode, resultCode, data);
}
}
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-09/43068.htm
发表评论
-
Android开发 单例模式导致内存泄露
2012-09-17 15:52 8115存在内存泄露问题的一些代码片段像下面这样: ... -
Android 处理内存泄露的方法
2011-11-01 12:15 1601. 内容 本文档包含如下内容: l 如何确定App ... -
RatingBar 不可点击
2011-11-01 09:32 17268UI: <RatingBar android:id=& ... -
解决ListView拖动时背景黑色的问题
2011-10-31 15:03 1030Android为我们提供了ListView 的多种实现方法,通 ... -
Android 内存优化小结
2011-10-31 08:45 1044根据我个人的开发经验总结了如下几点优化内存的方法: 1、创建 ... -
Android性能优化
2011-10-29 21:00 949● 首先内存方面,可以参考 Android堆内存也可自己定义 ... -
Android Animation学习笔记
2011-10-13 13:22 834关于动画的实现,Android ... -
AndroidManifest.xml文件解析
2011-10-12 08:40 808一、关于AndroidManifest.xml Androi ... -
Android 注册广播两种方式区别
2011-10-11 17:06 1052BroadcastReceiver用于监听被广播的事件 必须 ... -
Android 横竖屏切换 activity变化详解
2011-10-11 16:53 1405生命周期 Android 系统在Activity 生命周期中加 ... -
Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化
2011-10-11 16:50 989生命周期 Android 系统在Activity 生命周期中加 ... -
了解 uri, content provide,包括 data android:host,android:scheme(转)
2011-10-08 11:11 1063了解 uri, content provide,包括 data ... -
Android中TextView内容过长加省略号
2011-09-21 09:52 1361textview中有个内容过长加省略号的属性,即ellipsi ... -
Android 定位慢的解决方法
2011-09-20 17:37 905Android的官方文档给出了推荐的方案: 首先注册自己的 ... -
Android 按钮事件弹出多个对话框
2011-09-20 13:20 3800最近发现,在对按钮添加单击事件监听,在监听事件中弹出一个对话框 ... -
Android 图标旋转
2011-09-19 14:31 3516最近在做地图应用开发,遇到在获取到“我的位置”之后,需要画一个 ...
相关推荐
### Android轻松实现语音识别的完整代码解析 #### 一、简介 在移动应用开发领域,尤其是Android平台上,语音识别功能的应用越来越广泛。它不仅能够提升用户体验,还为开发者提供了丰富的可能性来创造更具交互性的...
本篇将深入探讨如何在Android中实现语音识别,并基于提供的"Android语音识别软件代码"进行详细解析。 首先,我们要了解Android系统内置的`SpeechRecognizer`类,它是Android SDK中的核心组件,用于实现语音识别功能...
根据给定的文件信息,我们可以总结出以下关于“Android轻松实现语音识别”的相关知识点: ### 一、背景介绍 Google的语音识别技术被广泛应用在Android系统中,这得益于Google自身强大的技术支持以及对云端技术的...
在这个"基于 TensorFlow Lite 开发的 Android 端中文语音识别 Demo.zip"中,我们将探讨如何利用 TensorFlow Lite 在移动设备上实现本地化的中文语音识别功能。 首先,让我们了解 TensorFlow Lite。它是 TensorFlow ...
根据提供的文件信息,我们可以深入探讨Android语音识别的相关知识点,包括其基本原理、代码解析以及如何在实际应用中实现语音识别功能。 ### Android语音识别的基本原理 Android系统内置了强大的语音识别功能,...
下面将详细探讨Android语音识别的关键知识点。 1. **语音识别API**: - Google提供的`SpeechRecognizer`类是Android系统内置的语音识别接口,用于处理用户的语音输入并转换为文本。 - `Intent`在语音识别过程中起...
在Android平台上实现离线语音识别是一项技术挑战,但可以通过使用开源工具如CMU Sphinx来达成。CMU Sphinx是一个强大的语音识别引擎,它支持离线模式,特别适合在没有网络连接或者对数据隐私有高要求的场景下使用。...
以下是对“android语音识别代码”这个主题的详细解释。 1. **Android语音识别API**: Android系统内置了Google语音服务,它提供了语音识别接口,可以将用户的语音输入转化为文本。主要涉及到的类有`...
总之,通过这个Android开发集成科大讯飞语音识别+语音合成功能的Demo,开发者不仅能掌握科大讯飞的API使用方法,还能了解到Android应用中第三方服务集成的流程,从而提升自身在语音交互方面的开发能力。
首先,我们需要了解的是,Android系统已经集成了Google的语音识别服务,因此开发者无需额外安装第三方库即可实现语音识别。教程中提到了尝试使用讯飞的语音识别服务,但由于在Unity中调用其mcs.jar包时遇到问题,...
在Android平台上实现语音识别功能,通常...综上所述,“Android语音识别源码”项目应该包含了实现高效、准确语音识别的核心代码和策略,对于学习和理解Android语音识别机制以及如何优化识别体验具有很高的参考价值。
本篇文章将详细探讨如何在Android源码中实现语音识别,让你轻松掌握这一技术。 首先,我们要了解Android系统的语音识别框架。Android系统内置了Google语音服务,它提供了语音识别的接口供开发者使用。这些接口主要...
本教程将深入探讨三种不同的Android语音识别实现方法:通过Intent调用系统服务、通过Service进行后台识别以及自定义识别流程。 1. **通过Intent调用系统服务** Android系统内置了语音识别功能,开发者可以通过...
在Android平台上实现离线语音识别是一项技术挑战,但借助第三方库如SherpaNcnn,我们可以构建高效且本地化的解决方案。本教程将详细介绍如何在Android项目中整合SherpaNcnn,实现离线中文语音识别,并从编译动态库...
本示例“android语音识别demo”是基于百度语音识别SDK开发的,旨在帮助开发者快速理解和集成这一功能。 首先,我们要理解的是百度语音识别SDK。这是一个由百度提供的服务,它提供了丰富的语音识别能力,包括离线...
在这个名为“安卓语音识别文本朗读相关-三个android语音识别例程mystt.rar”的压缩包中,包含了一些用于理解和实践这两种技术的源代码示例。虽然无法一一验证每个示例的可用性,但它们可以作为开发者学习和参考的...