Android语音识别技术简介
由于项目需要,这周要做个语音识别相关的模块,虽然需求不是很多,但语音识别之前没有涉及过,只能一点一点看文档,找资料,今天还仿照ApiDemo中的实例写了个Demo。
Android语音识别方面的技术点,初步整理了一下:
1. 语音识别一般使用三种方式
1) 方式一:调用语音识别库的程序做成带界面的程序,供其它程序使用intent调用
2) 方法二:应用程序自己调用语音识别库
3) 方式三:调用语音识别库的程序做成service,供其它应用使用
2. Android对语音识别的内部支持
1) Framework层代码
位于 frameworks/base/core/java/android/speech/*
语音的android框架支持(合语音合成和语音识别)
RecognitionListener.java 用于支持对方式三的调用
Recognizer*Intent 用于支持对方式一的调用
RecognitionService.java 用于支持对方式三的调用
SpeechRecognizer.java 用于支持对方式三的调用
srec目录
语音识别,它用于方式一二三真正功能的实现
(a) .MicrophoneInputStream.java 实现录音
(b). Recognizer.java 实现识别的接口
tts目录
语音合成
2) 语音识别的底层实现
代码位于external/srec/*
3. 语音引擎:
1) srec android自带的语音识别工具
2) simon 网上说该识别工具可移植到android上
3) pico android自带的语音合成工具
4. 可参考代码
语音识别相关的参考代码在Android源码中还是有不少的
1) 语音拨号器应用的实现,源码在
packages/apps/VoiceDialer/
2) development/samples/TtsEngine
development/samples/VoiceRecognitionService
development/samples/VoiceMailProviderDemo
development/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.java
说明:对于要调用调用语音识别库的方式,一定要安装google voice action或者google voice search应用,而且要联网才能使用;因为这个是基于google云端技术来识别用户的语音输入。