![VoiceNote - преобразуване на речта в текст](https://i.ytimg.com/vi/KJb1ZIBYVhY/hqdefault.jpg)
Съдържание
- Изграждане на потребителски интерфейс от реч към текст
- Добавяне на разпознаване на реч към приложението ви за Android
- 1. Стартирайте RecognizerIntent
- 2. Получаване на речевия отговор
- Тестване на вашия проект
- Обобщавайки
Много приложения, услуги и домакински приспособления използват разпознаване на реч, за да осигурят по-добро потребителско изживяване и подобряване на достъпността. Има безброй приложения за 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 Имайте предвид, че 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 Можете да изтеглите завършения проект от GitHub. За да поставите приложението си на тест: В тази статия видяхме как можете бързо и лесно да добавяте разпознаване на реч към приложенията си за Android, като използвате намерението за говор към текст. Срещали ли сте се с Android приложения, които използват разпознаване на реч по изненадващи или иновативни начини? Следващия: Създайте приложение за Android с разширена реалност с Google ARCoreТестване на вашия проект
Обобщавайки