У дома - Windows
Ултра-бързо разпознаване на реч без сървъри с помощта на реален пример. Най-добрата програма за разпознаване на руска реч Офлайн разпознаване на реч как да деактивирате

Актуализирано: понеделник, 31 юли 2017 г

Какво общо има полуфантастичната идея за разговор с компютър с професионалната фотография? Почти никакви, освен ако не сте фен на идеята за безкрайно развитие на цялата техническа среда на човека. Представете си за момент, че давате гласови команди на вашия фотоапарат да промени фокусното разстояние и да направи корекция на експозицията от половин стоп плюс. Дистанционното управление на камерата вече е въведено, но там трябва тихо да натискате бутоните, но тук има слухова камера!

Стана традиция да се цитира някой научнофантастичен филм като пример за гласова комуникация между човек и компютър, например „2001: Космическа одисея“ на режисьора Стенли Кубрик. Там бордовият компютър не само води смислен диалог с астронавтите, но може да чете по устните като глух човек. С други думи, машината се е научила да разпознава човешката реч без грешки. Може би дистанционното гласово управление на камерата ще изглежда излишно за някои, но мнозина биха харесали тази фраза „Свали ни долу, скъпа“и снимката на цялото семейство на фона на палмово дърво е готова.

Е, така че отдадох почит на традицията и помечтах малко. Но, говорейки от сърце, тази статия беше трудна за писане и всичко започна с подарък под формата на смартфон с Android 4 OS. Този модел HUAWEI U8815 има малък четири инчов сензорен екран и екранна клавиатура. Малко е необичайно да пишете върху него, но се оказва, че не е особено необходимо. (изображение01)

1. Гласово разпознаване в смартфон с Android OS

Докато изпробвах нова играчка, забелязах графика на микрофон в лентата за търсене Googleи на клавиатурата в Бележки. Преди това не се интересувах какво означава този символ. Имах разговори в Skypeи въвеждате букви на клавиатурата. Това правят повечето интернет потребители. Но както после ми обясниха, в търсачката Googleбеше добавено гласово търсене на руски и се появиха програми, които ви позволяват да диктувате кратки съобщения, когато използвате браузър "Chrome".

Казах фраза от три думи, програмата ги идентифицира и ги показа в клетка със син фон. Тук имаше какво да се изненадате, защото всички думи бяха написани правилно. Ако щракнете върху тази клетка, фразата се появява в текстовото поле на бележника на Android. Затова казах още няколко фрази и изпратих съобщение до асистента чрез SMS.


2. Кратка история на програмите за гласово разпознаване.

За мен не беше откритие, че съвременните постижения в областта на гласовото управление позволяват да се дават команди на домакински уреди, автомобили и роботи. Командният режим беше въведен в предишни версии на Windows, OS/2 и Mac OS. Срещал съм говорещи програми, но каква е ползата от тях? Може би моята особеност е, че ми е по-лесно да говоря, отколкото да пиша на клавиатура, но на мобилен телефон не мога да пиша нищо. Трябва да запишете контакти на лаптоп с нормална клавиатура и да ги прехвърлите чрез USB кабел. Но просто да говоря в микрофон и компютърът сам да напише текста без грешки беше мечта за мен. Атмосферата на безнадеждност се поддържаше от дискусии във форумите. Навсякъде имаше такава тъжна мисъл:

„В действителност обаче към днешна дата програми за истинско разпознаване на реч (и дори на руски) практически не съществуват и очевидно няма да бъдат създадени скоро. Нещо повече, дори обратният проблем на разпознаването - синтезът на речта, който, изглежда, е много по-прост от разпознаването, не е напълно решен." (ComputerPress No. 12, 2004)

„Все още няма нормални програми за разпознаване на реч (не само руски), защото задачата е доста трудна за компютър. И най-лошото е, че механизмът за разпознаване на думи от хората все още не е реализиран, така че няма от какво да се започне, когато се създават програми за разпознаване. (Още една дискусия във форума).

В същото време прегледите на програмите за гласово въвеждане на текст на английски показват ясни успехи. Например, IBM ViaVoice 98 Executive Editionимаше основен речник от 64 000 думи и възможност да добавите същия брой ваши собствени думи. Процентът на разпознаване на думи без обучение на програмата беше около 80%, а при последваща работа с конкретен потребител достигна 95%.

