Как узнать, когда Speech To Text закончится? - PullRequest
0 голосов
/ 19 июня 2019

Я использую речь к тексту в Деятельности, где я тоже занимаюсь другими делами. Как я мог дождаться окончания речи к тексту, потому что мне нужен текст из нее.

Теперь я получаю текст onActivityResult, и требуется некоторое время, чтобы получить результат, и у меня одновременно работают другие потоки. Я вынужден оставаться один за другим, пока не получу результат по результативности. Вот так я запускаю Речь в текст.

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US);
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
                "Hi speak something");
        try {
            startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
        } catch (ActivityNotFoundException a) {

        }

А это onActivityResult

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            switch (requestCode) {
                case REQ_CODE_SPEECH_INPUT: {
                    if (resultCode == RESULT_OK && null != data) {

                        ArrayList<String> result = data
                                .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                        message=result.get(0);
                        Log.i("answer", message);

                    }
                    break;
                }


            }



        }
}

Мне нужно работать в приложении с message, но потребуется некоторое время, чтобы получить текст для записи.

...