Голосове управління медиацентром

Мабуть, мрія всіх письменників-фантастів з моменту виникнення наукової фантастики як такої — голосове управління управління комп'ютером. Що ще, як не живий діалог з комп'ютером, дозволяє імітувати наявність у останнього искуственного інтелекту і дає підстави розраховувати на те, що кавомолки рано чи пізно зійдуть з розуму, захоплять світ і посадять нікчемних людців в матрицю?
 
Перші спроби реалізувати розпізнавання мови відбувалися ще в середині минулого століття, а з поширенням персональних комп'ютерів природним виявилося бажання використовувати для цього процесу їх потужності. Пам'ятається, років 15 тому вже існували програми для Windows, що дозволяли створювати макроси, відповідні голосовим командам. З їх допомогою я валив гостей в священний трепет, коли у відповідь на прохання пройти на три букви Windows завершувала роботу і поступалася місцем класичної написи «тепер живлення комп'ютера можна відключити». В основі роботи цих програм лежало порівняння прийнятих команд із записаними заздалегідь. Порівняння це відбувалося за допомогою аналізу звукових хвиль, а мінус даного підходу очевидна — команди треба вимовляти з однією і тією ж інтонацією і, бажано, в одному і тому ж стані свідомості.
 
 image
 Картинка за запитом «голосове управління комп'ютером». Харрісон Форд як би говорить нам «enhance 34 to 36», що б це не означало…
 
Більш логічний підхід — аналіз фонетичних особливостей виголошеній фрази і спроба зіставити кожне з слів зі словником, що знижує вплив на результат розпізнавання таких особливостей, як манера мови і навіть деякі «Фефекти фікції». Так як же якісно розпізнати російську мову? Першим на думку спадає Google, що надає відповідний API. Деякі навіть цілком вдало інтегрують використання даного API в свій «розумний дім» — скрипт відправляє корпорації добра кожну почуту фразу, після чого намагається порівняти розпізнаний текст з одного із заданих команд. Природно, цей варіант я відразу відкинув, інакше доведеться відключати систему щоразу, коли мені треба буде обговорити як краще позбутися трупа. Більше того, невідомо скільки триватиме ця халява і чи не вирішить Google раптово заблокувати цей сервіс.
 
Тому, коли я одного разу зрозумів, що хочу розмовляти зі своїм HTPC, я звернувся до оффлайновим системам розпізнавання. Почав я з однією з найпопулярніших — CMU Sphinx . Першою фразою, яку я знову і знову намагався донести до неї, була «включи світло!». Надаю лог мого тестування:
 
 
рай
розмірковуючи
і вміє випити пінту
тоді нагорі трупа досвіду
правда ніс горілкою світу
знову і знову
той факт
п'ять
про це
спершу це ранок
ось тут
 
Тобто, як генератор текстів пісень для Земфіри, може, і зійде, але для повноцінного використання не годиться. Адаптація акустичної моделі та обмеження словника не надто поліпшили ситуацію.
 
У цей момент, я прийшов до висновку, що поки що самий осудний спосіб організувати голосове управління — це вести переговори з бездушною залізякою на мові найбільш передбачуваного супротивника. Не секрет, що англійська мова простіше російського в багатьох відносинах, у тому числі і фонетично, що для нас особливо важливо. А необхідний для розпізнавання англійської мови функціонал вже присутня в останніх версіях Windows. «Дозвольте, але ми оксфордів не кінчали! »- Заперечить хтось із читачів. І правильно робили. Воронезький будівельний технікум набагато краще підготує до життя в реальному світі. А наявність ідеального прононсу, як з'ясувалося, зовсім не потрібно. Якщо комп'ютери майбутнього розуміють навіть невиразний бубнеж Харрісона Форда, то чим ми гірші? Наприклад, мій акцент являє собою суміш Бората і якого-небудь божевільного російського генерала з голлівудського треш-фільму, в чому можна переконатися, подивившись відео нижче. Я навіть не полінувався зробити субтитри, тому що сам насилу розумію, що я там несу.
 
  
 