Сред програмите за разпознаване на руски език си струва да се отбележи „Gorynych“ - допълнение към англоезичния Dragon Dictate 2.5. Ще ви разкажа за търсенето и след това за „битката с петте Горинича“ във втората част на прегледа. Първият, който намерих, беше "Английският дракон".

3. Програма за непрекъснато разпознаване на реч „Dragon Naturally Speaking“

Съвременна версия на програмата на фирмата "Нюанс"попаднах при мой стар приятел от Минския институт за чужди езици. Тя го върна от пътуване в чужбина и го купи, мислейки, че може да бъде „компютърна секретарка“. Но нещо не се получи и програмата остана на лаптопа, почти забравена. Поради липсата на ясен опит, трябваше сам да отида при моя приятел. Цялото това дълго въведение е необходимо за правилното разбиране на изводите, които направих.

Пълното име на първия ми дракон беше: . Програмата е на английски и всичко в нея е ясно и без ръководство. Първата стъпка е да създадете профил на конкретен потребител, за да определите звуковите характеристики на думите в неговото изпълнение. Това направих аз - възрастта, държавата и характеристиките на произношението на говорещия са важни. Моят избор е следният: възраст 22–54 години, британски английски, стандартно произношение. Следват няколко прозореца, в които можете да конфигурирате микрофона си. (изображение04)

Следващият етап за сериозни програми за разпознаване на реч е обучение за характеристиките на произношението на конкретен човек. От вас се иска да изберете естеството на текста: моят избор е кратка инструкция за диктовка, но можете също да „поръчате“ хумористична история.

Същността на този етап от работата с програмата е изключително проста - в прозореца се показва текст, над който има жълта стрелка. Когато се произнася правилно, стрелката се движи през фразите, а в долната част има лента за напредъка на тренировката. Доста бях забравил разговорния си английски, така че напредвах трудно. Времето също беше ограничено - компютърът не беше мой и се наложи да прекъсна обучението. Но една приятелка каза, че е направила теста за по-малко от половин час. (изображение05)

Отказвайки да позволя на програмата да адаптира произношението ми, отидох в главния прозорец и стартирах вградения текстов редактор. Той произнесе отделни думи от някои текстове, които намери на компютъра. Програмата отпечата онези думи, които той каза правилно, и замени тези, които каза лошо, с нещо „английско“. След като произнесе ясно командата „изтриване на ред“ на английски, програмата я изпълни. Това означава, че чета командите правилно и програмата ги разпознава без предварително обучение.

Но за мен беше важно как този „дракон“ пише на руски. Както разбрахте от предишното описание, когато обучавате програмата, можете да изберете само английски текст; там просто няма руски. Ясно е, че няма да е възможно да се обучи разпознаването на руска реч. На следващата снимка можете да видите каква фраза е написала програмата при произнасяне на руската дума „Здравей“. (изображение06)

Резултатът от разговора с първия дракон се оказа леко комичен. Ако внимателно прочетете текста на официалния уебсайт, можете да видите английската „специализация“ на този софтуерен продукт. Освен това при зареждане четем „английски“ в прозореца на програмата. Така че защо беше необходимо всичко това? Ясно е, че форумите и слуховете са виновни...

Но има и полезен опит. Една моя приятелка поиска да види състоянието на нейния лаптоп. Някак бавно започна да работи. Това не е изненадващо - системният дял имаше само 5% свободно пространство. Докато изтривах ненужните програми, видях, че официалната версия заема повече от 2,3 GB. Тази цифра ще ни бъде полезна по-късно. (изображение.07)



Разпознаването на руската реч, както се оказа, беше нетривиална задача. В Минск успях да намеря „Горинич“ от приятел. Той дълго търси диска в старите си отломки и според него това е официалната публикация. Програмата се инсталира моментално и разбрах, че нейният речник съдържа 5000 руски думи плюс 100 команди и 600 английски думи плюс 31 команди.

Първо трябва да настроите микрофона, което направих. След това отворих речника и добавих думата "Преглед"защото не беше в речника на програмата. Опитвах се да говоря ясно и монотонно. Накрая отворих програмата Gorynych Pro 3.0, включих режима на диктовка и получих този списък с „близко звучащи думи“. (изображение.09)

Резултатът ме озадачи, защото явно се различаваше в по-лоша посока от работата на смартфон с Android и реших да опитам други програми от “ Онлайн магазин на Google Chrome". И отложих справянето с „гориничните змии“ за по-късно. Мислех, че е така отлаганедействие в оригинален руски дух

