Синтезатор речи SmartVoice

Switch to English RSS

Текущая версия: 4.1.8.
Дата выпуска: 2024-01-15.

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

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

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

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

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

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

Желающие добавить новые переводы или поправить уже существующие приглашаются на страницу переводов.

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

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

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

Необходим Android 4.4 или более поздний.


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

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

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

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

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

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

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

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

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

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

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

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


С вопросами и предложениями ко мне можно обращаться по электронной почте.

Порецкий Игорь Борисович