Как се прави разпознаване на реч. Най-добрата програма за разпознаване на руска реч

Услугата SendPulse е маркетингов инструмент за създаване на абонаментна база и превръщане на случайни посетители на вашия сайт в редовни. SendPulse комбинира най-важните функции за привличане и задържане на клиенти на една платформа:
● имейл бюлетини,
● web-push,
● SMS съобщения,
● SMTP,
● писма във Viber,
● изпращайте съобщения до facebook messenger.

Бюлетини по имейл

Можете да използвате различни тарифи за изпращане на имейл бюлетини, включително безплатни. Безплатният план има ограничения: абонаментната база е не повече от 2500.
Първото нещо, с което трябва да започнете, когато работите с услуга за изпращане на имейли, е да създадете своя собствена адресна книга. Задайте заглавие и качете списък с имейл адреси.


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


При създаване на абонаментни форми е задължително използването на e-mail с корпоративен домейн. Прочетете как.
Шаблони за съобщенияще ви помогне да оформите красиво вашите писма до абонатите. Можете да създадете свой собствен шаблон за писмо в специален конструктор.


Автоматични пощи. Мениджърите на съдържание активно използват автоматичното разпространение. Помага за автоматизиране на процеса на работа с клиенти. Има няколко начина за създаване на автоматична поща:
Последователна серия от букви. Това е най-простият вариант, когато, независимо от условията, са написани няколко писма, които ще бъдат изпратени до получателите в определен ред. Тук може да има опции - серия от съобщения(обикновена верига от съобщения), специална дата(писмата са насрочени за определени дати), задействащо писмо- писмото се изпраща в зависимост от действията на абоната (отваряне на съобщението и др.).
Автоматизация360– мейлинг с определени филтри и условия, както и отчитане на конверсиите.
Готови веригипо шаблон. Можете да създадете поредица от букви въз основа на даден шаблон или да промените шаблона и да го персонализирате, за да отговаря на вашите нужди.
A/B тестванеще ви помогне да експериментирате с различни опции за изпращане на поредица от имейли и да определите най-добрата опция за отваряния или преходи.

Изпращане на насочени известия

Push-mailing е абонамент в прозорец на браузъра, това е вид заместител на rss абонаментите. Web-push технологиите бързо навлязоха в живота ни и вече е трудно да се намери сайт, който да не използва push писма за привличане и задържане на клиенти. Заявете скрипт за , можете да изпращате имейли както ръчно, така и да създавате автоматично излъчване, като създавате поредица от имейли или събирате данни от RSS. Вторият вариант предполага, че след появата на нова статия на вашия сайт, известие за това ще бъде автоматично изпратено до вашите абонати с кратко съобщение.


Ново от Изпратипулс– сега можете да монетизирате сайта си с насочени известия, като вградите реклами в тях. При достигане на $10, всеки понеделник се извършват плащания към една от платежните системи - Visa / mastercard, PayPal или Webmoney.
Push съобщенията в услугата са напълно безплатни. Плащането се приема само за White Label - изпращания без споменаване на услугата SendPulse, но ако логото на услугата не ви притеснява, тогава можете да използвате насочени известия безплатно без ограничения.

SMTP

Функцията SMTP защитава вашия пощенски списък от попадане в черен списък чрез използване на бели IP адреси. Технологиите за криптографски подпис DKIM и SPF, използвани в изпращанията на SendPulse, повишават достоверността на имейлите, които изпращате, което прави по-малко вероятно имейлите ви да попаднат в спам или в черен списък.

Facebook messenger ботове

Facebook chatbot е в бета тестване. Можете да го свържете към вашата страница и да изпращате съобщения до абонатите.

Изпращане на SMS

Чрез услугата SendPulse е лесно да изпращате имейли до база данни с телефонни номера. Първо трябва да създадете адресна книга със списък с телефонни номера. За да направите това, изберете секцията "Адресна книга", създайте нова адресна книга, качете телефонни номера. Сега можете да създадете списък с имейли за SMS за тази база данни. Цената на изпращането на SMS варира в зависимост от телекомуникационните оператори на получателите и е средно от 1,26 рубли до 2,55 рубли за 1 изпратен SMS.

партньорска програма

SendPulse прилага партньорска програма, в която регистриран потребител, използващ вашата връзка, който е платил тарифата, ще ви донесе 4000 рубли. Поканеният потребител получава отстъпка от 4000 рубли за първите 5 месеца от използването на услугата.

Телефонен надпис за глухи и хора с увреден слух

Превърнете екрана си в страхотна горна част на телефона. Това е напълно автоматично, без човешки слух-машинописци, които да въвеждат вашите разговори. На бабите и дядовците ви е трудно да чуват семейството и приятелите си по телефона? Включете им Speechlogger и спрете да крещите по телефона. Просто свържете аудио изхода на вашия телефон към аудио входа на вашия компютър и стартирайте Speechlogger. Също така е полезно при взаимодействие лице в лице.

Автоматична транскрипция