5. Гласови възможности на Google

За да работите с глас на обикновен компютър с Windows, ще трябва да инсталирате браузър Google Chrome. Ако го използвате онлайн, можете да щракнете върху връзката към магазина за софтуер долу вдясно. Там напълно безплатно намерих две програми и две разширения за гласово въвеждане на текст. Програмите се наричат "Гласов бележник"И „Voicenot – глас към текст“. След инсталирането те могат да бъдат намерени в раздела "Приложения"вашия браузър "хром". (изобр. 10)

Разширенията се наричат „Горяща дума за гласово търсене на Google (бета) 0.1.0.5“И "Гласово въвеждане на текст - Speechpad.ru 5.4". След инсталирането те могат да бъдат изключени или изтрити в раздела "Разширения".(изобр. 11)

Гласова бележка. В раздела за приложения в браузъра Chrome щракнете двукратно върху иконата на програмата. Ще се отвори диалогов прозорец, както е на снимката по-долу. Щраквайки върху иконата на микрофона, произнасяте кратки фрази в микрофона. Програмата предава вашите думи на сървъра за разпознаване на реч и въвежда текста в прозореца. Всички думи и фрази, показани на илюстрацията, са въведени за първи път. Очевидно този метод работи само когато има активна интернет връзка. (изобр. 12)

Гласов бележник. Ако стартирате програмата от раздела с приложения, ще се отвори нов раздел на интернет страница Speechpad.ru. Има подробни инструкции как да използвате тази услуга и компактна форма. Последното е показано на илюстрацията по-долу. (изобр. 13)

Гласово въвежданеТекстът ви позволява да попълвате текстови полета на интернет страници с гласа си. Например отидох на моята страница "Google+". В полето за въвеждане на ново съобщение щракнете с десния бутон и изберете "SpeechPad". Розовият прозорец за въвеждане показва, че можете да диктувате своя текст. (изобр. 14)

Google гласово търсеневи позволява да търсите с глас. Когато инсталирате и активирате това разширение, в лентата за търсене се появява символ на микрофон. Когато го натиснете, ще се появи символ в голям червен кръг. Просто кажете фразата си за търсене и тя ще се появи в резултатите от търсенето. (изобр. 15)

Важна забележка: За да работи микрофонът с разширенията на Chrome, трябва да разрешите достъп до микрофона в настройките на браузъра си. Той е деактивиран по подразбиране от съображения за сигурност. Отидете на Настройки→Лични данни→Настройки на съдържанието. (За достъп до всички настройки в края на списъка щракнете Показване на разширени настройки). Ще се отвори диалогов прозорец Настройки на съдържанието на страницата. Изберете елемент от списъка Мултимедия→микрофон.

6. Резултати от работата с програми за разпознаване на руска реч

Малък опит в използването на програми за гласово въвеждане на текст показа отлично изпълнение на тази функция на сървърите на интернет компания Google. Без предварителна подготовка думите се разпознават правилно. Това показва, че проблемът с разпознаването на руската реч е решен.

Сега можем да кажем, че резултатът от развитието Googleще бъде нов критерий за оценка на продукти от други производители. Бих искал системата за разпознаване да работи офлайн, без да има достъп до сървърите на компанията - това е по-удобно и по-бързо. Но не е известно кога ще бъде пусната независима програма за работа с непрекъснат поток от руска реч. Струва си да се предположи обаче, че с възможността за обучение това „творение“ ще се превърне в истински пробив.

Програми на руски разработчици "Горинич", "диктограф"И "Битка"Ще навляза в подробности във втората част на това ревю. Тази статия е написана много бавно поради причината, че търсенето на оригинални дискове вече е трудно. В момента вече имам всички версии на руски машини за разпознаване на глас към текст, с изключение на „Combat 2.52“. Никой от моите приятели или колеги няма тази програма, а аз самият имам само няколко похвални отзива във форумите. Вярно, имаше такава странна опция - изтеглете „Combat“ чрез SMS, но не ми харесва. (изображение16)


Кратък видеоклип ще ви покаже как работи разпознаването на реч в смартфон с Android OS. Особеността на гласовото въвеждане е необходимостта да се свържете със сървърите на Google. Ето как трябва да работи вашият Интернет

