Код: Выделить всё
@Override
public void onResults(Bundle results) {
progressBar.setVisibility(View.GONE);
ArrayList matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (matches != null && !matches.isEmpty()) {
String transcript = matches.get(0);
textSTT.setText(transcript);
if (transcript.contains(keyword)) {
long endTime = System.nanoTime(); // Using nano
delay = endTime - startTime;
double delayInSeconds = delay / 1_000_000_000.0;
double roundedDelay = roundToTwoDecimalPlaces(delayInSeconds); // Rounding delay
delayResult.setText(String.format("Delay: %.2f seconds\nTranscription result: %s", roundedDelay, transcript));
} else {
delayResult.setText("Keyword not found.");
}
} else {
delayResult.setText("No result from speech recognition.");
}
}
- Когда я впервые нажимаю кнопку начала записи, после этого я сразу упоминаю ключевое слово (приблизительно 1-я секунда). Но результаты показывают, что полученная задержка равна 2 или даже больше.
- < li>Распознаватель речи (по умолчанию для Android)
Я установил 10 секунды для обратного отсчета. Когда я нажал кнопку начала записи, я сразу упомянул ключевое слово (примерно 1-я секунда). Но результат задержки показывает 2 секунды или даже больше. Аналогично, когда я пытаюсь упомянуть ключевое слово на 5-й секунде, но результат задержки показывает 7-ю секунду или даже больше.
Я хочу, чтобы расчет задержки был более точным, например: Я упоминаю ключевое слово на 7-й секунде, тогда задержка составляет 7 секунд.
Подробнее здесь: https://stackoverflow.com/questions/792 ... rding-file
Мобильная версия