Trong ứng dụng của bạn, bạn gọi startActivityForResult()
bằng cách sử dụng hành động ACTION_RECOGNIZE_SPEECH
. Điều này bắt đầu hoạt động nhận dạng giọng nói và sau đó bạn có thể xử lý kết quả trong 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);
}
Thông tin thêm có thể được tìm thấy trong reference
Nguồn
2017-01-24 11:05:33
Cảm ơn, tôi sẽ có một cái nhìn vào họ. –
NICE! # 2 hoàn toàn làm việc cho tôi. Hài hước, bởi vì đã có một biểu tượng micrô kích hoạt bằng giọng nói trong bàn phím điện thoại Android của chúng tôi. Khi bạn nhấp vào bên trong một 'EditText' trong một ứng dụng, ví dụ, nếu bạn nhấp vào biểu tượng micrô trên bàn phím của bạn, nó sẽ chỉ tự động bắt đầu dictating giọng nói của bạn để' EditText' của bạn. Không cần bất kỳ mã nào cả! Tuy nhiên, không phải tất cả mọi người đều biết về điều này và giải thích nó trong một câu sẽ là khó xử trong các hạn chế nhỏ của một giao diện người dùng, vì vậy phương pháp này hoạt động tốt! Cảm ơn! – Azurespot