Укротяване на Сфинкса, част 2 Практическо прилагане на разпознаването на реч
Съдържанието на статията
В предишните две части на нашия преглед описахме модерни системи за разпознаване на реч за Linux и се опитахме да инсталираме и конфигурираме една от тях - CMU Sphinx. В последната част ще се опитаме да използваме нашите разработки на практика, като завием двигателя Pocketsphinx към устройство с Android и интелигентен домашен контролер. Струва си да предупредите веднага - за извършване на всички стъпки, описани по-долу, са необходими основни познания по Java.
Хардуер и софтуер
Веднага трябва да се отбележи, че предимствата могат да се считат за такива само като се вземат предвид спецификите на оборудването (например телевизор). Трябва също така да разберете, че в този случай ще имаме строго определен речник и граматика. За произволно разпознаване на текст (например за въвеждане на SMS съобщение или заявка за търсене) е по-добре да използвате онлайн метода.
Задачата е да се създаде гласово дистанционно управление за технология, която работи бързо и точно от разстояние от няколко метра, което при необходимост се активира с глас и работи дори на евтини Android устройства с остарели версии на мобилната ОС. На практика това изглежда така: микрофонът се активира с глас, след което се произнася името на желаното устройство (в нашия случай телевизорът). Приложението Veravoice разпознава гласа и включва или изключва нашите устройства в зависимост от текущото им състояние. Също така, приложението може да получава статус и допълнителна информация от устройства, като прогноза за времето или новини.
Pocketsphinx също е добър, защото неговите източници са отворени и поддържа гласово активиране, както се казва, „извън кутията“. Микрофонът ще се активира или чрез глас, или чрез щракване върху иконата на микрофона, или просто чрез докосване с ръкаекран. Екранът може да е напълно изключен.
Pocketsphinx може също да работи със статистически езиков модел за разпознаване на спонтанна реч. Но ние не се нуждаем от това: граматиката на нашите заявки ще се състои само от имена на устройства. След разпознаване Pocketsphinx ще ни върне редовен ред текст, където устройствата ще вървят едно след друго:
Знакът плюс означава, че потребителят може да назове не едно, а няколко устройства подред. Veravoice получава списък с устройства от интелигентния домашен контролер (вижте по-долу) и генерира такава граматика в класа Grammar. Граматиката е КАКВО може да каже потребителят. За да научите Pocketsphinx КАК да произнася нещо, трябва да го обучите да разбира правилно произношението на думите. Транскрипцията ще ни помогне с това. Нарича се речник. Транскрипциите се описват с помощта на специален синтаксис. Пример:
Транскрипцията е много важна част от целия процесДействителният процес
Да научите машина за разпознаване на реч да „слуша въздуха“ през цялото време и да чака предварително дефинирана фраза (или фрази) да бъде изречена, като същевременно филтрира всички други звуци и реч, не е същото като описването на граматиката и простото включване на микрофона.