Speech Recognition в Unity - подводные камни

Здравствуйте. Сегодня я расскажу вам о довольно таки полезной вещи для ваших проектов, да и вообще для общего развития:), а именно о системе Speech to Text.

 

Исходя из своего опыта, я могу смело сказать, что прикрутить такую вещь к Unity новичку довольно сложно и непонятно. Дело в том, что плагинов, которые действительно хорошо работают просто не было на тот момент времени, когда я столкнулся с проблемой подключения к проекту Speech to Text системы.

Зачем же на самом деле эта штука? - по сути, это распознание речи в звуках и преобразование речи в текст. Такая вещь вам пригодится, если вы хотите сделать приложение, которое будет выполнять команды исходя из того, что вы скажете. Примерами таких приложений являются Siri - Apple, Now - Google, Cortana - Microsoft.


Итак, мы подошли к самому главному. Если вы решили использовать Speech to Text систему у себя в приложении на Unity, вам предстоит вести довольно долгий поиск информации как, и что нужно делать, чтобы получить в результате рабочий прототип. Я расскажу, что я перепробовал и к чему пришел в результате.

 

Все началось с того, что пришел заказ на создание игры для мобильных телефонов в которой собака будет выполнять команды по голосу пользователя. Ну хорошо - есть asset store в котором есть пара неплохих ассетов для нашей задачи. Окей - берем самый популярный Word Detection. Почти неделя разбора ассета показала мне, что это были зря потраченные деньги. Дело в том, что плагин в оффлайне распознавал текст - это конечно плюс, но другая сторона медали не такая приятная... Распознавал речь он просто ужасно, даже не смотря на все фильтры по известным алгоритмам очистки. Плагин просто мог рандомно реагировать на щелчки или крики и выполнять команду также рандомно...

Ладно, что поделать - по крайней мере получили бесценный опыт.

 

Продолжаем поиски способа прикрутить систему к Unity. Следующим на пути стала библиотека CUETools. Довольно таки хорошая вещь, которая помогает нам прикрутить конвертацию с Unity AudioClip в Wav, а затем Flac. Зачем же это нужно было? - конвертация и все дела. Просто других оффлайн распознавателей обнаружить просто не получилось, а писать свой - это просто лишняя трата времени. В итоге я взглянул в сторону Google Speech API.

В нем радовало все - начиная с того, что у него простой API и он будет распознавать любой язык. Ну окей, пытаемся конвертировать - нечего не получалось, все не работало. Тогда на помощь пришла библиотека LibFlac, которая в свою очередь очень меня порадовала.

Библиотека написана на C++ и слава богу была обертка для .NET приложений, которую я успешно использовал в своем плагине.

В начале работы с этой библиотекой, была проблема с тем, что она не хотела работать на мобильных дэвайсах, хоть на PC работала отлично. Проблема решилась подменой библиотеки под разную архитектуру x86\x64.

Ура! - мы все же смогли сделать это!

День - два и я собрал полностью рабочий прототип Speech to Text системы. Не долго думая, я собрал плагин для себя, на будущее, если потребуется. Ну и конечно же, готов делиться  с вами.

А вот и промо ролик моего плагина (правда после того, как я записал видео - плагин еще доработал, но функционал остался тот же):

 

Ссылка на форум Unity3D: http://forum.unity3d.com/threads/speech-recognition-using-google-v1-0.346148/

Купить плагин можно здесь:

 

Speech Recognition using Google. Plugin for Unity3D
20USD

Write a comment

Comments: 3
  • #1

    rytuał miłosny (Monday, 10 April 2017 19:17)

    rytuał miłosny

  • #2

    Viagra 100mg (Friday, 14 July 2017 00:26)

    Red Viagra

  • #3

    sex telefon (Thursday, 10 August 2017 15:55)

    anal double penetration