Този телефон има гласово разпознаванеили гласово въвеждане, но работи само през интернет, свързвайки се с услугите на Google. Но телефонът може да бъде научен да разпознава реч без интернет, ще разгледаме как да активираме разпознаването на руски език в извън линия. За да работи този метод, трябва да имате инсталирани две приложения Гласово търсенеИ Търсене в Google, въпреки че тези програми вече присъстват във фабричния фърмуер.

За фърмуер

Отидете в настройките на телефона си и изберете

Изберете руски език и го изтеглете.

За фърмуер 2.8B

В новия фърмуер елементът от менюто " Офлайн разпознаване на реч" отсъстващ.

Ако сте имали инсталирани офлайн пакети преди актуализацията на фърмуера и не сте изтрили (нулирате настройките) по време на актуализацията, тогава те трябва да са запазени. В противен случай ще трябва да се върнете към фърмуера 2.2 , инсталирайте гласови пакети и едва след това актуализирайте системата до 2.8B.

За Rev.B устройства

Инсталираме актуализацията чрез възстановяване и се наслаждаваме на гласово разпознаване в oyline.

2. Изтеглете базата данни за руска реч и я копирайте на SD картата

Изтеглете Russian_offline.zip 1301

3. Въведете възстановяване, като задържите (Сила на звука + и Вкл.) при изключен телефон.

4. Изберете Прилага актуализация от външна памети изберете изтегления архив.

), използвайки реален Hello World пример за управление на домакински уреди.
Защо домакински уреди? Да, защото благодарение на такъв пример можете да оцените това бързина и точносткоето може да се постигне чрез използване напълно локаленразпознаване на реч без сървъри като Google ASRили Yandex SpeechKit.
Също така прикачвам към статията целия изходен код на програмата и самата сборка за Android.

Защо изведнъж?

След като наскоро се натъкнах на това, попитах автора защо иска да използва сървърно разпознаване на реч за своята програма (според мен това беше ненужно и доведе до някои проблеми). За тази цел мога ли да опиша по-подробно използването на алтернативни методи за проекти, при които няма нужда да разпознавате нищо, а речникът се състои от краен набор от думи. И дори с пример за практическо приложение...

Защо имаме нужда от нещо друго освен Yandex и Google?

За точно това „практическо приложение“ избрах темата гласово управление за интелигентен дом.
Защо точно този пример? Тъй като показва няколко предимства на напълно локалното разпознаване на реч пред разпознаването с помощта на облачни решения. а именно:
  • Скорост- ние не зависим от сървъри и следователно не зависим от тяхната наличност, честотна лента и т.н. фактори
  • точност- нашият двигател работи само с речника, който интересува нашето приложение, като по този начин повишава качеството на разпознаване
  • Цена- не е нужно да плащаме за всяка заявка към сървъра
  • Гласово активиране- като допълнителен бонус към първите точки - можем постоянно да „слушаме предаването“, без да губим трафик и без да натоварваме сървърите

Забележка

Нека направя резервация веднага, че тези предимства могат да се считат за предимства само за определен клас проекти, Къде се намираме знаем със сигурност предварително, с какъв речник и каква граматика ще работи потребителят. Тоест, когато не е необходимо да разпознаваме произволен текст (например SMS съобщение или заявка за търсене). В противен случай разпознаването в облак е незаменимо.

Така че Android може да разпознава речта без интернет!
Да, да... Само в JellyBean. И то само от половин метър, не повече. И това разпознаване е същата диктовка, само че се използва много по-малък модел. Така че ние също не можем да го управляваме или конфигурираме. И какво ще ни върне тя следващия път, не се знае. Въпреки че точно за SMS!

И какво ще правим?

Ще внедрим гласово дистанционно управление за домакински уреди, което ще работи точно и бързо, от няколко метра и дори на евтини, скапани, много евтини Android смартфони, таблети и часовници.
Логиката ще бъде проста, но много практична. Активираме микрофона и произнасяме едно или повече имена на устройства. Приложението ги разпознава и ги включва и изключва в зависимост от текущото състояние. Или пък получава богатство от тях и го произнася с приятен женски глас. Например текущата температура в стаята.

Практически варианти изобилстват

На сутринта, без да отваряте очи, ударихте с длан екрана на смартфона на нощното шкафче и изкомандвахте „Добро утро!“ - започва сценария, кафемашината се включва и бръмчи, чува се приятна музика, завесите се отварят.
Нека окачим евтин (2 хиляди, не повече) смартфон на стената във всяка стая. Прибираме се след работа и командваме в празнотата „Умен дом! Светлини, телевизор! - Не мисля, че има нужда да казвам какво ще се случи след това.

