Речь Android распознает подсказку по звуку, а не только по тексту

В настоящее время у меня работает распознавание речи, но RecognizerIntent.EXTRA_PROMPT отображается в виде текста только на мобильных устройствах и на носимых часах.

Есть ли способ или другой вариант заставить говорить (воспроизведение как аудио)?

Пробовали API VoiceInteraction, но он ограничен выбор варианта и должны начать через одну из системных голосовых команд.

    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);
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "How can I help you?");
        // 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);
            Log.d(TAG, "spokenText: " + spokenText);
            // Do something with spokenText
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

person Prakash    schedule 13.09.2016    source источник


Ответы (2)


Я думаю, вы на верном пути. Вы должны использовать Voice Interaction API для голосового взаимодействия, Google Voice Actions распознает множество голосовых и печатных запросов действий и создает для них намерения Android.

Согласно видеозаписи для API голосового взаимодействия:

Независимо от того, использует ли ваше приложение системные или настраиваемые голосовые действия, в некоторых случаях приложение может запросить у пользователя подписку. вопрос перед выполнением действия. Например, после запуска музыкального приложения, когда пользователь говорит «включи музыку», оно может захотеть спросить пользователя «какой жанр?» Или когда приложение домашней автоматизации слышит, как пользователь говорит «ОК, Google, включи свет», оно может захотеть спросить «в какой комнате?» API голосового взаимодействия позволяет приложениям Android M задавать подобные дополнительные вопросы.

В лаборатории кода вы узнаете, как добавить голосовое взаимодействие в свое приложение с помощью API голосового взаимодействия. API голосового взаимодействия позволяет пользователям вашего приложения подтверждать действия и выбирать из списка вариантов, используя только свой голос.

Примечание:

Google Voice Interaction API позволяет активности взаимодействовать с пользователем, используя речь, чтобы получить входные данные, которые:

  • подтверждает действие (например, «вы уверены?»)
  • выбирает из списка вариантов

Полезные ссылки:

person Mr.Rebot    schedule 13.09.2016
comment
Спасибо @Mr.Rebot за ответы и ссылки. Я пробовал все это, и на данный момент пользовательский голос открыт не для всех, но проверьте разработчиков. google.com/voice-actions/custom-actions. И Android-речь в текст будет предлагать только текст, а не звук. - person Prakash; 13.09.2016

Сначала вы воспроизводите аудио как воспроизвести аудиофайл в Android

Когда звук закончится, вы начнете распознавание речи.

person Nikolay Shmyrev    schedule 14.09.2016