Zapoznaj się Voice Reorganization in Android
Można go wdrożyć jak poniżej:
Wpisz poniższy kod po kliknięciu przycisku zdarzenia, który jest odpowiedzialny za wystrzelenie intencję głosową.
/**
* Instruct the app to listen for user speech input
*/
private void listenToSpeech() {
//start the speech recognition intent passing required data
Intent listenIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
//indicate package
listenIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());
//message to display while listening
listenIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say a word!");
//set speech model
listenIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
//specify number of results to retrieve
listenIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 10);
//start listening
startActivityForResult(listenIntent, VR_REQUEST);
}
Po wywołaniu zamiaru wyświetlamy zapisany głos.
/**
* onActivityResults handles:
* - retrieving results of speech recognition listening
* - retrieving result of TTS data check
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//check speech recognition result
if (requestCode == VR_REQUEST && resultCode == RESULT_OK)
{
//store the returned word list as an ArrayList
ArrayList<String> suggestedWords = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
//set the retrieved list to display in the ListView using an ArrayAdapter
wordList.setAdapter(new ArrayAdapter<String> (this, R.layout.word, suggestedWords));
//to open the result in browser
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.google.co.in/?gws_rd=cr#q="+suggestedWords));
startActivity(intent);
}
//tss code here
//call superclass method
super.onActivityResult(requestCode, resultCode, data);
}
Dziękuję GrIsHu za Twoją sugestię. Zgodnie z tą logiką, widzę, że będę w stanie uzyskać wynik w przeglądarce, ale czy mógłbyś wyjaśnić, jak używać TTS w celu uzyskania najdokładniejszych wyników. Na przykład, jeśli zapytam Jak długo jest Wieża Eiffla, otrzymam wynik w przeglądarce, ale jak mogę wybrać wynik, w którym używam TTS dla odpowiedzi głosowej, aby wynik był słyszalny. – Shashi
Co próbujesz powiedzieć, że cię nie dostaję? – GrIsHu
Sposób, w jaki klikasz ikonę wyszukiwania głosowego Google na urządzeniu z Androidem i zadajesz dowolne pytanie, w większości przypadków wyświetla on wynik na ekranie, a także przekazuje odpowiedź poprzez dźwięk (za pomocą tekstu na mowę). Chcę wiedzieć, jak to zrobić, w zasadzie nie interesują mnie efekty wizualne, a raczej wyniki muszą być wypowiadane przez urządzenie w podobny sposób, jak w Google Now. Daj mi znać, jeśli nadal nie jestem wystarczająco jasny. – Shashi