Транскрипции



Граматиката описва какво какво може да каже потребителят. За да знае Pocketsphinx, кактой ще го произнесе, необходимо е за всяка дума от граматиката да пише как звучи в съответния езиков модел. Това е транскрипциявсяка дума. Нарича се речник.

Транскрипциите се описват с помощта на специален синтаксис. Например:
умен uu m n ay j къща d oo m

По принцип нищо сложно. Двойна гласна в транскрипцията показва ударение. Двойната съгласна е мека съгласна, последвана от гласна. Всички възможни комбинации за всички звуци на руския език.

Ясно е, че не можем да опишем предварително всички транскрипции в нашето приложение, тъй като не знаем предварително имената, които потребителят ще даде на своите устройства. Затова ще генерираме такива транскрипции „в движение“ според някои правила на руската фонетика. За да направите това, можете да имплементирате следния клас PhonMapper, който може да получи низ като вход и да генерира правилната транскрипция за него.

Гласово активиране

Това е способността на машината за разпознаване на реч да „слуша предаването“ през цялото време, за да реагира на предварително определена фраза (или фрази). В същото време всички други звуци и реч ще бъдат изхвърлени. Това не е същото като да опишеш граматика и просто да включиш микрофона. Тук няма да представям теорията на тази задача и механиката как работи. Нека само да кажа, че наскоро програмистите, работещи върху Pocketsphinx, внедриха такава функция и сега тя е достъпна извън кутията в API.

Едно нещо определено си струва да се спомене. За фраза за активиране трябва не само да посочите транскрипцията, но и да изберете подходящата прагова стойност на чувствителност. Стойност, която е твърде малка, ще доведе до много фалшиви положителни резултати (това е, когато не сте казали фразата за активиране, но системата я разпознава). И твърде високо - до имунитета. Следователно тази настройка е от особено значение. Приблизителен диапазон от стойности - от 1e-1 до 1e-40 в зависимост от фразата за активиране.

Активиране на сензор за близост

Тази задача е специфична за нашия проект и не е пряко свързана с разпознаването. Кодът може да се види директно в основната дейност.
Тя прилага SensorEventListenerи в момента на приближаване (стойността на сензора е по-малка от максималната) включва таймера, като след известно забавяне проверява дали сензорът все още е блокиран. Това се прави, за да се елиминират фалшивите положителни резултати.
Когато сензорът не е блокиран отново, ние спираме разпознаването, получавайки резултата (вижте описанието по-долу).

Да започнем с разпознаването

Pocketsphinx предоставя удобен API за конфигуриране и стартиране на процеса на разпознаване. Това са класовете SpechRecognizerИ Настройка за разпознаване на реч.
Ето как изглежда конфигурацията и стартирането на разпознаването:

PhonMapper phonMapper = нов PhonMapper(getAssets().open("dict/ru/hotwords")); Граматика граматика = нова граматика (имена, phonMapper); grammar.addWords(гореща дума); DataFiles dataFiles = нови DataFiles(getPackageName(), "ru"); Файл hmmDir = нов файл (dataFiles.getHmm()); Файл dict = нов файл (dataFiles.getDict()); Файл jsgf = нов файл (dataFiles.getJsgf()); copyAssets(hmmDir); saveFile(jsgf, grammar.getJsgf()); saveFile(dict, grammar.getDict()); mRecognizer = SpeechRecognizerSetup.defaultSetup() .setAcousticModel(hmmDir) .setDictionary(dict) .setBoolean("-remove_noise", false) .setKeywordThreshold(1e-7f) .getRecognizer(); mRecognizer.addKeyphraseSearch(KWS_SEARCH, гореща дума); mRecognizer.addGrammarSearch(COMMAND_SEARCH, jsgf);

Тук първо копираме всички необходими файлове на диск (Pocketpshinx изисква акустичен модел, граматика и речник с транскрипции да бъдат на диска). След това се конфигурира самият механизъм за разпознаване. Посочват се пътищата до файловете на модела и речника, както и някои параметри (праг на чувствителност за фразата за активиране). След това се конфигурира пътят до файла с граматиката, както и фразата за активиране.

