вторник, 10 июля 2012 г.

Умный дом. Учим Linux слушать и говорить.

Иногда хочется зайти домой, сразу завалиться на диван, сказать: "Музыка!", и чтобы все сразу завелось, заиграло. Или узнать погоду на ближайшее время одним словом, не выходя в интернет и никуда не заглядывая... Да и много вещей хотелось бы автоматизировать таким образом...

Есть множество open sourse движков по распознаванию речи(по-моему мнению лучший - sphinx), но все они либо ужасны в настройке, либо голос распознают плохо, но это еще не самое страшное. Самое страшное - русский язык. По понятным причинам, хотелось чтобы все команды были на русском. Поэтому был избран самый простой способ распознавать русскую речь  и имя ему - google speech API. Конечно, есть определенные минусы при работе с google API, главный - зависимость от интернета, ну, что поделать, за все приходиться платить. 

Специфика работы такова: мы пишем свою команду во .flac(wav и другие форматы попросту не поддерживаются), посылаем куда надо и получаем ответ в формате json(читай python-словарь), в котором содержится несколько ключей, из которых интересны лишь два - текстовое представление той речи, которую мы произнесли и степень соответствия с указанным текстом(есть смысл, что если confidence(степень соответствия)<0,5 делать повторный запрос). 

Итак, получили текстовое представление, в зависимости от него можно выполнить определенные действия, такие как включение радио, музыки, получение погоды и тд и тп.

Также хотелось бы, чтобы компьютер не только слушал, но и мог произносить речь. Можно конечно записать ответы заранее и вставлять их в определенные места, но это как-то не интересно, долго и узконаправленно. Намного круче заставить google translate произносить текст за нас :). 

После написание данного функционала можно пилить уже сами функции - исполнители.
Пока написано несколько: воспроизведение радио, прогноз погоды(произносится), время(произносится), чистка лог-файлов по воспроизведению кодового слова. В ближайшее время выложу проектик на github, кого заинтересовало - пишите, есть много идей, которые хотелось бы реализовать в ближайшее время.

1 комментарий:

  1. На данный момент festival неплохо воспроизводит русскую речь!

    ОтветитьУдалить