編輯:關於Android編程
1.
以下例程功能為:在應用程序中使用intent來調出語言識別界面,錄音並識別後將識別的字串返回給應用程序。注意:使用前需要安裝語音識別程序如語音搜索。
2.
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、這種方式有個回調函數可以返回音頻文件,即可實現邊錄音邊識別。
1.
以下例程功能為:應用程序自身調用語言識別函數,程序以循環方式等待錄音並識別後的字串。
2.
frameworks/base/core/java/android/speech/srec/Recognizer.java中注釋部分
3.
http://download.csdn.net/source/2591401
4. 語音識別庫是嵌入到系統裡的,系統提供的識別庫有限。
5、這個應該不需要聯網吧(未驗證)
1.
以下例程功能為:在應用程序中使用通於訪問service調用語言識別功能,錄音並識別後將識別的字串通過Listener返回給應用程序。注意:使用前需要安裝語音識別服務,如編譯安裝源碼中的development/samples/VoiceRecogitionService。
2.
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、百度語音識別:
有兩種方式:
(1)、調用 語音識別控件
(2)、api 方式
上一章描述了如何使用BaiduASRDigitalDialog進行語音識別,此種方式提供了統一的簡便易用
的交互,如果此種交互無法滿足開發者的需求,開發者可以直接使用語音識別 API 定制自己的語音
交互。
在使用api方式時有個重要的參數
class MyVoiceRecogListener implements VoiceClientStatusChangeListener {
@Override
public void onClientStatusChange(int status, Object obj) {
switch (status) {
case VoiceRecognitionClient.CLIENT_STATUS_START_RECORDING:
break;
case VoiceRecognitionClient.CLIENT_STATUS_SPEECH_START:
//檢測到語音起點
break;
case VoiceRecognitionClient.CLIENT_STATUS_AUDIO_DATA:
//有音頻數據輸出
if (obj != null && obj instanceof byte[]) {
//處理數據
}
break;
case VoiceRecognitionClient.CLIENT_STATUS_SPEECH_END:
//已經檢測到語音終點,等待網絡返回
break;
case VoiceRecognitionClient.CLIENT_STATUS_FINISH:
//語音識別完成
if(currentVoiceType == VOICE_TYPE_SEARCH){
mStatusTextView.setText(R.string.finished);
//obj 是一個ArrayList
}
break;
case VoiceRecognitionClient.CLIENT_STATUS_UPDATE_RESULTS:
//多句模式會有部分結果(一個分句)返回
if(currentVoiceType == VOICE_TYPE_SEARCH){
//obj 是一個ArrayList
}else if(currentVoiceType == VOICE_TYPE_INPUT){
//obj 是一個List>,裡面有多個候選詞
List> result = (List
>) obj;
}
break;
case VoiceRecognitionClient.CLIENT_STATUS_USER_CANCELED:
//通知用戶已取消
break;
default:
break;
}
}
可以上邊拿到音頻數據,可以實現邊識別邊錄音
三、其他:
首先本文要說的兩個前提1.android平台離線語音識別 2.小范圍語音
小范圍語音指的是相對固定的命令。本文的例子大概實現了20條語音命令,超出范圍的無法識別。因此本文中離線語音的使用范圍也有限,對於一些固定的輸入可能有用,比如用語音命令代替打開,播放,重啟這些簡單的固定的命令。
相信大家已經對下拉刷新熟悉得不能再熟悉了,市面上的下拉刷新琳琅滿目,然而有很多在我看來略有缺陷,接下來我將說明一下存在的缺陷問題,然後提供一種思路來解決這一缺陷,廢話不多
Android Activity學習筆記——Activity的啟動和創建 最近學習Android相關知識,感覺僅僅了解Activity幾個生命周期函數基本上沒有任
今天本來想寫一篇關於百度地圖定位SDK的文章的,無奈根據官網提供的例子編寫的程序始終無法運行,所以這個計劃只能落空。那麼今天要與大家分享的是Camera,即照相機。隨著硬
1.Activity簡介Activity是Android一個非常重要的用戶接口(四大組件之一),是可見的,主要是用戶和應用程序之間進行交互的接口。在每個Activity中