Dev Story Собеседник. История о русской Сири (она же – Катя)

ТЕКСТ: АНДРЕЙ ЕРМОЛАЕВ. Добрый день. Хочу поделиться с вами историей, как небольшой эксперимент перерос в полноценное приложение, которое c большим трудом, с четвертого раза, пропустили в App Store. Но в результате все мои усилия оправдались.

Все началось с того момента, как Apple выпустил iPhone 4S, и началась широкая рекламная кампания голосового ассистента «Siri». К сожалению, «Siri» не поддерживала русский язык и ее геолокационные сервисы не работают за территорией США. Купил я это чудо техники, побаловался разговором с «Siri». Скажу честно, понимала она мой английский с третьего раза и это мне быстро надоело. И стал я ждать, когда наши разработчики сделают что-то подобное. Но время шло, Apple не торопился русифицировать «Siri» да и русские разработчики не проявляли инициативу.

Тогда я сам решил провести эксперимент, насколько сложно самому сделать такое приложение. Конечно речь о полном аналоге «Siri» не шла. Я прекрасно понимаю, какие требуются ресурсы, для создания полноценного русскоязычного аналога «Siri», но хотелось создать что то очень похожее.

Разработка

Вначале я продумал логику приложения. Я решил все преобразования речь–в–текст и текст–в–речь сделать на сервере, а приложению предназначалась только функция интерфейса. Такое решение работало бы и на самых слабых устройствах, а также обладало кроссплатформенностью. Таким образом логика приложения получилась такая: записываем речь собеседника, передаем ее на сервер для распознавания, используем звуковой движок для распознавания речи, анализируем распознанную строку и формируем ответ, преобразуем строку обратно в речь и передаем на телефон ссылку на mp3 поток, телефон воспроизводит ответ. Получается немного запутанно и медленно, но другого пути нет. Продумав логику, я взялся воплощать это все в жизнь.

Аппаратная часть затруднений не вызвала. Выбрал звуковой движок, заказал выделенный сервер, настроил все это, проверил работоспособность и взялся за логику. Начал читать литературу по искусственному интеллекту и анализу речи. Понял, что все это очень сложно и решил пока просто разобрать предложения на фразы, сделать простейший анализ и выделить ключевые слова. В результате составляю базу знаний, сравниваю, выделенные из предложения, ключевые слова с базой. Потом, выдаю на преобразование в речь, ту фразу, которая наиболее полно соответствует запросу.

Серверную часть написал на PHP. Чтоб к серверу не обращались посторонние и не «уронили» его, предусмотрел передачу телефоном специального токена, который жестко зашит в приложение. Приложение, также, передает на сервер свои координаты для использования в геолокационных сервисах. Сервер записывает в базу данных UDID телефона и все вопросы пользователей, а также ответы на них. Сделано это по двум причинам. Во первых анализируя вопросы и ответы, можно оперативно узнавать пожелания пользователей и оперативно пополнять базу данных, а также смотреть где программа дает неверные ответы и поправлять ее. Во вторых это сделано на будущее, по UDID телефона приложение может отслеживать ветку разговора, прошлые вопросы конкретного пользователя и соответственно более интеллектуально строить беседу. Само приложение на телефоне трудностей в разработке вообще не вызвало. Несложный интерфейс, и обычные http POST и GET запросы, пара дней времени и приложение готово.

Читайте также  Сообщение об ошибке в iOS 6 указывает на iBooks для Apple TV

Ревю

Запаковав приложение, и отправив в Apple на ревю, я стал ждать результата. Если бы я только знал, что мои проблемы только начинаются. Приложение проходило ревю четыре раза, висело в статусе «In Review» по пять дней, что очень странно. Обычно им хватает одного двух дней для ревю. Требования Apple были порой не логичные, а на письма отвечают весьма пространно, в лучших традициях советских бюрократов. Но, надо признать, очень оперативно. В первый раз отклонили, написав очень похожа (so similar) на «Siri». Очень похоже, конечно, понятие растяжимое. Пишу им письмо с вопросом, что надо изменить, поменять дизайн или функционал. Получаю весьма пространный ответ, мы вам не можем сказать что надо изменить, просто сделайте не похоже на «Siri» и присылайте опять на рассмотрение.

Был еще один интересный момент. Пока в apple размышляют казнить или помиловать, решаю глянуть на сервере чем там apple у моего приложения интересуется. Ведь все вопросы и ответы заносятся в базу данных. И вижу я по базе данных, что как минимум с трех разных телефонов, «пытает» apple мое приложение. Вначале они на английском спрашивали “test”, “google”, потом, видать, нашли русскоговорящего сотрудника, и он уже повел диалог на русском. Спрашивали «привет», «как дела», «погода в Москве». Решаю подшутить над сотрудниками apple, меняю в базе ответ на вопрос «погода в Москве» на «». Шутку не оценили и приложение отклонили, конечно не по этой причине. Иконка микрофона видите ли им очень иконку Сири напоминает. Но ведь у Сири иконка круглая, а у меня квадратная. Но решаю не спорить, а просто меняю иконку и перезаливаю приложение.

На третий раз они потребовали убрать вообще из приложения и с иконки все изображения микрофонов. К этому моменту я уже с ними не спорю, а просто делаю что они говорят, так получается быстрее. И когда я уже ни на что не надеялся мне в почту, неожиданно, сваливается письмо из Apple, что приложение одобрили. Ну наконец то!!!

Что в итоге получилось

На сегодняшний день, приложение может следующее: показывает прогноз погоды, согласно местонахождению; показывает текущее время; ищет в интернете фотографии и картинки; умеет звонить абоненту из адресной книги; определяет и показывает на карте ваше местонахождение; находит на карте ближайшие к вам объекты (ресторан, бар, аптека); ищет авиарейсы; показывает отели и цены на них в указанном населенном пункте. Многие команды, доступные на телефонах с «Siri» были убраны по требованию Apple.

Читайте также  Патент на корпус с изменяемой прозрачностью

Зато с приложением можно просто поболтать «за жизнь». Оно пытается поддержать разговор и отвечает на простейшие вопросы. Иногда отвечает не в тему, отчего получается еще забавнее.

Постскриптум

Слово «аналог» не зря взято в кавычки. Я прекрасно понимаю, что для создания действительно чего то похожего на Siri, нужны гигантские ресурсы и много средств. Приложение, по этому, и размещено в категорию «Развлечения». Зато, программа работает на всех айДевайсах с прошивкой 4.0 и выше: iPhone 3GS, 4, 4S, iPod touch, iPad 1, 2, 3.

Ну и напоследок промокоды: если у вас на форуме больше 200 сообщений, напишите с вашего аккаунта в личку админу «Хочу пообщаться с Катей». В ответ получите промо-код. Их всего десять.

Цена: $1.99 [iTunes link]

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
Источник: iphones.ru

TOP TRAVEL