Преобразование речи в текст: как создать простое приложение для диктовки

Автор: Lewis Jackson
Дата создания: 13 Май 2021
Дата обновления: 1 Июль 2024
Anonim
Преобразование голоса в текст | PYTHON
Видео: Преобразование голоса в текст | PYTHON

Содержание


Многие приложения, сервисы и бытовые гаджеты используют распознавание речи, чтобы улучшить взаимодействие с пользователем и улучшить доступность. Существует бесчисленное множество приложений для Android, в которых используется распознавание речи - наиболее заметным из которых является Google Assistant - так почему бы не последовать их примеру и добавить эту функцию в свои собственные приложения для Android?

В этой статье я расскажу о быстром и простом способе начать работу с речевым текстом в Android, который может быть полезен в самых разных приложениях. Например, вы можете использовать распознавание речи для автоматизации утомительного ручного ввода данных, автоматического создания субтитров или даже в качестве основы для переводческого приложения, которое «прослушивает» голосовой ввод, преобразует его в текст, затем переводит этот текст и отображает результаты в Пользователь.

Независимо от того, какое приложение вы создаете, распознавание речи может улучшить доступность, предоставляя пользователям альтернативный способ взаимодействия с вашим приложением. Например, людям с проблемами мобильности, ловкости или зрения может быть проще ориентироваться в мобильных приложениях с помощью голосовых команд, а не на сенсорном экране или клавиатуре. Кроме того, по данным Всемирной организации здравоохранения (ВОЗ), более миллиарда людей имеют ту или иную форму инвалидности, что составляет около 15% населения мира. Добавление специальных возможностей в ваши приложения может значительно увеличить вашу потенциальную аудиторию.


К концу этой статьи вы создадите простое приложение для преобразования речи в текст, которое записывает ваш голос, преобразует его в текст и затем отображает этот текст на экране.

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

Для начала создайте новый проект Android с помощью шаблона «Пустое действие».

Мы создадим простое приложение, состоящее из кнопки, которая при нажатии вызывает Android-функцию «Речь к тексту» и отображает диалоговое окно, указывающее, что ваше приложение готово принимать речевой ввод. Как только пользователь закончит говорить, его ввод будет преобразован в текст, а затем отображен как часть TextView.

Давайте начнем с создания нашего макета:

Это дает нам следующий макет:


Добавление распознавания речи в ваше приложение для Android

Мы фиксируем и обрабатываем речевой ввод в два этапа:

1. Запустите RecognizerIntent

Самый простой способ выполнить преобразование речи в текст - использовать RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Это намерение запрашивает у пользователя голосовой ввод, открывая знакомое диалоговое окно микрофона Android.

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

Мы запускаем RecognizerIntent.ACTION_RECOGNIZE_SPEECH, используя startActivityForResult () со связанными дополнениями. Обратите внимание, что если не указано иное, распознаватель будет использовать локаль устройства по умолчанию.

public void onClick (View v) {// Инициировать намерение RecognizerIntent // Интент намерения = новое намерение (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}

2. Получение речевого ответа

По завершении операции распознавания речи ACTION_RECOGNIZE_SPEECH отправит результаты обратно в вызывающую активность в виде массива строк.

Поскольку мы запустили RecognizerIntent с помощью startActivityForResult (), мы обрабатываем данные результата, переопределяя onActivityResult (int requestCode, int resultCode, Intent data) в Activity, которая инициировала вызов распознавания речи.

Результаты возвращаются в порядке убывания достоверности распознавателя речи. Итак, чтобы убедиться, что мы отображаем наиболее точный текст, нам нужно взять нулевую позицию из возвращенного ArrayList, а затем отобразить его в нашем TextView.

@Override // Определяем метод OnActivityResult в нашем намеренном вызывающем объекте Activity // protected void onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Если возвращается RESULT_OK ... // if (resultCode == RESULT_OK && null! = data) {//...then получить ArrayList // ArrayList result = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Обновляем наш TextView // textOutput.setText (result.get (0)); } перемена; }}}}

Обратите внимание, что для преобразования текста в текст не требуется активное подключение к Интернету, поэтому он будет работать правильно, даже если пользователь находится в автономном режиме.

После выполнения всех вышеперечисленных шагов ваша MainActivity должна выглядеть примерно так:

import android.content.ActivityNotFoundException; import androidx.appcompat.app.AppCompatActivity; импорт android.os.Bundle; импорт android.content.Intent; import android.speech.RecognizerIntent; import android.widget.TextView; импорт android.view.View; import java.util.ArrayList; открытый класс MainActivity extends AppCompatActivity {приватный статический final int REQUEST_CODE = 100; частный TextView textOutput; @Override protected void onCreate (Bundle saveInstanceState) {super.onCreate (сохраненныйInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Этот метод вызывается при нажатии кнопки // public void onClick (View v) // Создание намерения с действием «RecognizerIntent.ACTION_RECOGNIZE_SPEECH» // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); try {// Запускаем Activity и ждем ответа // startActivityForResult (intent, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Обработка результатов // protected void onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList result = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } перемена; }}}}

Вы можете скачать готовый проект с GitHub.

Тестирование вашего проекта

Чтобы проверить вашу заявку:

  • Установите проект на физическое устройство Android или виртуальное устройство Android (AVD). Если вы используете AVD, ваш компьютер для разработки должен либо иметь встроенный микрофон, либо вы можете использовать внешний микрофон или гарнитуру.
  • Нажмите кнопку «Начать диктовку» в приложении.
  • Когда появится диалоговое окно микрофона, говорите на вашем устройстве. Через несколько секунд ваши слова должны появиться на экране.

Завершение

В этой статье мы увидели, как можно быстро и легко добавить распознавание речи в приложения для Android, используя функцию «Речь в текст». Сталкивались ли вы с Android-приложениями, которые используют распознавание речи удивительным или инновационным способом?

Следующий: Создайте приложение для Android с дополненной реальностью с помощью Google ARCore

DC Comic испытывает трудности с раскрытием формулы победы. Фильмы с Бэтменом идут хорошо, но такие фильмы, как Бэтмен против Супермена и Отряда самоубийц, не получили восторженных отзывов, на которые...

Если вы ищете новый ноутбук, Dell - один из основных брендов, на который стоит обратить внимание. Технический гигант является третьим по величине производителем ПК в мире, и в его линейке есть отличны...

Популярное сегодня