一、Android 提供了三种方式:
android语音识别方法一:使用intent调用语音识别程序
1. 说明
以下例程功能为:在应用程序中使用intent来调出语言识别界面,录音并识别后将识别的字串返回给应用程序。注意:使用前需要安装语音识别程序如语音搜索。
2. 本例参考自android例程:
development/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.java
3. 可从此处下载可独立运行的代码:
http://download.csdn.net/source/2591401
4.这种方法需要联网,借助于云端技术可以识别用户的语音输入。
5、核心代码:new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
6、这种方式有个回调函数可以返回音频文件,即可实现边录音边识别。
android语音识别方法二:应用程序自己调用语音识别库
1. 说明
以下例程功能为:应用程序自身调用语言识别函数,程序以循环方式等待录音并识别后的字串。
2. 本例参考自android代码:
frameworks/base/core/java/android/speech/srec/Recognizer.java中注释部分
3. 可从此处下载可独立运行的代码:
http://download.csdn.net/source/2591401
4. 语音识别库是嵌入到系统里的,系统提供的识别库有限。
5、这个应该不需要联网吧(未验证)
语音识别方法三:调用语音Service识别
1. 说明
以下例程功能为:在应用程序中使用通于访问service调用语言识别功能,录音并识别后将识别的字串通过Listener返回给应用程序。注意:使用前需要安装语音识别服务,如编译安装源码中的development/samples/VoiceRecogitionService。
2. 本例参考自android源码
a) 后台服务
参见development/samples/VoiceRecognitionService/*
此处实现了一个模拟的后台服务,它并未实现真的语音识别,而只是一个框架以示例,编译并安装它,即可在设置的语音输入与输出中看到它,它包含了一个设置界面,当连接这个Service时,如果设置了Letters,则直接返回abc,如果设置了Numbers,则直接返回123
你可以自己实现,用于连接android源码自带的识别引擎srec.
b) 前台程序
参见frameworks/base/core/java/android/speech/Recognition*
它与后台Service交互,此段代码实现在应用程序界面中
3. 可从此处下载可独立运行的代码(前台程序):
http://download.csdn.net/source/2591401
二、第三方语音识别平台:
1、、科大讯飞
sdk:使用有ui的sdk需要导入jar包和动态库,调用jar包里面的接口,进行相关功能实现;
讯飞语音+:需要安装讯飞语音+APK,导入讯飞语音+的开发jar包,用户可以自定义界面,目前讯飞语音+包含本地合成功能。
语音+可以支持离线语音合成。离线语音识别的功能,但是收费。
2、百度语音识别: