Я попытаюсь использовать распознавание речи без диалоговых окон Google с помощью RecognitionListener , но при запуске приложения не работает только звуковой сигнал. У меня есть дополнительные права. Аудиозапись и Интернет в файл манифеста. Я надеюсь вы говорите мне и помогаете мне найти неправильное ... У меня нет ошибок в Log cat ... Я хочу сделать цикл, когда пользователь скажет привет, что в Toast появляется сообщение «Распознавание» OK, и представление списка показывает результаты.Распознавание речи без диалоговых окон Google
public class MainActivity extends Activity implements RecognitionListener
{
private ListView wordsList;
private SpeechRecognizer mSpeechRecognizer;
private Intent mSpeechRecognizerIntent;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
this.getPackageName());
wordsList = (ListView) findViewById(R.id.listView1);
mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
}
public void onBeginningOfSpeech(){ }
public void onBufferReceived(byte[] buffer){ }
public void onEndOfSpeech(){ }
public void onError(int error){
//mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
}
public void onEvent(int eventType, Bundle params){ }
public void onPartialResults(Bundle partialResults){ }
public void onReadyForSpeech(Bundle params){
Toast.makeText(getBaseContext(), "Voice recording starts", Toast.LENGTH_SHORT).show();
}
public void onResults(Bundle results)
{
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, matches));
if (matches.contains("hello") {
Toast.makeText(getBaseContext(), "Recognision OK!!!", Toast.LENGTH_SHORT).show();
}
}
public void onRmsChanged(float rmsdB) { }
}
попробуйте использовать match.get (0) в onResult – Meenal
Я не думаю, что это проблема ... потому что в начале речи не отображается тост «Голосовая запись начинается» ... Я использую Samsung S4. .. – user2342687
См. Учебное пособие: http://www.truiton.com/2014/06/android-speech-recognition-without-dialog-custom-activity/ at Truiton – kenorb