Voice recognization in Android
description
Transcript of Voice recognization in Android
Voice Recognization in Voice Recognization in Voice Recognization in Voice Recognization in AndroidAndroidAndroidAndroid
[email protected]@gmail.comwww.twitter.com/roger2yihttps://plus.google.com/
2011-10-20 Roger, UC
Voice RecognizationVoice RecognizationVoice RecognizationVoice Recognization
• 语音识别目前在应用上可以分作两个层次
– 语音识别:将语音识别成文本(Speech To Text)
– 自然语言理解:对语音进行分析,理解用户的实际意图
• 前者主要用于语音输入,而后者主要用于像智能助手这样的辅助软件
2011-10-20 3
Voice AppsVoice AppsVoice AppsVoice Apps
• 在Android,iOS上面的一些比较知名的语音类软件
2011-10-20 Roger, UC
GoogleGoogleGoogleGoogle拼音输入法(拼音输入法(拼音输入法(拼音输入法(AndroidAndroidAndroidAndroid))))
2011-10-20 5
讯飞语音输入法(讯飞语音输入法(讯飞语音输入法(讯飞语音输入法(AndroidAndroidAndroidAndroid))))
2011-10-20 Roger, UC
Nuance T9 FlexNuance T9 FlexNuance T9 FlexNuance T9 Flex输入法(输入法(输入法(输入法(AndroidAndroidAndroidAndroid))))
2011-10-20 Roger, UC
Google Voice SearchGoogle Voice SearchGoogle Voice SearchGoogle Voice Search((((AndroidAndroidAndroidAndroid))))
• 支持简单的自然语言理解,可以用于搜索,拨打电话,发邮件,导航等
• 支持中文的语音识别
• 目前不支持中文的意图识别,中文语音输入只能用于搜索
2011-10-20 Roger, UC
VlingoVlingoVlingoVlingo((((AndroidAndroidAndroidAndroid,,,,iOSiOSiOSiOS))))
• 支持简单的自然语言理解,可以用于搜索,拨打电话,发邮件,导航,调用系统服务等
• 支持中文的意图识别
2011-10-20 Roger, UC
SiriSiriSiriSiri((((iOSiOSiOSiOS))))
• 支持较为复杂的自然语言理解,可以用于搜索,拨打电话,发邮件,导航,调用系统服务等
• 支持陪聊?
• 目前不支持中文语音识别
2011-10-20 Roger, UC
Android Voice APIAndroid Voice APIAndroid Voice APIAndroid Voice API
• Android SDK本身包括了一个简单的语音识别的API接口,提供语音识别功能的应用可以注册自己的服务,而需要语音识别功能的应用可以通过Intent调用这些服务
• 在安装Google Voice Search和Vlingo之后,它们都会注册自己的语音识别服务到系统里面提供给第三方调用,除了Service外,Google Voice Search还会提供一个Activity供直接使用
2011-10-20 Roger, UC
Cont.Cont.Cont.Cont.
• 第三方程序可以使用Activity或者Service来获得语音识别的能力
• 海豚浏览器在检查到安装了Google Voice Search之后会增加使用Google Voice的服务来进行语音输入的功能(用于搜索)
2011-10-20 Roger, UC
private void startVoiceRecognitionActivity() {
//通过Intent传递语音识别的模式,开启语音Intent intent = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
//语言模式和自由形式的语音识别intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
//提示语音开始intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "");
//开始执行我们的Intent、语音识别startActivityForResult(intent,
VOICE_RECOGNITION_REQUEST_CODE);}
2011-10-20 Roger, UC
云端识别云端识别云端识别云端识别
• 语音识别和语言理解大都是在服务器端进行的,本地只是负责把语音数据打包传送给服务器,然后再接收服务器传回的数据
• 第三方应用使用Google Voice或者Vlingo提供的语音识别服务,也是通过它们的服务器进行识别
• 跟iOS已经整合在一起的Siri也是一样,它使用的Nuance的语音识别引擎和WolframAlpha搜索引擎,也是部署在服务器端。
2011-10-20 Roger, UC
本地识别本地识别本地识别本地识别
• Android系统内置了一个Nuance SREC的本地语音识别引擎,但只支持识别特定的指令而不是任意的语音输入,并且这部分的API是私有的,意味不能够安全地使用它
• Android系统自带的语音拨号应用使用了这个库,但是只支持简单的英文指令如“Call”,“Open”,“Redial”等
• Android4.0提供了内置的连续语音输入功能,但是不知道是否是在本地识别,并且是否公开API
2011-10-20 Roger, UC
ReferenceReferenceReferenceReference
• http://developer.android.com/resources/articles/speech-input.html
• http://googlemobile.blogspot.com/2010/08/just-speak-it-introducing-voice-actions.html
• http://dmfs.org/handsfree/?engines
• http://www.vlingo.com/demo/videos
• http://www.nuance.com/
The EndThe EndThe EndThe End
Thank you for your listeningYours Sincerely, Roger