我想實現一個按鈕,點擊後會激活android的語音轉換器,就像android鍵盤提供的那樣。具體來說,我希望有一個按鈕能夠讓應用程序實時記錄用戶所說的內容,並在editText框中逐字記錄(實時)。這樣做最好的方法是什麼?如何用按鈕激活語音到文本?
感謝
我想實現一個按鈕,點擊後會激活android的語音轉換器,就像android鍵盤提供的那樣。具體來說,我希望有一個按鈕能夠讓應用程序實時記錄用戶所說的內容,並在editText框中逐字記錄(實時)。這樣做最好的方法是什麼?如何用按鈕激活語音到文本?
感謝
如果您尚未檢查Voice Recognition
樣品在Api demos
,你應該繼續進行檢查。它應該給你一個良好的開端。演示文稿可在/android-sdk/samples/...
文件夾中找到。如果你還沒有安裝它們,這裏是你如何how to install android api demo app into my phone。
有如下(任何其他許多人)的教程,以及這將幫助你開始:
1)Android Voice Recognition Tutorial
2)Android: Speech To Text using API
下面可能是一個很好的閱讀,以及:
Add Text-To-Speech and Speech Recognition to Your Android Applications和Using the Android Speech Recognition APIs。
希望這會有所幫助。
在您的應用中,您可以使用ACTION_RECOGNIZE_SPEECH
操作調用startActivityForResult()
。這將啓動語音識別活動,然後您可以在onActivityResult()
中處理結果。
private static final int SPEECH_REQUEST_CODE = 0;
// Create an intent that can start the Speech Recognizer activity
private void displaySpeechRecognizer() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
// Start the activity, the intent will be populated with the speech text
startActivityForResult(intent, SPEECH_REQUEST_CODE);
}
// This callback is invoked when the Speech Recognizer returns.
// This is where you process the intent and extract the speech text from the intent.
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) {
List<String> results = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
String spokenText = results.get(0);
// Do something with spokenText
}
super.onActivityResult(requestCode, resultCode, data);
}
更多信息可以在reference
謝謝你發現,我會看看他們。 –
好! #2完全爲我工作。很有趣,因爲我們的Android手機鍵盤上已經有一個語音激活的麥克風圖標。例如,當您在應用程序中點擊「EditText」時,如果您單擊鍵盤上的麥克風圖標,它將自動開始向您的「EditText」指定您的聲音。根本不需要任何代碼!然而,並不是每個人都知道這一點,並且在一個句子中解釋它會在UI的小範圍內變得尷尬,所以這種方法效果很好!謝謝! – Azurespot