Как активировать преобразование речи в текст с помощью кнопки?

Я хотел бы реализовать кнопку, которая при нажатии активировала бы транслятор речи Android в текст, подобный тому, который предоставляется клавиатурой Android. В частности, мне нужна кнопка, с помощью которой приложение будет расшифровывать то, что говорит пользователь, в режиме реального времени и записывать слово за словом (в режиме реального времени) в поле editText. Как лучше всего это сделать?

Спасибо


person Matt Fritze    schedule 24.06.2013    source источник
comment
stackoverflow.com/a/9343637/1397821   -  person M. Usman Khan    schedule 06.05.2019


Ответы (2)


Если вы еще не проверили образец Voice Recognition в своем Api demos, вам следует проверить его. Это должно дать вам преимущество. Демо доступны в папке /android-sdk/samples/.... Если вы их не установили, вот как вы можете как установить демо-приложение Android API на телефон .

Также есть следующие (любые многие другие) учебники, которые помогут вам начать:

1) Руководство по распознаванию голоса в Android

2) Android: преобразование речи в текст с использованием API

Следующее также может быть хорошим чтением:

Добавьте функции преобразования текста в речь и распознавания речи в свои приложения для Android и Использование API распознавания речи Android.

Надеюсь это поможет.

person Shobhit Puri    schedule 24.06.2013
comment
Спасибо, посмотрю на них. - person Matt Fritze; 24.06.2013
comment
НИЦЦА! # 2 полностью работал для меня. Забавно, потому что на клавиатуре нашего телефона Android уже есть значок микрофона с голосовым управлением. Когда вы щелкаете внутри EditText в приложении, например, если вы нажимаете значок микрофона на клавиатуре, он просто автоматически начинает диктовать ваш голос вашему EditText. Код вообще не нужен! Однако не все знают об этом, и объяснить это в одном предложении было бы неудобно в небольших рамках пользовательского интерфейса, поэтому этот метод работает хорошо! Спасибо! - person Azurespot; 01.01.2015

В вашем приложении вы вызываете startActivityForResult() с помощью действия ACTION_RECOGNIZE_SPEECH. Это запустит действие по распознаванию речи, после чего вы сможете обработать результат в onActivityResult().

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);
// 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);
        // Do something with spokenText
    }
    super.onActivityResult(requestCode, resultCode, data);
}

Дополнительную информацию можно найти в справочнике.

person Jubba Smail    schedule 24.01.2017