Разработка русскоязычного аналога «Siri»: эпилог

в 7:45, , рубрики: apple, siri, speech recognition, разработка под iOS, распознавание речи, метки: , , ,

Или история, как небольшой эксперимент Just for fun перерос в полноценное приложение с неплохим результатом.
Начало истории тут, продолжение тут.
Если коротко, то с четвертого раза apple одобрил приложение, основательно покромсав функционал и дизайн. Подробности про прохождение ревю, и первые результаты под катом.

Прохождение ревю

Одно только прохождение ревю заслуживает отдельного топика. Приложение проходило ревю четыре раза. В первый раз отклонили, написав очень похожа (so similar) на Siri. Очень похоже, конечно, понятие растяжимое. Пишу им письмо с вопросом, что надо сделать, поменять дизайн или функционал. Получаю весьма пространный ответ, мы вам не можем сказать что надо изменить, просто сделайте не похоже на Siri и присылайте опять на рассмотрение. Мне, вообще то казалось, что приложение и так не похоже на Siri. Оказалось что заменить круглую кнопку на квадратную, поставить другой фон и другие баллуны недостаточно. Пришлось целенаправленно портить дизайн, заодно в прогу были внесены заметные улучшения функционала. После этого приложение опять было отправлено на ревю.

И если с первым реджектом еще кое как можно было согласиться, то со вторым была просто ерунда. Как и положено, дней через пять приложение перешло в статус «In Review». И тишина. День, два, три. Если в первый раз они хоть написали, мол так и так нам надо дополнительное время для ревю, то в этот раз полный игнор. Строчу опять им письмо, вы что там совсем про меня забыли. Только настало в Америке утро, по нашему часов 20.00 приходит опять отказ. На этот раз прислали мне скриншот моей программы и сказали вот эта иконка Разработка русскоязычного аналога «Siri»: эпилог очень похожа на иконку Siri, меняйте ее. Да поменять то не вопрос, но если она покожа на иконку Siri, то я тогда «китайский летчик» (да простят меня китайцы). Но «в бутылку» я не лезу. Поменять так поменять. Меняю иконку и «заливаю» опять программу на рассмотрение.

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

Пока весь советский народ семимильными шагами идет к коммунизму. Пока apple каждый раз по 7-10 дней думает пропускать ли приложение, я успеваю настолько улучшить его, что версия, находящаяся в данный момент на ревю, является безнадежно устаревшей. Основная проблема, которая существовала на момент третьего ревю apple это то, что конвертация в формат FLAC и отправка на распознавание происходила на моем сервере, который с увеличением количества пользователей должен был «лечь». Это был лишь вопрос времени и количества одновременных запросов, которые мог выдержать сервер. Была предпринята попытка сделать конвертацию в формат FLAC на устройстве, даже найдена библиотека libFLAC для архитектуры ARM (благодаря хабражителю Limosha ). Эта попытка провалилась по двум причинам, во первых скорость конвертации на всех устройствах (кроме iPhone 4S) была непозволительно медленной, т.е. залить файл на сервер, сконвертировать во FLAC, отправить гуглу, получить вопрос, обработать вопрос, выдать ответ оказалось быстрее чем просто сконвертировать файл на телефоне. Во вторых библиотека libFLAC, категорически отказывалась работать с моно звуком с дискретизацией 16000 Кгц. Тогда я обратил свой взор на формат SPEEX, который был разработан специально для VOIP приложений. Благодаря помощи зарубежных друзей из дивизии Нормандия Неман, был реализован такой модуль, который снимал сигнал с микрофона телефона кодировал и сжимал его сразу в формат SPEEX, который кстати использует и Apple для Siri, и скармливал Гуглу. Это заметно ускорило работу. Теперь за сервер я был спокоен.
А тут как раз и третий реджект от Apple подоспел. Исправляю я очередную их прихоть. Меняю слэш скрин, который показывается при загрузке приложения, т.к. в этот раз они написали, что слэш похож на Siri. Кстати это полный бред, так как у Siri нет слэша, но я то уже знаю что спорить с Apple бесполезно беру и меняю на первую попавшуюся картинку, заодно вставляю модуль кодирования в speex и отправляю опять на ревью.
И когда я уже ни на что не надеялся мне в почту, неожиданно, сваливается письмо из Apple, что приложение одобрили. Ну наконец то!!!

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

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

Первоначальный дизайн был такой:
Разработка русскоязычного аналога «Siri»: эпилог

После того, как Apple покомандовала, он превратился в такой:
Разработка русскоязычного аналога «Siri»: эпилог

Сейчас готовлю апдейт и с помощью хабражителя vipzona, хочу чуток изменить дизайн на такой:
Разработка русскоязычного аналога «Siri»: эпилог

Первые результаты

С момента одобрения Apple приложения, прошло 2 недели. За это время сервер выполнил более 300 000 запросов, конечно же если бы он еще и занимался конвертацией файлов, он бы умер в первые сутки. Несмотря на все недостатки, а их конечно хватает, приложение понравилось пользователям. В русском App Store программа достигла третьего места в общем платном топе.
По остальным странам информация в таблице:
Разработка русскоязычного аналога «Siri»: эпилог

Чем же интересуются люди у приложения. Просмотрев немного базу ответов был весьма удивлен. В первую очередь народ проверяет как распознаются матюки и ругательства, ругаются как заправские грузчики. Затем идут предложения непристойного содержания. Потом идет поиск в YouTube и просьба запустить музыку. Затем сайт Вконтакте. И потом уже самые разные вопросы. И как похудеть, и что мне сегодня одеть (это наверное девушки спрашивают), и меня бросил(а) парень/девушка, что мне теперь делать. Странно, конечно задавать такие вопросы машине, но что есть то есть. Думаю, что пользовалось бы спросом приложение- психоаналитик, которое бы давало возможность людям выговориться, и выдавало бы им простейшие советы.

Приложение в App Store. Что дальше

Несмотря на то, что финансовые результаты более чем удовлетворительные, уже понятно что приложение нуждается в основательной доработке. Необходимо увеличить базу ответов и подкорректировать некоторые. Для этого надо просмотреть все 300 000 записей базы вопросов, выделить из них те на которые ответы были даны невпопад, и подкорректировать ответы. Необходимо изменить голос машины, все жалуются что он занудный. Надо устранить задержку на серверах, тоже пишут, что иногда сервера не доступны. Ну и однозначно надо добавлять новые возможности. После выхода первых статей многие читатели предлагали АПИ своих сервисов, наконец то можно заняться их внедрением.
Конечно одному это сделать будет тяжело, только одну базу можно неделю просматривать, так что я пока в раздумьях. Может что то насчет стартапа подумаю.

P.S. Если что то упустил, задавайте вопросы отвечу. Насчет грамматических ошибок лучше писать в личку.

Автор: a1ndrey


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js