Записахте ли интервюто? Спестете малко време, като го пренапишете от автоматичния говор на Google в текста, пренесен във вашия браузър от Speechlogger. Пуснете записаното интервю в микрофона (или линията) на вашия компютър и оставете на речелога да направи транскрипцията. Speechlogger запазва транскрипцията на текста заедно с датата, часа и вашите коментари. Освен това ви позволява да редактирате текст. Телефонните разговори могат да бъдат транскрибирани по същия начин. Можете също да записвате аудио файлове директно от вашия компютър, както е описано по-долу.

Автоматичен преводач и преводач

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

Научете чужди езици и подобрете уменията си за произношение

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

Генериране на филмови субтитри

Speechlogger може автоматично да записва филми или други звукови файлове. След това вземете файла и го преведете автоматично на всеки език, за да създадете международни субтитри.

Диктувайте вместо да пишете

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

Забавна игра :)

Можете ли да имитирате китайски говорител? Френски? Ами руски? Опитайте се да имитирате чужд език и вижте какво току-що казахте със Speechlogger. Използвайте симултантния превод на Speechlogger, за да разберете какво казахте току-що. Получете невероятни резултати - това е много забавно!

Във Фейсбук ни попитаха:
„За да работя с текста, трябва да транскрибирам 3 часа гласов запис. Опитах се да кача аудио файл със снимка в YouTube и да използвам техния текстов транскрибер, но се получава някаква абракадабра. Можете ли да ми кажете как да реша това технически? Благодаря ти!
Александър Коновалов»

Александър, има просто техническо решение - но резултатът ще зависи единствено от качеството на вашия запис. Нека обясня за какво качество говоря.

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

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

Лесно е да се придържате към тези условия, ако вместо директен достъп до интернет услугата за разпознаване на реч използвате диктофон като междинно устройство-посредник. Между другото, такъв "личен секретар" е особено необходим, когато нямате достъп до онлайн. Естествено, по-добре е да използвате поне евтин професионален диктофон, отколкото записващо устройство, вградено в евтин mp3 плейър или смартфон. Това ще даде много по-голям шанс за "захранване" на получените записи към услугата за разпознаване на реч.

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

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

Да се ​​надяваме, че качеството на вашия диктофонен запис е достатъчно високо, за да можете да го дешифрирате автоматичен режим.

Ако не, с почти всяко качество на запис можете да дешифрирате полуавтоматичен режим.

Освен това в редица ситуации най-големите спестявания на време и усилия ще ви донесат, парадоксално, декодирането в ръчно управление. По-точно версията, която аз самият използвам от дузина години. 🙂

И така, по ред.

1. Автоматично разпознаване на реч

Много съветват транскрибиране на гласови записи в YouTube. Но този метод принуждава потребителя да отдели време за изтегляне на аудио файла и фоновото изображение и след това да изчисти получения текст от времеви клейма. Междувременно това време е лесно за спестяване. 🙂

Можете да разпознавате аудиозаписи директно от вашия компютър, като използвате възможностите на една от интернет услугите, поддържани от системата за разпознаване на Google (препоръчвам Speechpad.ru или Speechlogger.com). Всичко, което трябва да направите, е да направите малък трик: вместо гласът ви да се възпроизвежда от микрофона, пренасочете аудио потока, възпроизвеждан от вашия компютърен плейър, към услугата.

Този трик се нарича софтуерен стерео миксер (обикновено се използва за запис на музика на компютър или за излъчването й от компютър към интернет).

Стерео миксерът беше част от Windows XP - но беше премахнат от разработчиците от по-късните версии на тази операционна система (те казват, за да защитят авторските права: така че геймърите да не крадат музика от игри и т.н.). Въпреки това не е необичайно стерео миксерът да се доставя с драйвери за аудио карти (например Realtec карти, вградени в дънната платка). Ако не можете да намерите стерео миксера на компютъра си с помощта на екранните снимки по-долу, опитайте да преинсталирате аудио драйверите от компактдиска, доставен с вашата дънна платка, или от уебсайта на производителя на дънната платка.

Ако това не помогне, инсталирайте алтернативна програма на вашия компютър. Например - безплатно VB-CABLE Virtual Audio Device : собственикът на гореспоменатата услуга Speechpad.ru препоръчва използването му.

първа стъпкатрябва да деактивирате микрофона за използване в режим на запис и вместо това да активирате стерео миксера (или виртуалния VB-CABLE).

За да направите това, щракнете върху иконата на високоговорителя в долния десен ъгъл (близо до часовника) - или изберете секцията "Звук" в "Контролен панел". В раздела „Запис“ на прозореца, който се отваря, щракнете с десния бутон и поставете отметки в квадратчетата до елементите „Показване на изключените устройства“ и „Показване на изключените устройства“. Щракнете с десния бутон върху иконата на микрофона и изберете „Изключване на звука“ (по принцип изключете всички устройства, маркирани със зелена икона).

Щракнете с десния бутон върху иконата на стерео миксера и изберете „Активиране“. На иконата ще се появи зелена икона, което показва, че стерео миксерът е станал устройството по подразбиране.

