- Обзор мобильных Text-To-Speech движков
- Коммерческие движки
- Свободные движки
- Встроенные решения
- Заключение
- 3 лучших синтезатора речи для Android по мнению World-X
- 1. Vocalizer
- 2. Google
- 3. RHVoice
- Вместо послесловия
- Как встроить голосового помощника в любое мобильное приложение. Разбираем на примере Habitica
- Что нужно для работы
- Порядок действий
Обзор мобильных Text-To-Speech движков
Если Ваш родной язык не английский и Вы не пишете приложения только для iPhone, то Вам придется достаточно трудно, если Вы захотите найти подходящий инструментарий для разработки т.н. мобильных «voice-enabled» приложений.
В данном обзоре приведена классификация и описаны самые достойные из рода mobile TTS engine.
Я занимаюсь исследованиями в области проектирования интерфейсов мобильных устройств для людей с ограниченными возможностями зрения. Для реализации одного из моих проектов мне потребовался движок генерации голоса с мультиязыковой поддержкой (как минимум два языка – английский и русский). Это и послужило причиной поиска синтезатора речи.
Для удобства разделим движки TTS на три класса:
- коммерческие;
- свободные (решения лицензированные по GPL, LGPL и более «мягким» лицензиям типа BSD License или wxWindows Licence, которые допускают коммерческую разработку продуктов);
- встроенные (средства, предоставляемые самой операционной системой).
Коммерческие движки
SVOX Mobile TTS
Цена: n/a
Языки: 26, включая русский
Субъективная оценка качества звучания: высокое
Мобильные ОС: Android, Symbian, Windows CE/Windows Mobile, BREW
Возможность разработки коммерческих продуктов: есть
Компания SVOX имеет наиболее «вкусный» с технической точки зрения продукт — SVOX Mobile TTS. Однако, поскольку компания работает в основном в B2B сегменте, на мои два письма с запросом цены они так и не ответили.
Acapela TTS
Цена: 2800€ плюс так называемая run-time license, за которую в самом лучшем случае придется платить по 49€ за каждое распространенное приложение
Языки: 23, включая русский
Субъективная оценка качества звучания: высокое
Мобильные ОС: Symbian, Windows CE/Windows Mobile, Embedded Linux, iOS
Возможность разработки коммерческих продуктов: есть
Сотрудники Acapela Group оказались намного более общительными и ответили буквально через полчаса после заполнения вот этой заявки.
Цена, указанная в шапке, относится к таким операционным системам как Windows Mobile и Symbian, однако бизнес-модель Acapela разнится в зависимости от выбранной ОС. К примеру, наиболее сильно они продвигают направление iOS, для которого сделан отдельный сайт. Там можно зарегистрироваться и бесплатно получить evaluation версию их движка. Цена голого SDK для бывшей iPhone OS составляет 250€. Так же с каждого проданного Вами в App Store приложения снимаются немалые проценты.
Отмечу, что Acapela предоставляет «облачный» синтез речи, а так-же портирование SDK под любую платформу.
Loquendo Embedded TTS
Цена: 3000€ плюс проценты с каждого проданного Вами мобильного приложения
Языки: 26, включая русский
Субъективная оценка качества звучания: высокое
Мобильные ОС: Android, Symbian, Windows CE/Windows Mobile, Embedded Linux, iOS, Maemo, Moblin, MeeGo, PalmOS
Возможность разработки коммерческих продуктов: есть
Движок Loquendo обладает специальными тегами, позволяющими делать речь более естественной, подмешивая такие не совсем «речевые» фишки как кашель, смех и прочее.
Их движок отвечает спецификации SSML 1.0 рекомендованной W3C.
Sakrament TTS
Цена: 1500€ для одной ОС, при покупке пакета сразу для двух языков предоставляется скидка в размере 25%, что составляет 2250€
Языки: английский, русский
Субъективная оценка качества звучания: среднее
Мобильные ОС: Symbian, Windows Mobile
Возможность разработки коммерческих продуктов: есть
Качества синтеза речи Sakrament TTS вполне достаточно, что бы озвучивать короткие фразы типа номеров телефонов или названий приложений. Описание всех версий SDK можно получить здесь.
Свободные движки
Flite
Цена: нет
Языки: английский плюс возможность компиляции языков FestVox
Субъективная оценка качества звучания: низкое
Мобильные ОС: Android, Windows CE/Windows Mobile, iOS, PalmOS
Возможность разработки коммерческих продуктов: есть (CMU licence)
В мире настольных систем хорошо известен синтезатор речи Festival. Он имеет порт под названием Flite для мобильных устройств и встраиваемых систем, который распространяется под их собственной X11-like лицензией, позволяющей свободно распространять данное ПО кому угодно, а так же строить на его основе как коммерческие, так и свободные приложения. Существуют порты для Windows CE/Windows Mobile, PalmOS, Android и iOS.
eSpeak
Цена: нет
Языки: 39, включая русский
Субъективная оценка качества звучания: среднее
Мобильные ОС: Android, Windows CE/Windows Mobile
Возможность разработки коммерческих продуктов: нет (GNU GPL)
Инструкция для компиляции движка под WM включена в дистрибутив, однако на этой платформе eSpeak имеет одно существенное ограничение – генерация голоса возможна только в WAV файл. Собранный TTS engine для Windows Mobile можно получить здесь.
eSpeak портирован на Android. Самый простой способ его попробовать — это установить из Android Market’а приложение TTS Service Extended, которое позволяет переключаться между встроенным движком и eSpeak. Данный TTS движок распространяется на условиях GNU GPL.
Встроенные решения
Встроенные решения присутствуют только в Symbian и Android. По какой-то неизвестной причине Microsoft лишила свою мобильную ОС соответствующего программного интерфейса (MS SAPI).
Symbian
Цена: нет
Языки: английский
Субъективная оценка качества звучания: крайне низкое
Возможность разработки коммерческих продуктов: есть
Встроенный TTS от Symbian Foundation скрывается в классе CMdaAudioPlayerUtility. Хотя в его документации ничего об этом не сказано, он все же позволяет синтезировать речь. К сожалению, русский язык не поддерживается. Качество генерации английской речи очень низкое. Без подготовки довольно трудно понять, что именно он произнес.
Дополнительные языковые пакеты можно загрузить здесь, однако список поддерживаемых телефонов крайне мал. Установка пакетов для русского языка на устройство под управлением Symbain OS S60 5th не дала ожидаемых результатов, встроенный TTS так и не заговорил по-русски.
Отмечу, что имеется достаточно удобное расширение API под названием NSS TTS Utility API, описание которого можно найти здесь.
Android
Цена: нет
Языки: английский, французский, немецкий, итальянский, испанский
Субъективная оценка качества звучания: среднее
Возможность разработки коммерческих продуктов: есть
Встроенная функциональность синтеза речи в Android доступна с версии 1.6. Прекрасное введение в тему можно найти в блоге разработчиков. Android TTS API является не чем иным, как оберткой над SVOX Pico, русский язык, которым, к сожалению, не поддерживается.
Заключение
Выводы каждому придется делать в зависимости от требований к разрабатываемому продукту. Для коммерческих решений крайне важно качество синтеза речи, поэтому выбирать стоит из двух движков – Acapela TTS и Loquendo Embedded TTS. При выборе движка для open source проекта крайне важную роль будет играть список целевых ОС.
Лично для себя я выбрал eSpeak, поскольку мой проект академического толка и я могу себе позволить использование продукта лицензированного по GNU GPL.
Источник
3 лучших синтезатора речи для Android по мнению World-X
Синтезатор речи или TTS является программным решением, позволяющим воспроизводить текстовую информацию голосом. Благодаря чему , с тало возможным не визуальн ое взаимодействие с о смартфоном для незрячих пользователей , а также прослушивание книг в электронном формате.
На основе личного опыта, м ы решили состави ть собственный рейтинг лучших синтезаторов речи для Android. И г лавным критерием отбора стало «внятное произношение» русскоязычного текста. А этим может похвастать далеко не всякое приложение!
1. Vocalizer
Пожалуй, один из наиболее качественных синтезаторов речи, который отличает чёткое произношение и высокая детализация речи. В приложении более 50 поддерживаемых языков, в том числе «русский».
Есть возможность выбора из трёх русскоязычных голосов. «Мужской Юрий» — подойдёт для прослушивания художественной литературы. «Женские Милена или Катя» — придутся по вкусу пользователям « Google TalkBack” , хотя читают «девушки» ни чуть не хуже.
Найти приложение можно в “Play Market” по запросу “Голос Vocalizer (русский)”. После его установки требуется выбрать голос по умолчанию. Перед покупкой одного из голосов можно воспользоваться 7-дневным пробным периодом, позволяющим ознакомиться с нюансами звучания синтезатора речи.
2. Google
И звестный по голосовому поиску, синтезатор речи от Google имеет пару несравненных достоинств. Во-первых, приложение совершенно бесплатное. А во-вторых по умолчанию уже предустановленно для большинства современных смартфонов.
Среди русскоязычных голосов есть несколько мужских и женских. Правда, они имеют лишь незначительные отличия по тембру. Хотя синтезатор речи демонстрирует чёткое произношение, ему не хватает в ыразительности, чтобы слушать книги.
Найти приложение можно в « Play Market » по запросу “ Синтезатор речи Google”. После установки зазвучит сетевой голос по умолчанию. Для загрузки полного пакета русскоязычных голосов требуется подключение Wi-Fi.
3. RHVoice
А вот синтезатор речи под названием « RHVoice » является разработкой отечественного программиста Ольги Яковлевой. С недавнего времени приложение стало доступно и для смартфонов под управлением Android.
Среди русскоязычных голосов есть знакомые «Александр и Елена», а также появилось ещё пара женских «Анна и Ирина». « RHVoice » отличает чёткость произношения и малый размер. Правда, в ущерб качеству. Отмечается тихая громкость и слабая детализация.
Найти приложение можно по запросу « RHVoice » в поиске « Google Play ». Все голоса доступны бесплатно, а перед установкой можно прослушать демо-записи. В настройках можно указать уровень качества.
Вместо послесловия
Это были 3 лучших синтезатора речи по мнению сайта “World-X”. Несмотря на их уникальность, каждый из них имеет свои недостатки. Поэтому при выборе рекомендуем полагаться на слух. Благо,любой из голосов можно предварительно прослушать в демо-записи или испытать в течение пробного периода.
Источник
Как встроить голосового помощника в любое мобильное приложение. Разбираем на примере Habitica
Вам не кажется, что многие мобильные приложения стали бы куда удобнее, будь в них голосовое управление? Нет, речь не о том, чтобы вести беседы с банковским ассистентом в чате техподдержки. В основном было бы достаточно голосовой навигации по приложению или form-filling в режиме диалога.
На примере Habitica (опенсорсный app для закрепления привычек и достижения целей, написан на Kotlin) Виталя Горбачёв, архитектор решений в Just AI, показывает, как быстро и бесшовно встроить голосовой интерфейс в функционал любого приложения.
Но для начала давайте обсудим, почему голосовое управление мобильным приложением — это удобно? Начнем с очевидных вещей.
- Нам часто нужно воспользоваться приложением в момент, когда заняты руки: готовка, управление транспортным средством, тащим чемоданы, во время механической работы и так далее.
- Голос — важнейший инструмент для людей с нарушениями зрения.
Кейсы и так прозрачные, но на самом деле всё еще проще: в некоторых случаях набор голосом просто быстрее! Представьте — заказ авиабилета одной фразой «Купи мне билет на завтра на двоих в Самару» вместо долгого заполнения формы. При этом с возможностью задавать пользователю уточняющие вопросы: вечером или днем? с багажом или без?
Голос полезен при прохождении нами сценария «form-filling» и удобен для заполнения почти любых длинных форм, требующих от пользователя определенного объема информации. И такие формы присутствуют в большинстве мобильных приложений.
Слева направо: приложение РЖД «Пригород», дневник питания FatSecret (пользователям приходится заполнять форму несколько раз в день, выбирая из сотен продуктов), приложение пекарни «Коржов».
Из-за того, что сегодня голосовых ассистентов часто внедряют в чат поддержки и развиваются они именно оттуда, большинство компаний пытается запихнуть функционал приложения в чат. Пополнить баланс, узнать что-то о товаре или услуге… Это далеко не всегда удобно реализовано, а в случае с голосовым вводом и вовсе контрпродуктивно, хотя бы потому, что рапознавание речи часто работает совсем не идеально.
Правильный подход — встраивать ассистента бесшовно в уже существующий функционал приложения, в интерфейсе которого будет происходить заполнение формы, чтобы человек мог просто проверить, что он все правильно сказал, и нажать ОК.
Мы решили показать, как это можно сделать, на примере Habitica — это опенсорсное приложение, написаное почти на чистом Котлине. «Хабитика» отлично подходит под кейс с голосовым ассистентом — тут тоже для того, чтобы завести новую задачу, требуется заполнить довольно объемную форму. Попробуем заменить этот муторный процесс одной фразой с наводящими вопросами?
Я разбил туториал на две части. В этой статье мы разберемся, как добавить голосового ассистента в мобильное приложение и реализовать базовый сценарий (в нашем случае это готовый сценарий по уточнению прогноза погоды и времени — один из самых популярных в мире запросов к голосовым ассистентам). Во второй статье — а она выйдет уже скоро — мы научимся вызывать голосом определенные экраны и реализовывать сложные запросы внутри приложения.
Что нужно для работы
SDK. Мы взяли Aimybox как SDK для построения диалоговых интерфейсов. Из коробки Aimybox дает SDK ассистента и лаконичный и кастомизируемый UI (который при желании можно и вовсе переделать). При этом в качестве движков распознавания, синтеза и NLP можно выбрать из уже имеющихся или создать свой модуль.
По сути, Aimybox реализует архитектуру голосового помощника, стандартизируя интерфейсы всех этих модулей и правильным образом организуя их взаимодействие. Таким образом, внедряя это решение, можно значительно сократить время на разработку голосового интерфейса внутри своего приложения. Подробнее про Aimybox можно прочитать тут или тут.
Инструмент для создания сценария. Сценарий будем писать на JAICF (это опенсорсный и совершенно бесплатный фреймворк для разработки голосовых приложений от Just AI), а интенты распознавать с помощью Caila (NLU-сервис) в JAICP (Just AI Conversational Platform). Про них подробнее расскажу в следующей части туториала — когда дойдем до их использования.
Смартфон. Для тестов нам понадобится смартфон на Android, на котором мы будем запускать и тестить «Хабитику».
Порядок действий
Для начала форкаем «Хабитику» (ветку Release) и ищем самые важные для нас файлы. Я пользовался IDE Android Studio:
Находим MainActivity.kt — туда мы будем встраивать логику.
HabiticaBaseApplication.kt — там будем инициализировать Aimybox.
Activity_main.xml — туда встроим элемент интерфейса.
AndroidManifest.xml — там хранится вся структура приложения и его разрешения.
Согласно инструкции в репе «Хабитики» переименовываем habitica.properties.example и habitica.resources.example, убирая из них example, заводим проект в firebase под приложение и копируем в корень файл google-services.json.
Запускаем приложение, чтобы проверить, что сборка рабочая. Вуаля!
Для начала добавим зависимости Aimybox.
в dependencies и
И добавим сразу после compileOptions следующую строку, чтобы все работало корректно
Убираем флаги с разрешений RECORD_AUDIO и MODIFY_AUDIO_SETTINGS в AndroidManifest.xml, чтобы опции выглядели следующим образом.
Теперь инициализурем Aimybox в BaseApplication.
Добавляем AimyboxProvider при инициализации класса.
И делаем собственно инициализацию.
Вместо YOUR_KEY впоследствии будет ваш код от Aimybox Console.
Теперь встраиваем фрагмент в mainActivity.kt. Предварительно вставляем ФреймЛэйаут в activity_main.xml, прямо под фреймлэйаутом с id bottom_navigation
В сам MainActivity сначала добавляем эксплицитный запрос разрешений в OnCreate
И при их получении добавляем фрагмент в указанный выше фрейм.
Не забываем добавить в OnBackPressed возможности выйти из ассистента после захода в него.
Кроме этого, добавим в стили (styles.xml) в AppTheme
И отдельные стили чуть ниже:
Давайте проверим, добавился ли микрофончик. Запускаем приложение.
У нас посыпалась куча ошибок о неправильном синтаксисе. Исправляем все, как советует IDE.
Но микрофончик наползает на нижнюю навигацию. Давайте чуть поднимем. Добавим в стили выше в CustomAssistantButtonTheme:
Теперь подключим туда асисстента и проверим, нормально ли он отвечает. Для этого нам понадобится консоль Aimybox.
Начнем с того, что зайдем в app.aimybox.com под нашим акком гитхаба, сделаем новый проект, подключим пару навыков (я подключил DateTime для теста) и попробуем задать соответсвующие вопросы в асисстенте. Здесь же в настройках, в правом верхнем углу, берем apiKey, который вставляем в createAimybox вместо YOUR KEY.
Только надпись на английском, давайте поменяем приветственное сообщение в strings.constants.xml.
Вот ссылка на репозиторий с кодом.
В следующей статье про ассистента для «Хабитики» расскажу, как с помощью голоса не только узнавать погоду, а управлять непосредственно приложением — переходить по страничкам и добавлять привычки и задания.
Источник