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

Информатор avatar | 70
FavoriteLoading В закладки

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

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

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

Разработка

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

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

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

Ревю

Запаковав приложение, и отправив в 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, где разработчики делятся секретами своей внутренней кухни.
1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, общий рейтинг: 5.00 из 5)
undefined
iPhones.ru
ТЕКСТ: АНДРЕЙ ЕРМОЛАЕВ. Добрый день. Хочу поделиться с вами историей, как небольшой эксперимент перерос в полноценное приложение, которое c большим трудом, с четвертого раза, пропустили в App Store. Но в результате все мои усилия оправдались. Все началось с того момента, как Apple выпустил iPhone 4S, и началась широкая рекламная кампания голосового ассистента «Siri». К сожалению,...
Прокомментировать

🙈 Комментарии 70

  1. 2iPhones avatar
    2iPhones4 мая 2012
    0

    Хочу пообщаться с Катей :)
    Сразу вспомнилась Catterpilar или как там её, которая стала потом Катей, всего-то 4 года тому назад

    Информатор avatar
    0

    @2iPhones, код выслал в личку на форуме.

    2iPhones avatar
    2iPhones4 мая 2012
    0

    @Информатор, спасибо! Будем общаться :)

  2. suponix avatar
    suponix4 мая 2012
    0

    Не куплю из за убогого дизайна. Простите за откровенность.

    x128 avatar
    x1284 мая 2012
    0

    @suponix, +1. Простите за +1. И за откровенность.

  3. Aleksandr10rus avatar
    Aleksandr10rus4 мая 2012
    0

    Я тоже хочу:
    Хочу пообщаться с Катей

    Информатор avatar
    0

    @Aleksandr10rus, здесь ничего просить не надо. Только через форум, только при >200 сообщений.

  4. ugolnow avatar
    ugolnow4 мая 2012
    0

    Грязные ногти рулят !!!! Как и приложение видимо…..

  5. Rumit avatar
    Rumit4 мая 2012
    0

    Хочу пообщаться с Катей

  6. PAHAN avatar
    PAHAN4 мая 2012
    0

    Ужасный голос, не красивое видео, не красивый интерфейс, фифифи

  7. Langoler_pro avatar
    Langoler_pro4 мая 2012
    0

    Специально даже авторизовался чтоб написать.
    Как они могли выложить приложение с таким ужасным интерфейсом? Им не стыдно? У них внутри ничего не дрогнуло даже наверно…

  8. TAIFUN avatar
    TAIFUN4 мая 2012
    0

    Земеля :).. неожиданно.
    Успехов в развитии.

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @TAIFUN, Спасибо!

  9. emil4ik avatar
    emil4ik4 мая 2012
    0

    Можете что-то лучше – вперед!!!парень без ресурсов имея лишь знания,пару книг,и iPhone создал приложение,а вы ничего кроме негатива из себя не представляете!

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @emil4ik, Спасибо за поддержку. Дизайн пришлось упростить до невозможности. Эпл все нормальные варианты отклонял, говорил похоже на “Сири”. Так что пришлось сделать так, чтоб не подкопались.

  10. ljalex avatar
    ljalex4 мая 2012
    0

    Хочу пообщаться с Катей :)

  11. uran.70 avatar
    uran.704 мая 2012
    0

    Только что купил.Ругаться матом не буду.Лучше поддержу и буду ждать развития програмки.Спасибо первопроходцам:)

  12. Whilser avatar
    Whilser4 мая 2012
    0

    Странно что пропустили. А вообще как насчет закона о сбора и хранения персональных данных? Тем более о месте нахождения пользователя плюс вся статистика. Без письменного согласия хранить данные, которые тем или иным способом могут идентифицировать пользователя – просто незаконно.

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @Whilser, Персональными данными называются данные, по которым можно однозначно идентифицировать пользователя. А по фразе и координатам не возможно идентифицировать пользователя. Кстати определение координат можно легко запретить.

    Whilser avatar
    Whilser5 мая 2012
    0

    @Andrey Ermolaev, А как же UDID?
    В любом случае, жду выхода официальной русской Siri, “поделки” мало интересны, тем более с брешами в безопасности.

    Andrey Ermolaev avatar
    Andrey Ermolaev5 мая 2012
    0

    @Whilser, Тут уже обсуждался этот вопрос. UDID телефона не относится к персональным данным.

  13. turboforik avatar
    turboforik4 мая 2012
    0

    Автору программы:
    Удачи в развитии приложения, одна просьба, исправьте грамматические ошибки. Это же просто ужас.
    Как пример: “может лучше Вы мне что то расскажите, а то …”

    Ни запятых, ни дефиса в “что-то”, в слове “расскажИте” в этом случае вместо И ставится Е.

    Это очень отталкивает от приложения. Как говорится, в человеке всё должно быть красиво.

    turboforik avatar
    turboforik4 мая 2012
    0

    @turboforik, Перед “а то” запятую поставил на автомате. У Вас её нет.

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @turboforik, Уже исправил. Спасибо.

  14. slatvick avatar
    slatvick4 мая 2012
    0

    Хочу пообщаться с Катей :)

    slatvick avatar
    slatvick4 мая 2012
    0

    @slatvick, ник на форуме @viaphone

  15. Tolin avatar
    Tolin4 мая 2012
    0

    Тоже не прочь “Хочу пообщаться с Катей”
    Все верно приложение такого класса одному сложно создать
    Ведь не все програмеры еще и художники.
    Ели есть команда тогда проще. Но все равно молодца. Главное чтоб сервак не умер от запросов.

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @Tolin, Да вроде держится пока сервак. Хотя бывают нарекания от пользователей.

  16. GoSo avatar
    GoSo4 мая 2012
    0

    Почему mp3??? На обычном EDGE я думаю ваша программа будет думать по несколько минут?
    Какое то преобразование записи по моему лучше делать на телефоне. Как это делает shazam. Он отправляет на сервер только несколько байт midi. С текстом однозначно сложнее.. Но имея базу из несколько сотен тестировщиков можно спокойно преобразовывать в тот же midi на телефоне и отправлять по 2 файла. После того как мы соберем базу midi можно отказываться от mp3.

    Сама реализация как собственно я и говорил в похожем топике несколько недель назад. А все отрицали правду :)
    Обычные опенсорс решения по распознаванию… Никакого “УХ” не наблюдается.

    Entze avatar
    Entze4 мая 2012
    0

    @GoSo, Ух ты! В midi! Из wave! Любой звук!!! В несколько байт!
    В спортлото писали?

  17. jarwhite avatar
    jarwhite4 мая 2012
    0

    Андрей, написал Вам через сапорт iTunes не знаю дойдет до вас сообщение или нет – есть движок семантического анализа для классификации текстов на естественном языке, работает с вероятностью верной классификации текста – 70-85%. Можем дать попользоваться, по крайней мере как то это обсудить. Если интересно свяжитесь со мной. Мой ник в скайпе такой же как тут , почта – jarwhite на гмаил ком .

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @jarwhite, Добрый день. Все получил, очень заинтересовало. Обязательно свяжусь с Вами.

  18. Afx40 avatar
    Afx404 мая 2012
    0

    Здравствуйте, Андрей!

    Хочу спросить, как конкретно инициируется телефонный звонок по имени. Дело в том, что в ответ на просьбу позвонить такому-то, находится соответствующая запись в адресной книге, но потом набирается непонятно что, за этим следует сообщение “набранный номер не существует”. В записи два телефона (“сотовый (избранное)” и “iPhone”), два e-mail, skype, день рождения. За какое поле может ошибочно хвататься программа вместо номера телефона? (Встроенный в систему Voice Assistant все делает правильно)

    И еще, не планируете сделать автоматическое завершение запроса по паузе? А то два раза нажимать на кнопку как-то не очень…

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @Afx40, Здравствуйте. Такое может быть если у вас номер занесен в международном формате со значком + впереди. Так было сделано, чтоб детишки не вызвонили случайно за границу все деньги. Уберите плюсик и код страны и должно быть все ОК.
    Для лучшей работы с контактами я советую создать псевдоним к контакту. Находите нужный контакт, нажимаете изменить, пролистываете до конца и нажимаете на кнопку “Добавить поле”. Находите там поле “Псевдоним” и заполняете его. Теперь при необходимости позвонить просто произносите добавленный псевдоним.

    Afx40 avatar
    Afx404 мая 2012
    0

    @Andrey Ermolaev, спасибо за ответ. Когда “+7” заменил на “8”, помогло.

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @Afx40, По паузе есть завершение запроса. Просто наверное пауза длинная:)

    Afx40 avatar
    Afx404 мая 2012
    0

    @Andrey Ermolaev, ой, действительно, я просто был нетерпелив :)

    А что, распознает весьма недурственно! Для себя придумал тест – попросить найти фотографии бладхаундов. Что только не выдумывали в ответ все англо-“понимающие” Сирики… А Катерина с первого раза. Спасибо!

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @Afx40, Рад, что Вам понравилось.

  19. clims avatar
    clims4 мая 2012
    0

    Хочу пообщаться с Катей :)

  20. beliv avatar
    beliv4 мая 2012
    0

    Хорошая работа и приложение, но ужасный дизайн

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @beliv, Эпл заботится, чтоб никакое приложение ничем не напоминало Сири. Они заставили убрать все иконки микрофонов и еще много чего. Такова “плата” за то что приложение пропустили.

    Waterfree Fish avatar
    Waterfree Fish4 мая 2012
    0

    @Andrey Ermolaev, куплю сегодня ибо земляк и сам что-то делаешь :) Это заслуживает огромного уважения и благодарности. Мне очень нравится, что в моей стране есть люди, которые действительно как-то мыслят и не сидят на месте. Но следующий этап должен вывести это приложение на качественно новый уровень. Считаю, что неразумно прикрыватся Эпплом в плане пропуска приложения в стор. Да, дизайн сначала наверное действительно напоминал Сири, но суть не в том чтобы сделать его уродливым, а в том чтобы сделать что-то новое! :) Вы только посмотрите какой успех у Clear, хотя функционал ничем особым не отличается. Я считаю, что как старт сгодится, но дальше нужно работать над интерфейсом. Сделать его инновативным. Это мое мнение) Успехов!

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @Waterfree Fish, Спасибо. Постараюсь!

  21. t_spot avatar
    t_spot4 мая 2012
    0

    “Приложение, также, передает на сервер свои координаты для использования в геолокационных сервисах. Сервер записывает в базу данных UDID телефона и все вопросы пользователей, а также ответы на них..” – вот это вот, ну очень не нравится… :)

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @t_spot, Я же написал для чего это необходимо. Координаты телефона я не сохраняю, а только использую для показа погоды и местоположения на карте. А UDID сейчас использует очень много приложений, хотя бы для отправки нотификаций. Ваши опасения беспочвенны.

    Артур Малосиев avatar
    0

    @t_spot, интересно, зная UDID, я смогу взять на твое имя кредит в банке или отследить, с кем ты спишь по нечетным числам? ПАНИКА ПАНИКА!

  22. V333 avatar
    V3334 мая 2012
    0

    Хочу пообщаться с Катей )))

  23. akim_k avatar
    akim_k4 мая 2012
    0

    голос поменяйте Кати плз ) акцент и тормоз. понимаю что сырая еще, надеюсь на дальнейшие доработки. 2$ не пожалел при условии, что будет дорабатываться, не забрасывайте.

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @akim_k, Спасибо! Не заброшу.

  24. blackmouse avatar
    blackmouse4 мая 2012
    0

    Купил, потестил, для начала неплохо. Будем ждать обновы)

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @blackmouse, Спасибо. База данных и слов пополняется ежедневно.

    akim_k avatar
    akim_k4 мая 2012
    0

    @Andrey Ermolaev, вот это очень радует! кстати, Вы на третьем месте аппсторе в топ платных. удачи!

  25. lexey avatar
    lexey4 мая 2012
    0

    Большое спасибо за проделанную работу! Надеюсь это ускорит появление Siri на русском, а не отложит его :)
    Приобрету обязательно!

  26. peletor avatar
    peletor4 мая 2012
    0

    Здравствуйте Андрей!
    Меня очень заинтересовал Ваш проект.
    По стилю изложения я почувствовал в Вас родственную душу.
    Хочу предложить Вам свои силы в дальнейшем совершенствовании проекта.
    Я являюсь автором математической модели, которая позволит Вашей Кате не только отвечать на вопросы, но и испытывать эмоции. Она сможет радоваться и грустить, обижаться и прощать, любить и ненавидеть.
    Если это удастся реализовать, то это будет не «аналог» Siri, а намного лучше.
    Предлагаю свои интеллектуальные и финансовые ресурсы.
    Если Вас заинтересовало мое предложение, то прошу связаться со мной по электронной почте: мой ник собака km.ru

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @peletor, Спасибо, обязательно свяжусь

  27. admiless avatar
    admiless4 мая 2012
    0

    в моем магазине (литва) нету :(
    жаль, очень жаль, хотелось попробовть

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @admiless, Что то я упустил этот момент. Сейчас добавлю.

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @admiless, Добавил.

    admiless avatar
    admiless4 мая 2012
    0

    @Andrey Ermolaev,
    жду как появиться :)
    Сири у нас только как ассистент работатает, “нет информации о местах xxx в вашей стране…”
    я не особо жду что будет поиск мест, но “отечественная” разработка все же приятно :)

    admiless avatar
    admiless4 мая 2012
    0

    @Andrey Ermolaev, появилась.
    Будем тестить :)

    Andrey Ermolaev avatar
    Andrey Ermolaev4 мая 2012
    0

    @admiless, Отлично. Желаю успеха.

  28. heximal avatar
    heximal4 мая 2012
    0

    Interesting.
    I’d like to talk to Katya))

  29. iprince avatar
    iprince5 мая 2012
    0

    Купил , чтобы поиграться,но так и не смог позвонить никокому из приложения добавлял псевдоним менял +7 на 8,создавал новый контакт – безуспешно

  30. formotion avatar
    formotion5 мая 2012
    0

    Андрей, добрый день.
    Выражаю свою признательность, ваш проект очень интересен!

    Работаю над большим стартапом в Лондоне, который потенциально станет новой вехой в развитии интернета. Напишите мне, расскажу больше, и подумаем о возможном сотрудничестве. ybaronov НА gmail ком

    Andrey Ermolaev avatar
    Andrey Ermolaev5 мая 2012
    0

    @formotion, Спасибо. Обязательно напишу.

    Чудотворец avatar
    0

    @Andrey Ermolaev, Так держать! ) Надеюсь на то, что в конечном результате все будет работать так, как ожидается. Странно, что приложение пропустили. Работайте дальше) Принципиально КУПИЛ программу. Надеюсь вырученных денег хватит на стимуляцию Вашей дальнейшей работы) /меняйте голос на менее пугающий, нужно правильно ставить ударения в словах(хотябы в имени Катя), нужно работать над геолокацией (хочу находить ближайшие магазины и кафешки к примеру),интерфейс просто адский и его нужно менять.
    Считаю, что если купертиновцы впустили такое приложение в магазин, то официальный выпуск сири не за горами!!

    Andrey Ermolaev avatar
    Andrey Ermolaev6 мая 2012
    0

    @Чудотворец, Большое спасибо. Обязательно продолжу работу.

  31. Makca avatar
    Makca7 мая 2012
    0

    @Andrey Ermolaev, какие движки для распознавания/генерации речи использовали, если не секрет ? Очень даже неплохо получилось.
    Спасибо.

    Andrey Ermolaev avatar
    Andrey Ermolaev7 мая 2012
    0

    @Makca, Не секрет. Гугловские.

  32. Anatoly avatar
    Anatoly11 мая 2012
    0

    в моем магазине ( Portugal ) нету

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь