![Unos teksta glasom](https://i.ytimg.com/vi/sTfIzhRMD4c/hqdefault.jpg)
Садржај
- Изградња корисничког интерфејса од говора до текста
- Додавање препознавања говора у апликацију за Андроид
- 1. Покрените РецогнизерИнтент
- 2. Примање говорног одговора
- Тестирање вашег пројекта
- Окончање
Многе апликације, услуге и кућни уређаји користе препознавање говора како би пружили боље корисничко искуство и побољшали приступачност. Постоји безброј Андроид апликација које користе препознавање говора - од којих је најистакнутији Гоогле Ассистант - па зашто не бисте следили моделу и додали ову функцију у своје Андроид апликације?
У овом чланку ћу делити брз и једноставан начин за почетак рада са Андроидовим намером говора у текст, који може бити користан у широком спектру апликација. На примјер, можете користити препознавање говора за аутоматизацију досадног ручног уноса података, аутоматско генерисање титлова или чак као основу за преводилачку апликацију која „слуша“ вокални унос, претвара га у текст, а затим преводи овај текст и приказује резултате у корисник.
Без обзира на врсту апликације коју креирате, препознавање говора може побољшати приступачност пружајући корисницима алтернативни начин за интеракцију са вашом апликацијом. На пример, особама са проблемима мобилности, спретности или вида лакше ће се кретати мобилним апликацијама помоћу гласовних команди, а не преко екрана осетљивог на додир или тастатуре. Поред тога, према подацима Светске здравствене организације (СЗО), преко милијарду људи има неки облик инвалидитета, што износи око 15% светске популације. Додавање функција приступачности вашим апликацијама може значајно повећати вашу потенцијалну публику.
На крају овог чланка направићете једноставну апликацију Говор-Текст која снима ваш глас, претвара га у текст и затим приказује тај текст на екрану.
Изградња корисничког интерфејса од говора до текста
За почетак направите нови Андроид пројекат користећи предложак „Празно активност“.
Направит ћемо једноставну апликацију која се састоји од дугмета које, када се додирне, покреће Андроид-ову намјеру говора и текста и приказује дијалог који показује да је ваша апликација спремна да прихвати говор. Једном када корисник заврши са говором, њихов унос ће се претворити у текст и приказати као део ТектВиев-а.
Започнимо креирањем нашег изгледа:
То нам даје следећи изглед:
Додавање препознавања говора у апликацију за Андроид
Унос говора и обраду обрађујемо у два корака:
1. Покрените РецогнизерИнтент
Најлакши начин за конверзију говора у текст је употреба РецогнизерИнтент.АЦТИОН_РЕЦОГНИЗЕ_СПЕЕЦХ. Овај намера тражи од корисника да унесе глас, покретањем познатог Андроид дијалошког оквира за микрофон.
Једном када корисник престане да говори, дијалог ће се аутоматски затворити и АЦТИОН_РЕЦОГНИЗЕ_СПЕЕЦХ ће послати снимљени звук преко препознавача говора.
Покрећемо РецогнизерИнтент.АЦТИОН_РЕЦОГНИЗЕ_СПЕЕЦХ користећи стартАцтивитиФорРесулт () са додатним додацима. Имајте на уму да уколико није другачије одређено, препознавач ће користити подразумевани језик уређаја.
јавна воид онЦлицк (Виев в) {// Покретање намере РецогнизерИнтент // Намера намере = нова намера (РецогнизерИнтент.АЦТИОН_РЕЦОГНИЗЕ_СПЕЕЦХ); покушајте {стартАцтивитиФорРесулт (намјера, РЕКУЕСТ_ЦОДЕ); } хватање (АцтивитиНотФоундЕкцептион а) {}}
2. Примање говорног одговора
Једном када је операција препознавања говора довршена, АЦТИОН_РЕЦОГНИЗЕ_СПЕЕЦХ ће послати резултате натраг у активност која се позива као низ низова.
Пошто смо покренули РецогнизерИнтент преко стартАцтивитиФорРесулт (), податке о резултатима обрађујемо надјачавањем онАцтивитиРесулт (инт рекуестЦоде, инт ресултЦоде, Интент дата) у активности која је покренула позив за препознавање говора.
Резултати се враћају према опадајућем редоследу препознавања говора. Дакле, да бисмо били сигурни да приказујемо најтачнији текст који нам треба заузети нулту позицију из враћеног АрраиЛиста, а затим га приказати у нашем ТектВиеву.
@Оверриде // Дефинишите методу ОнАцтивитиРесулт у активностима нашег позиватеља о намјери // заштићени воид онАцтивитиРесулт (инт рекуестЦоде, инт ресултЦоде, подаци о намјерама) {супер.онАцтивитиРесулт (рекуестЦоде, ресултЦоде, подаци); свитцх (рекуестЦоде) {цасе РЕКУЕСТ_ЦОДЕ: {// Ако се РЕСУЛТ_ОК врати ... // иф (резултатЦоде == РЕСУЛТ_ОК && нулл! = подаци) {//...додајте АрраиЛист // АрраиЛист Имајте на уму да говору у текст не захтева активну интернетску везу, тако да ће исправно радити чак и када је корисник ван мреже. Након довршетка свих горе наведених корака, ваша МаинАцтивити треба изгледати овако: импорт андроид.цонтент.АцтивитиНотФоундЕкцептион; импорт андроидк.аппцомпат.апп.АппЦомпатАцтивити; импорт андроид.ос.Бундле; импорт андроид.цонтент.Интент; импорт андроид.спеецх.РецогнизерИнтент; импорт андроид.видгет.ТектВиев; импорт андроид.виев.Виев; импорт јава.утил.АрраиЛист; јавна класа МаинАцтивити проширује АппЦомпатАцтивити {приватни статички коначни инт РЕКУЕСТ_ЦОДЕ = 100; приватни ТектВиев тектОутпут; @Оверриде заштићен воид онЦреате (Бундле савеИнстанцеСтате) {супер.онЦреате (савеИнстанцеСтате); сетЦонтентВиев (Р.лаиоут.ацтивити_маин); тектОутпут = (ТектВиев) финдВиевБиИд (Р.ид.тектОутпут); } // Ова метода се позива притиском на тастер // јавна воид онЦлицк (Виев в) // Стварање намере радњом „РецогнизерИнтент.АЦТИОН_РЕЦОГНИЗЕ_СПЕЕЦХ“ // {Интент интеннт = нев Интент (РецогнизерИнтент.АЦТИОН_РЕЦОГНИЗЕ_СПЕЕЦХ); покушајте {// Покрените активност и причекајте одговор // стартАцтивитиФорРесулт (намјера, РЕКУЕСТ_ЦОДЕ); } хватање (АцтивитиНотФоундЕкцептион а) {}} @Оверриде // Руковање резултатима // заштићена воид онАцтивитиРесулт (инт захтјевЦоде, инт ресултЦоде, подаци о намјерама) {супер.онАцтивитиРесулт (рекуестЦоде, резултатЦоде, подаци); Свитцх (рекуестЦоде) {цасе РЕКУЕСТ_ЦОДЕ: {иф (ресултЦоде == РЕСУЛТ_ОК && нулл! = дата) {АрраиЛист Готов пројекат можете преузети са ГитХуб-а. Да бисте тестирали апликацију: У овом чланку смо видели како можете брзо и лако додати препознавање говора својим Андроид апликацијама, користећи Намера говора у текст. Да ли сте наишли на било које Андроид апликације које користе препознавање говора на изненађујуће или иновативне начине? Следећи: Изградите Андроид апликацију проширене стварности са Гоогле АРЦореТестирање вашег пројекта
Окончање