Як це працює?

У якості «прокладки» між користувачем і Windows Speech Recognition використовується продукт під назвою VoxCommando (~ 27 $). Ця програма використовуючи засоби Windows розпізнає фразу і порівнює її з командами, заданими користувачем. Завдяки обмеженню словника, точність розпізнавання близька до 100%.
 
До VoxCommando додається велика кількість корисних плагінів, в тому числі і для XBMC, який був мені особливо цікавий. Крім XBMC-плагіна, також заслуговують на увагу:
 
     
плагін для EventGhost — використовую для відправки IR-сигналів управління телевізором і приймачем.
 плагін довільних HTTP-запитів — звертаюся до API яндексовского перекладача, того самого, який переклав «snake scale» як «змія масштабу».
 також є плагіни для Vera і X10, що дозволяють управляти домашньої автоматизацією, наприклад, освітленням.
 
 image
 Налаштування голосових команд. Ліве вікно — список команд і відповідні їм фрази і їх варіації. Праве — редактор поточної команди зі списком необхідних дій (в даному випадку — звернення до XBMC з використанням JSON-RPC API).
 
VoxCommando дозволяє використовувати Text-to-Speech-движки, встановлені в системі, тому можна спробувати організувати повноцінний діалог з машиною. Я на цьому уваги не загострював, тільки лише навчив панночку відповідати «I am» на запитання «Who's your daddy?» І на цьому заспокоївся.
 
 

Мікрофон

Ще одне важливе питання — вибір мікрофона. Тим, хто коли-небудь стикався з розпізнаванням мови, відомо, що найкраще для цього підходить головна гарнітура. Але віддавати накази штучному інтелекту, начепивши на голову купу дротів і пластмаси, якось жодного разу не кіберпанково — в будь-якому фантастичному фільмі вас за таке засміють. Деякі досить успішно використовують Kinect або таку штуку, як The Voice Tracker , але у цих девайсів достатньо недоліків — досить сильно обмежена дальність якісного сприйняття мови, висока залежність від фонових шумів, помилкові спрацьовування від відтвореного в даний момент контенту. Цілком можлива ситуація, коли головний герой небудь мелодрами під час освідчення в коханні випадково виголосить назву музичного альбому в стилі порно-грайнд, а медіацентр сприйме це як недвозначний сигнал, що пора доторкнутися до прекрасного.
 
У пошуках вирішення цієї проблеми я наткнувся на Amulet Remote . З вигляду це звичайний MCE-пульт, але крім інфрачервоного передавача він містить в собі ще й бездротової мікрофон, активуються при приведенні пристрою в вертикальне положення.
 
 image
 Amulet Remote. При приведенні пристрою в вертикальне положення логотип на пульті загоряється червоним, натякаючи на те, що він хоче спілкуватися.
 
Незважаючи на деякі недоробки (невелика в порівнянні зі звичайними пультами час автономної роботи і проблеми з обучаемостью), думаю, це найвдаліший пристрій для голосового управління HTPC на даний момент. Зараз Amulet Remote пропонується за 69 доларів, але так як виробник висилає свою продукцію тільки в США, для доставки доведеться скористатися послугами компанії-посередника. Якість розпізнавання з використанням Amulet Remote на дуже високому рівні, та воно й не дивно — пристрій розроблено в Ірландії і, по всій видимості, пройшло жорстке стрес-тестування ірландським акцентом.
 
 

Висновок

Описаний вище варіант цілком можна використовувати не тільки для того, щоб контролювати медіацентр, а й для управління різними системами «розумного будинку», а також для більшості інших завдань, що вимагають автоматизації, будь то звернення до якомусь веб-сервісу, запуск програми або відправка ІК -сигналу. Наприклад, за допомогою голосової команди можна дізнатися погоду або включити кондиціонер. Хіба що за пивом послати поки не вийде, але будемо сподіватися на подальші кроки технічного прогресу в цьому напрямку.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.