Перетворення мови в текст: як створити просту програму диктантів

Автор: Lewis Jackson
Дата Створення: 13 Травень 2021
Дата Оновлення: 1 Липня 2024
Anonim
Запись речи в текст. НОВИНКА от GOOGLE 👍
Відеоролик: Запись речи в текст. НОВИНКА от GOOGLE 👍

Зміст


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

У цій статті я поділюсь швидким та простим способом розпочати роботу з мовленням «Мова в текст Android», яка може бути корисною для широкого кола програм. Наприклад, ви можете використовувати розпізнавання мовлення для автоматизації виснажливого введення даних вручну, автоматичного генерування субтитрів або навіть як основи для програми перекладу, яка "слухає" голосовий ввід, перетворює його в текст, а потім переводить цей текст і відображає результати для користувач.

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


Наприкінці цієї статті ви створили просту програму Speech-to-Text, яка записує ваш голос, перетворює його в текст і потім відображає цей текст на екрані.

Побудова користувальницького інтерфейсу "Мова в текст"

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

Ми створимо просту програму, що складається з кнопки, яка при натисканні запускає наміри мови в тексті Android і відображає діалогове вікно, яке вказує на те, що ваш додаток готовий прийняти мовленнєвий вклад. Після того, як користувач закінчить говорити, їх введення буде перетворено в текст, а потім відобразиться як частина TextView.

Почнемо зі створення нашого макета:

Це дає нам такий макет:


Додавання розпізнавання мовлення у вашій програмі Android

Ми фіксуємо та обробляємо мовне введення в два етапи:

1. Запустіть розпізнавальний намір

Найпростіший спосіб здійснити перетворення мовлення в текст - використовувати RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Цей намір спонукає користувача до голосового введення, запустивши знайоме діалогове вікно мікрофона Android.

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

Ми запускаємо RecognizerIntent.ACTION_RECOGNIZE_SPEECH, використовуючи startActivityForResult () з додатковими додатками. Зауважте, що якщо не вказано інше, розпізнавальник використовуватиме локальну локальну систему пристрою.

public void onClick (View v) {// Запускає намір RecognizerIntent // Намір наміру = новий Намір (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); спробуйте {startActivityForResult (наміри, REQUEST_CODE); } лов (ActivityNotFoundException a) {}}

2. Отримання мовленнєвої відповіді

Після завершення операції розпізнавання мовлення ACTION_RECOGNIZE_SPEECH поверне результати назад до виклику "Діяльність" у вигляді масиву рядків.

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

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

@Override // Визначте метод OnActivityResult в діяльності нашого виклику намірів // Захищена недійсність onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); перемикач (requestCode) {випадок REQUEST_CODE: {// Якщо RESULT_OK повертається ... // якщо (результатCode == RESULT_OK && null! = дані) {//... потім отримати ArrayList // ArrayList result = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Оновіть наш TextView // textOutput.setText (result.get (0)); } перерву; }}}}

Зауважте, що Speech-to-Text не потребує активного підключення до Інтернету, тому воно працюватиме правильно навіть у режимі офлайн.

Після виконання всіх вищезазначених кроків ваша MainActivity має виглядати приблизно так:

імпорт android.content.ActivityNotFoundException; імпортувати androidx.appcompat.app.AppCompatActivity; імпортувати android.os.Bundle; імпорт android.content.Intent; імпортувати android.speech.RecognizerIntent; імпортувати android.widget.TextView; імпортувати android.view.View; імпорт java.util.ArrayList; публічний клас MainActivity розширює AppCompatActivity {приватний статичний кінцевий int REQUEST_CODE = 100; приватний TextView textOutput; @Override захищений недійсним onCreate (пакет збереженихInstanceState) {super.onCreate (збереженийInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Цей метод викликається натисканням кнопки // публічна недійсність onClick (View v) // Створення наміру за допомогою дії „RecognizerIntent.ACTION_RECOGNIZE_SPEECH” // {Intent intennt = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); спробуйте {// Запустити Діяльність та дочекатися відповіді // startActivityForResult (наміри, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Обробляти результати // захищена недійсність onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); перемикач (requestCode) {випадок 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

Сьогодні amung оголосила про новий планшет: amung Galaxy Tab 5e. Планшет Android потрапить у інтернет-магазин amung та різні великі роздрібні торговці десь у другому кварталі цього року за порівняно д...

У мене розбиті почуття щодо дизайну Galaxy Tab 4, і я маю на увазі це досить буквально.Передня панель планшета виглядає відносно гладкою та сучасною, із значно меншими рамками, ніж Tab 3. Це призводит...

Популярний На Сайті