Както можете да видите от този код, един двигател е конфигуриран както за разпознаване на граматика, така и за активираща фраза. Защо се прави това? За да можем бързо да превключваме между това, което в момента трябва да разпознаем. Ето как изглежда стартирането на процеса на разпознаване на активираща фраза:

MRecognizer.startListening(KWS_SEARCH);
Ето как се разпознава речта според дадена граматика:

MRecognizer.startListening(COMMAND_SEARCH, 3000);
Вторият аргумент (незадължителен) е броят милисекунди, след който разпознаването автоматично ще приключи, ако никой не каже нищо.
Както можете да видите, можете да използвате само един двигател, за да решите и двата проблема.

Как да получите резултата от разпознаването

За да получите резултата от разпознаването, трябва също да посочите слушател на събития, който изпълнява интерфейса RecognitionListener.
Той има няколко метода, които се извикват от pocketsphinx, когато настъпи едно от събитията:
  • onBeginningOfSpeech- двигателят чу някакъв звук, може би беше говор (или може би не)
  • onEndOfSpeech- звукът свършва
  • onPartialResult- има междинни резултати от разпознаването. За фраза за активиране това означава, че е работила. Аргумент Хипотеза
  • onResult- крайният резултат от разпознаването. Този метод ще бъде извикан след извикването на метода Спри сепри Разпознаване на реч. Аргумент Хипотезасъдържа данни за разпознаване (низ и резултат)

Като внедрите методите onPartialResult и onResult по един или друг начин, можете да промените логиката на разпознаване и да получите крайния резултат. Ето как се прави в случая с нашето приложение:

@Override public void onEndOfSpeech() ( Log.d(TAG, "onEndOfSpeech"); if (mRecognizer.getSearchName().equals(COMMAND_SEARCH)) ( mRecognizer.stop(); ) ) @Override public void onPartialResult(Хипотеза за хипотеза) ( if (hypothesis == null) return; String text = hypothesis.getHypstr(); if (KWS_SEARCH.equals(mRecognizer.getSearchName())) ( startRecognition(); ) else ( Log.d(TAG, text); ) ) @Override public void onResult(Hypothesis hypothesis) ( mMicView.setBackgroundResource(R.drawable.background_big_mic); mHandler.removeCallbacks(mStopRecognitionCallback); String text = hypothesis != null ? hypothesis.getHypstr() : null; Log.d(TAG) , "onResult " + текст); if (COMMAND_SEARCH.equals(mRecognizer.getSearchName())) ( if (text != null) ( Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); process(text ); mRecognizer.startListening(KWS_SEARCH);

Когато получим събитието onEndOfSpeech и ако в същото време разпознаем командата за изпълнение, тогава трябва да спрем разпознаването, след което незабавно ще бъде извикана onResult.
OnResult трябва да провери какво току-що е разпознато. Ако това е команда, тогава трябва да я стартирате за изпълнение и да превключите двигателя, за да разпознае фразата за активиране.
В onPartialResult се интересуваме само от разпознаването на фразата за активиране. Ако го открием, веднага започваме процеса на разпознаване на командата. Ето как изглежда:

Private synchronized void startRecognition() ( if (mRecognizer == null || COMMAND_SEARCH.equals(mRecognizer.getSearchName())) return; mRecognizer.cancel(); new ToneGenerator(AudioManager.STREAM_MUSIC, ToneGenerator.MAX_VOLUME).startTone(ToneGenerator. TONE_CDMA_PIP, 200); post(400, new Runnable() ( @Override public void run() ( mMicView.setBackgroundResource(R.drawable.background_big_mic_green); mRecognizer.startListing(COMMAND_SEARCH, 3000); Log.d(TAG, "Listen команди"); post(4000, mStopRecognitionCallback); ) )); )
Тук първо пускаме малък сигнал, за да уведомим потребителя, че сме го чули и сме готови за неговата команда. През това време микрофонът трябва да е изключен. Затова започваме разпознаването след кратък таймаут (малко по-дълъг от продължителността на сигнала, за да не чуваме ехото му). Той също така стартира нишка, която принудително ще спре разпознаването, ако потребителят говори твърде дълго. В този случай това е 3 секунди.

Как да превърнете разпознатия низ в команди

Е, всичко тук е специфично за конкретно приложение. В случая с голия пример, ние просто изваждаме имената на устройствата от реда, търсим желаното устройство и или променяме състоянието му, като използваме HTTP заявка към контролера за интелигентен дом, или докладваме текущото му състояние (както в случая с термостат). Тази логика може да се види в класа Controller.

Как да синтезираме речта

Синтезът на речта е обратна операция на разпознаването. Тук е обратното - трябва да превърнете ред текст в реч, така че потребителят да може да го чуе.
В случая с термостата, трябва да накараме нашето Android устройство да изговаря текущата температура. Използване на API TextToSpeechтова е доста лесно да се направи (благодаря на Google за прекрасния женски TTS за руски език):

Private void speak(String text) ( synchronized (mSpeechQueue) ( ​​​​mRecognizer.stop(); mSpeechQueue.add(text); HashMap параметри = нова HashMap (2); params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, UUID.randomUUID().toString()); params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC)); params.put(TextToSpeech.Engine.KEY_FEATURE_NETWORK_SYNTHESIS, "true"); mTextToSpeech.speak(текст, TextToSpeech.QUEUE_ADD, параметри); ) )

