Преобразуване на реч в текст: Как да създадете просто приложение за диктовка

Автор: Lewis Jackson
Дата На Създаване: 13 Може 2021
Дата На Актуализиране: 1 Юли 2024
Anonim
VoiceNote - преобразуване на речта в текст
Видео: VoiceNote - преобразуване на речта в текст

Съдържание


Много приложения, услуги и домакински приспособления използват разпознаване на реч, за да осигурят по-добро потребителско изживяване и подобряване на достъпността. Има безброй приложения за 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 // Intent намерение = new Intent (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 в нашата активност на обаждащия се // Защитен void onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); превключвател (requestCode) {case REQUEST_CODE: {// Ако RESULT_OK се върне ... // if (resultCode == RESULT_OK && null! = data) {//... тогава извлечете 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; import android.view.View; import java.util.ArrayList; обществен клас MainActivity разширява AppCompatActivity {частен статичен окончателен int REQUEST_CODE = 100; частен TextView textOutput; @Override защитена празнота onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Този метод се извиква при натискане на бутона // публична невалидност onClick (View v) // Създаване на намерение с действие „RecognizerIntent.ACTION_RECOGNIZE_SPEECH“ // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); опитайте {// Стартиране на активността и изчакайте отговора // startActivityForResult (намерение, REQUEST_CODE); } улавяне (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

В YouTube има много страхотни документални филми, които можете да гледате безплатно. Ние събрахме най-добрите от различни жанрове, включително престъпност, бизнес и технологии, някои от които са събра...

Най- средни спестявания на полети с Долар Flight Club е $500.Доста статистика е, но има смисъл. Цени на полети варирайте диво, така че ако сте гъвкави с плановете си за пътуване и можете да бъдете изв...

Нашият Избор