SmartVoice

This page in English

Текущая версия: 2.7.7

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

Помимо прочего, синтезатор способен распознавать и читать графические символы (так называемые emoji), Причем позволяет выбрать специально для этого отдельный голос.

Язык синтеза, равно как и голос, можно оперативно переключать и вручную через панель уведомлений. Эта возможность включается и выключается в экране общих настроек приложения.

После установки синтезатор оказывается доступен в списке приложений, что позволяет настроить его еще до запуска.

интерфейс приложения доступен на следующих языках: русском, английском, испанском, итальянском, польском, хорватском ииврите.

Пользуясь случаем, хочу выразить благодарность за переводы: Ади Кушниру за иврит и Звонимиру Станечичу за польский и хорватский.

Продукт предназначается в первую очередь для пользователей, отягощенных суровыми зрительными ограничениями, для которых речевой интерфейс является первичным. Увы, средства специального доступа в Android на сегодняшний день не предлагают сколько-нибудь пригодного к реальному использованию механизма переключения языка речевого синтеза, позволяющего менять его на лету, в результате чего данная категория пользователей в неодноязычной среде оказывается, - не побоюсь этого слова, - попросту дискриминированной. Кроме того, многие синтезаторы требуют установки голоса как дополнительного шага, до выполнения коего они сказать ничего не способны.

SmartVoice же готов к работе сразу после установки, так как имеет встроенный голос, правда на данный момент только русский. Для синтеза речи на иных языках он может использовать голоса Vocalizer Expressive от компании Nuance Communications, Inc., но разработан он отнюдь не с ее ведома. Разумеется, эти голоса не входят в состав синтезатора. Думаю, они должны бы по-хорошему быть приобретены у законных владельцев. Во всяком случае, это не мое собачье дело. Я лишь хочу предоставить вожделенную функциональность тем, кому она на самом деле отчаянно нужна.

В общем, при желании пакет можно взять здесь, установить его и использовать исключительно на свой страх и риск. Разумеется, никаких гарантий.


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

Прежде всего, всю эту автоматику можно отключить, установив флажок "Использовать только голос по умолчанию или по запросу клиента". Если этот флажок установлен, синтезатор будет честно выполнять запрос клиента, используя тот язык и голос, который там был указан. Обычно это язык, выбранный в системном меню настроек речевого синтеза, хотя приложения, обращающиеся к синтезатору, имеют возможность явно задавать эти параметры.

В целом поведение синтезатора по отношению к текстовому фрагменту зависит от положения флажка "Использовать единый голос для целого сообщения". Если он установлен, каждый переданный синтезатору фрагмент текста считается неделимым, и синтезатор просто пытается подобрать голос, наиболее подходящий для его произношения. В противном же случае выполняется языковая разметка, то есть разбивка текста на части, соответствующие различным языкам и назначение голоса для произношения каждой части.

Поскольку надежное и однозначное определение языка для сравнительно небольшого фрагмента текста в общем случае проблематично, подбор производится в соответствии с приоритетами, задаваемыми настройкой "Порядок распознавания языков". Список просматривается сверху вниз. Язык, находящийся выше по списку, имеет больше шансов быть использованным. Этот же список принимается во внимание и при языковой разметке.

Такие языки, как арабский и иврит, используют свой собственный набор символов (алфавит), по которому их легко распознать. Другие же подразделяются на группы по принципу общности алфавита. В SmartVoice таких группы три: латиница, кириллица и восточно-азиатская идеография. Для каждой из них можно выбрать голос, который будет использоваться в случаях, когда конкретный язык установить не удалось, а выявлена лишь принадлежность к группе.

Итак, в случае использования единого голоса для целого сообщения, выбор его происходит следующим образом:

  1. Производится попытка определить язык сообщения или хотя бы принадлежность его к той или иной языковой группе и, в случае удачи, выбирается голос в соответствии с предпочтениями, настроенными в секции "Выбор голосов".
  2. Если действия, описанные в первом пункте, к результату не привели, но язык предыдущего сообщения отмечен в списке "Продолжать использовать выбранный язык пока не будет распознан иной", выбирается тот же голос, что и для предыдущего сообщения.
  3. Если и из этого не вышло ничего путного, но в настройках автоматического распознавания языка установлен флажок "Предпочитать текущий язык интерфейса", выбирается голос, соответствующий языку текущей локали.
  4. И, наконец, если и это не помогло, язык и голос выбираются в соответствии с запросом клиента или системным умолчанием.

Языковая разметка текста выполняется в четыре этапа:

  1. Если задан "Предпочтительный голос для произношения чисел", из текста выделяются чисто числовые фрагменты и для них назначается соответствующий голос.
  2. Производится попытка выделения фрагментов по принципу их принадлежности к тому или иному языку или, на худой конец, к языковой группе. Для выделенных фрагментов выбираются голоса в соответствии с предпочтениями, заданными в секции "Выбор голосов".
  3. Из текста выделяются графические символы и для их чтения назначается голос в соответствии с настройкой "Голос для чтения графических символов в секции "Выбор голосов".
  4. Полученный в результате список текстовых фрагментов просматривается последовательно и, если встречаются такие, для которых голос еще не определен, выбор его производится в точности так, как описано выше в пунктах 2, 3 и 4, где речь шла о выборе голоса для целых сообщений.

Пожалуй, к сказанному стоит добавить еще то, что автоматическому распознаванию подлежат лишь языки, а не их варианты и диалекты. Последние же могут присутствовать в системных локалях или клиентских запросах. Иными словами, клиент может запросить, скажем, американский или британский вариант английского языка, но при автоматическом распознавании может быть выбран только английский. Это следует понимать, задавая предпочтения в секции "Выбор голосов".

Замечание о выборе голоса через ярлык в панели уведомлений. Это не сохраняемая настройка. Выбор действует только до наступления одного из следующих событий:

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