Сигурно ще кажа нещо банално, но преди процеса на синтез е необходимо да деактивирате разпознаването. На някои устройства (например всички устройства на Samsung) обикновено е невъзможно да слушате микрофона и да синтезирате нещо едновременно.
Краят на синтеза на реч (т.е. краят на процеса на изговаряне на текст от синтезатор) може да бъде проследен в слушателя:

Private final TextToSpeech.OnUtteranceCompletedListener mUtteranceCompletedListener = new TextToSpeech.OnUtteranceCompletedListener() ( @Override public void onUtteranceCompleted(String utteranceId) ( synchronized (mSpeechQueue) ( ​​​​mSpeechQueue.poll(); if (mSpeechQueu e.isEmpty()) ( mRecognizer.startListening ( KWS_SEARCH) ; ) ) );

В него просто проверяваме дали има нещо друго в опашката за синтез и активираме разпознаването на фраза за активиране, ако няма нищо друго.

И всичко е?

да Както можете да видите, бързото и ефективно разпознаване на реч директно на устройството изобщо не е трудно, благодарение на наличието на такива прекрасни проекти като Pocketsphinx. Той предоставя много удобен API, който може да се използва при решаване на проблеми, свързани с разпознаването на гласови команди.

В този пример сме прикрепили разпознаване към напълно конкретна задача - гласово управление на умни домашни устройства. Благодарение на локалното разпознаване постигнахме много висока скорост и минимизирахме грешките.
Ясно е, че същият код може да се използва за други задачи, свързани с гласа. Не е задължително да е умен дом.

  • гласов контрол
  • гласов двигател
  • Добави тагове

    Никоя програма не може напълно да замени ръчната работа по транскрибиране на записана реч. Има обаче решения, които могат значително да ускорят и улеснят превода на реч в текст, тоест да опростят транскрипцията.

    Транскрипцията е запис на аудио или видео файл в текстова форма. В интернет има платени платени задачи, когато на изпълнителя се плаща определена сума пари за транскрибиране на текста.

    Преводът на реч към текст е полезен

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

    Ще опишем най-ефективните инструменти, налични на компютри, мобилни приложения и онлайн услуги.

    1 Уебсайт speakpad.ru

    Това е онлайн услуга, която ви позволява да превеждате реч в текст с помощта на браузъра Google Chrome. Услугата работи с микрофон и готови файлове. Разбира се, качеството ще бъде много по-високо, ако използвате външен микрофон и диктувате сами. Услугата обаче върши добра работа дори с видеоклипове в YouTube.

    Кликнете върху „Активиране на запис“, отговорете на въпроса за „Използване на микрофон“ - за да направите това, щракнете върху „Разрешаване“.

    Дългите инструкции за използване на услугата могат да бъдат свити, като щракнете върху бутон 1 на фиг. 3. Можете да се отървете от рекламата, като завършите проста регистрация.

    Ориз. 3. Услуга за говорна клавиатура

    Готовият резултат е лесен за редактиране. За да направите това, трябва или ръчно да коригирате маркираната дума, или да я продиктувате отново. Резултатите от работата се запазват във вашия личен акаунт, те също могат да бъдат изтеглени на вашия компютър.

    Списък с видео уроци за работа с речта:

    Можете да транскрибирате видеоклипове от Youtube или от вашия компютър, но ще ви трябва миксер, повече подробности:

    Видео "аудио транскрипция"

    Услугата работи на седем езика. Има малък минус. Това се крие във факта, че ако трябва да транскрибирате готов аудио файл, тогава неговият звук се чува през високоговорителите, което създава допълнителни смущения под формата на ехо.

    2 Услуга dictation.io

    Прекрасна онлайн услуга, която ви позволява да превеждате реч в текст безплатно и лесно.

    Ориз. 4. Услуга dictation.io

    1 на фиг. 4 – руски език може да бъде избран в края на страницата. В браузъра Google Chrome езикът е избран, но по някаква причина в Mozilla няма такава опция.

    Трябва да се отбележи, че е въведена възможност за автоматично запазване на готовия резултат. Това ще предотврати случайно изтриване в резултат на затваряне на раздел или браузър. Тази услуга не разпознава готови файлове. Работи с микрофон. Трябва да назовавате препинателните знаци, когато диктувате.

    Текстът се разпознава съвсем коректно, няма правописни грешки. Можете сами да вмъквате препинателни знаци от клавиатурата. Готовият резултат може да бъде запазен на вашия компютър.

    3 RealSpeaker

    Тази програма ви позволява лесно да превеждате човешка реч в текст. Предназначен е да работи на различни системи: Windows, Android, Linux, Mac. С негова помощ можете да конвертирате чутата реч в микрофон (например може да бъде вграден в лаптоп), както и да записвате в аудио файлове.

    Разбира 13 световни езика. Има бета версия на програмата, която работи като онлайн услуга:

    Трябва да следвате връзката по-горе, да изберете руски език, да качите своя аудио или видео файл в онлайн услугата и да платите за неговата транскрипция. След транскрипцията можете да копирате получения текст. Колкото по-голям е файлът за транскрипция, толкова повече време ще отнеме обработката му, повече подробности:

    През 2017 г. имаше опция за безплатна транскрипция с помощта на RealSpeaker, но през 2018 г. няма такава опция. Много е объркващо, че транскрибираният файл е достъпен за изтегляне от всички потребители, може би това ще бъде подобрено.

    Контактите на разработчика (VKontakte, Facebook, Youtube, Twitter, имейл, телефон) на програмата могат да бъдат намерени на страницата на неговия уебсайт (по-точно в долния колонтитул на сайта):

    4 Speechlogger

    Алтернатива на предишното приложение за мобилни устройства, работещи на Android. Предлага се безплатно в магазина за приложения:

    Текстът се редактира автоматично и се добавят препинателни знаци. Много удобен за диктуване на бележки на себе си или съставяне на списъци. В резултат на това текстът ще бъде с много прилично качество.

    5 Драконови диктовки

    Това е приложение, което се разпространява безплатно за мобилни устройства от Apple.

    Програмата може да работи с 15 езика. Тя ви позволява да редактирате резултата и да изберете желаните думи от списъка. Трябва ясно да произнасяте всички звуци, да не правите ненужни паузи и да избягвате интонацията. Понякога има грешки в окончанията на думите.

    Приложението Dragon Dictation се използва от собствениците, например, за да диктуват списък за пазаруване в магазин, докато се движат из апартамента. Когато стигна там, мога да гледам текста в бележката и не е нужно да слушам.

    Каквато и програма да използвате в практиката си, бъдете готови да проверите отново резултатите и да направите определени корекции. Това е единственият начин да получите безупречен текст без грешки.

    Също полезни услуги:

    Получавайте най-новите статии за компютърна грамотност директно във входящата си поща.
    Вече повече 3000 абонати

    .

     


    Прочети:



    Какво е SSD и как да го инсталирате?

    Какво е SSD и как да го инсталирате?

    Производителността и продължителността на живота на SSD зависят основно от NAND флаш паметта и фърмуера на контролера. Те са основните компоненти...

    Как да поставите ударение върху буква в Word

    Как да поставите ударение върху буква в Word

    Когато работите в Word, един ден ще трябва да се сблъскате с необходимостта да добавите знак за ударение. Можете, разбира се, да подчертаете ударената гласна с удебелен шрифт...

    Как да конвертирате изображения в PNG формат?

    Как да конвертирате изображения в PNG формат?

    Форматът на изображението JPG има по-високо съотношение на компресия от PNG и следователно изображенията с това разширение имат по-малко тегло. За да се намали...

    Технически проблеми и техните решения v

    Технически проблеми и техните решения v

    Браво, надявам се да помогне. Blockhead наистина остава установен от дните на OCO... Добрите учени по знание са в близък контакт с Вселената....

    feed-image RSS