Ако решите да използвате VB-CABLE, активирайте го по същия начин в раздела "Запис".

И също така - в раздела "Възпроизвеждане".

Втора стъпка.Включете аудиозаписа във всеки плейър (ако трябва да дешифрирате аудиозаписа на видеото, можете също да стартирате видеоплейъра). В същото време заредете услугата Speechpad.ru в браузъра Chrome и щракнете върху бутона „Активиране на запис“ в него. Ако записът е с достатъчно високо качество, ще видите как услугата превръща речта в смислен и близък до оригинала текст пред очите ви. Вярно, без препинателни знаци, които ще трябва да подредите сами.

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

2. Полуавтоматично разпознаване на реч

Тук всичко е просто. Ако записът е с лошо качество и разпознаването се „задави“ или услугата генерира твърде много грешки, помогнете сами на причината, като „вградите“ във веригата: „аудио плейър - диктор - система за разпознаване“.

Вашата задача е да слушате записаната реч в слушалките и едновременно с това да я диктувате през микрофона на услугата за разпознаване в Интернет. (Разбира се, не е необходимо да превключвате от микрофон към стерео миксер или виртуален кабел в списъка със записващи устройства, както в предишния раздел). И като алтернатива на интернет услугите, споменати по-горе, можете да използвате приложения за смартфон като безплатния Yandex.Dictation или функцията за диктовка на iPhone с iOS 8 и по-нова версия.

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

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

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

3. Ръчна транскрипция на диктофон

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

Във всички тези случаи моят собствен метод за ръчно декодиране ще ви помогне (слушайте записа в AIMP - въведете в Word). С него можете да превърнете бележка в текст по-бързо от много професионални журналисти, чиято скорост на писане е подобна на вашата! В същото време ще изразходвате много по-малко енергия и нерви от тях. 🙂

Каква е основната причина за загуба на енергия и време при транскрипция на аудиозаписи по традиционния начин? Поради факта, че потребителят прави много ненужни движения.

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

Използването на обикновен софтуерен плейър на компютър прави процеса малко по-лесен: потребителят трябва постоянно да минимизира/разгъва Word, да спира/стартира плейъра и дори да пълзи напред-назад с плъзгача на плейъра, за да намери нечетлив фрагмент, и след това да се върне до последното слушано място в записа.

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

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

Тествах десетки аудио програми по мое време - и намерих само две достъпни платени приложения, които отговарят на тези изисквания. Имам един от тях. Потърсих още малко за моите скъпи читатели 🙂 - и намерих прекрасно безплатно решение - плейърът AIMP, който аз все още използвам.

„След като въведете настройките на AIMP, намерете секцията Глобални ключове и преконфигурирайте Stop/Start към клавиша Escape (Esc). Повярвайте ми, това е най-удобното, защото не е нужно да мислите за това и пръстът ви няма да падне случайно върху други клавиши. Задайте елементите „Преместване малко назад“ и „Преместване малко напред“ съответно на клавишите Ctrl + назад/напред (имате четири клавиша със стрелки на клавиатурата - изберете два от тях). Тази функция е необходима, за да слушате отново последния фрагмент или да прескочите малко напред.

След това, като извикате EQ, можете да намалите стойностите на Velocity и Tempo - и да увеличите стойността на Pitch. В този случай ще забележите, че скоростта на възпроизвеждане ще се забави, но височината на гласа (ако сте избрали добре стойността „Pitch“) няма да се промени. Изберете тези два параметъра, така че да имате време да пишете почти едновременно, като само от време на време го спирате.

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

Мога само да добавя към казаното, че ако записът не е с много високо качество, можете да опитате да подобрите възпроизвеждането му, като експериментирате с други настройки в Sound Effects Manager на AIMP.

И броят секунди, за които ще ви бъде най-удобно да се движите назад или напред през записа с помощта на горещи клавиши - задайте в секцията „Плейър“ на прозореца „Настройки“ (който може да бъде извикан чрез натискане на горещите клавиши „Ctrl + P“).

Пожелавам ви да спестите повече време за рутинни задачи - и да го използвате ползотворно за основните неща! 🙂 И не забравяйте да включите микрофона в списъка със записващи устройства, когато ще говорите по Skype! 😉

3 начина за транскрибиране на гласов запис: разпознаване на реч, диктовка, ръчен режим

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

) на реален 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) обикновено е невъзможно да слушате микрофон и да синтезирате нещо едновременно.
Краят на синтеза на речта (т.е. краят на процеса на изговаряне на текста от синтезатора) може да бъде проследен в слушателя:

Частен окончателен TextToSpeech.OnUtteranceCompletedListener mUtteranceCompletedListener = нов TextToSpeech.OnUtteranceCompletedListener() ( @Override public void onUtteranceCompleted(String utteranceId) ( синхронизиран (mSpeechQueue) ( ​​​​mSpeechQueue.poll(); if (mSpeechQueue.poll(); if (mSpeechQueue.poll(); if (mSpeechQueue.poll()) (mSpeechQueuecoRecoue.is KWS_SEARCH) ; ) ) ) );

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

И всичко е?

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

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