TTS книги  Проверялка  ФорумФорум  RSS  ПоискПоиск  ПользователиПользователи  ГруппыГруппы   Статистика  Список рапортов  ПрофильПрофиль  Сообщения ЛССообщения ЛС  Выход [ evmir_troll-hunter ]Выход [ evmir_troll-hunter ]  



Начать новую темуОтветить на тему

Разметка и озвучивание смешанного текста

Предыдущая тема Следующая тема Перейти вниз
АвторСообщениеРазметка и озвучивание смешанного текста
evilone_
Участник «online словари»
avatar


Сообщений : 860
Репутация : 317

 evilone_ :: 05.08.11 21:22
05.08.11 21:22
Выбрать/отменить одновременное цитирование Ответить с цитатой Редактировать сообщение Удалить сообщение Послать сигнальный рапорт на это сообщение администратору или модератору Закрыть рапорты на это сообщение

Спасибо/Thanks
Разметка и озвучивание смешанного текста

Смешанный текст - текст, содержащий помимо слов и символов на языке издания (базовом языке) символы на одном или нескольких других языках [1].

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

В связи с этим сейчас все больше получает распространение новый метод разметки и синтеза смешанного текста - били́нгва (от лат. bi - «дву(х)» и lingua - «язык») - метод, при котором используются два голосовых синтезатора - каждый для своего языка. Озвучивание смешанного текста разными голосами снимает все те погрешности произношения, которые возникают при синтезе всего текста только одним голосом. Однако подобный метод не единственный, существует и альтернатива, но про неё потом.

Главными проблемами при использовании метода билингва становятся: правильный выбор нужного голосового синтезатора, который бы хорошо сочетался с синтезатором для базового текста, имеется в виду восприятие произношения «на слух» и правильная разметка текста, выделение в тексте базового текста и всего остального. Если первая задача решается довольно просто – каждый может выбрать для себя то, что считает лучшим, то вторая представляет некоторые трудности. Прежде всего, трудности обусловлены самим текстом, точнее тем как именно базовый язык пересекается с другим - это могут быть отдельные слова, аббревиатуры, фразы и т.п.

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

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

Теги (tags) - это текстовые управляющие команды, вставляемые в читаемый текст, причём они сами не читаются, а подают синтезатору (речевому движку) справочную информацию (команды) по изменению тех или иных параметров чтения текста [2].

Поскольку теги смены голоса для SAPI4 некоторые голоса не поддерживают, остановимся только на SAPI5.

Тег Voice - заставляет движок изменить синтезатор на другой в соответствии с параметрами (Age, Gender, Language, Name, Vendor и VendorPreferred). Тег может быть пустым (тогда его действие распространяется на весь последующий текст) или не быть пустым (тогда действие тега ограничивается лишь фрагментом текста) [2].

Тег имеет два атрибута: Required ("обязательный") и Optional ("возможный"). Будет выбран речевой движок, который в наибольшей степени соответствует заданным параметрам. Если ни один подходящий голос не найден, то никаких изменений не произойдёт [2].
Код:
Это предложение будет прочитано голосом по умолчанию.
<voice required="name = Alyona22k">
Это предложение будет прочитано Алёнкой.
<voice required="name = Microsoft Anna"> 
This text will be read by Anna.
</voice>
</voice>
Тег Lang - заставляет движок изменить синтезатор на другой в соответствии с заданным языком. Тег может быть пустым (тогда его действие распространяется на весь последующий текст) или не быть пустым (тогда действие тега ограничивается лишь фрагментом текста) [2].

Тег имеет только один атрибут LangId - это идентификатор языка, например, 419 (русский), 422 (украинский), 409 (американский английский) или 411 (японский). Хотя эти числа являются шестнадцатеричными, они записываются без приставки "0x" [2].

Примеры для различных идентификаторов языка LangId:
Код:
409=You have selected %s as the computer's default voice.
411=%sの声をコンピュータの規定の声に選択しました。
804=你选择了%s作为计算机的缺省语音
401=لقد اخترت %s كالصوت الإفتراضي للكمبيوتر.
416=Você selecionou %s como voz padrão do computador.
405=Jako výchozí hlas počítače jste vybrali %s.
406=Du har valgt %s som computerens standardstemme.
407=Sie haben %s als Computerstandardstimme gewählt.
408=Έχετε επιλέξει %s ως προεπιλεγμένη φωνή του υπολογιστή.
c0a=Ha seleccionado %s como voz predeterminada de su equipo.
40b=%s on valittu tietokoneen oletusääneksi
40c=Vous avez choisi %s comme voix par défaut.
40d=בחרת את %s כקול ברירת המחדל של המחשב.
40e=A következőt választotta ki a számítógép alapértelmezett hangjaként.
410=La voce selezionata come predefinita è %
412=컴퓨터의 기본 음성으로 %s을(를) 선택했습니다.
413=U hebt %s als standaardstem geselecteerd.
414=Du har angitt %s som standardstemme for datamaskinen.
415=Jako domyślny głos komputera wybrano głos %s
816=Seleccionou %s como a voz predefinida do computador.
419=Голос компьютера по умолчанию - %s
41d=Du har valt %s som standardröst för datorn
41f=%s bilgisayarın varsayılan insan sesi olarak seçildi.
404=您選擇了 %s 做為電腦的預設語音。
Тег Lang является усечённым вариантом тега Voice с атрибутом Required, который содержит строку "Language=xxx" [2].
Код:
<voice required="Language=409">
  A U.S. English voice should speak this.
</voice>
<lang langid="419">
  Это предложение будет прочитано русским голосом.
</lang>

Пример словаря для разметки русско-английского текста [3]:
Код:
([A-z.,!?-x20]+)=<eng>$1</eng>
<eng>([!?.,-x20]+)</eng>=$1
<eng>=<voice required="Name=Microsoft Anna">
</eng>=</voice>

Как уже наверно видно, проблему в таком методе составляет только разметка текста, который содержит в себе похожие символы, но имеет разное произношение. Данные словари почти полностью перекрывают смешанные тексты с базовым русским языком.

Помимо описанного метода синтеза, более чем с одним голосом, существует довольно простой метод синтеза одним голосом для базового языка. Заключается он в транслитерации слов другого языка на базовый язык. Простой пример:
Код:
This test consists of one sentence.
Зыс тест консист оф ван сентенс.
Для реализации такого метода достаточно одного словаря (словарь транслитерации), в котором будут переводиться базовые сочетания. Например, согласно [4]:
Код:
ё=yo
ж=zh
ц=cz, c
ч=ch
ш=sh
ы=y'
ю=yu
я=ya
...
Данный метод прост до безобразия, однако с его помощью можно легко озвучивать текст с более чем двумя языками помимо базового, правда иногда, при синтезе, получается очень сильный акцент в виду неидеальности самой транслитерации слова.

Литература:
  1. Мильчин А.Э. Издательский словарь-справочник: [электронное издание]. — 3-е изд., испр. и доп. — М.: ОЛМА-Пресс, 2006. http://slovari.yandex.ru
  2. Морозов И. Справочное руководство к программе Балаболка. http://www.cross-plus-a.ru
  3. Венедикт Ли, словарь Я_Билингва_SAPI5.ini. http://aloys.narod.ru/demagog.htm
  4. ГОСТ 7.79-2000 Транслитерация

Ссылки на предыдущие обсуждения данной темы:
http://mytts.forum2x2.ru/t291-topic
http://mytts.forum2x2.ru/t303-topic

Вернуться к началу Перейти вниз
Посмотреть профильОтправить личное сообщение
evmir_troll-hunter
Admin
avatar


Сообщений : 628
Репутация : 208

 evmir_troll-hunter :: 06.08.11 0:06
06.08.11 0:06
Выбрать/отменить одновременное цитирование Ответить с цитатой Редактировать сообщение Удалить сообщение Послать сигнальный рапорт на это сообщение администратору или модератору Закрыть рапорты на это сообщение

У словарного способа есть минусы:
1) несовпадение громкости русского и английского голосов;
2) при некачественном сканировании текстов появляются латинские буквы - близнецы кириллических (х, р, о, с, к, М), и они охватываются тегами!
Программы, самостоятельно работающие с 2-мя голосами (без тегов): данный список будет пополняться

Вернуться к началу Перейти вниз
Посмотреть профильОтправить личное сообщение
evilone_
Участник «online словари»
avatar


Сообщений : 860
Репутация : 317

 evilone_ :: 06.08.11 21:46
06.08.11 21:46
Выбрать/отменить одновременное цитирование Ответить с цитатой Редактировать сообщение Удалить сообщение Послать сигнальный рапорт на это сообщение администратору или модератору Закрыть рапорты на это сообщение

Спасибо/Thanks
чуть-чуть переделали словарик Я_Билингва для разметки, пользуйтесь
http://mytts.forum2x2.ru/t444-topic

evmir1 пишет:
У словарного способа есть минусы
минус громкости можно решить тегом <volume level="100"></volume> указав нужный уровень, а минус со сканированием можно решить корректором, правда долго зато надежно Wink программы также будут (должны) спотыкаться на таком тексте так что это относится и к программному способу скорее всего.

Вернуться к началу Перейти вниз
Посмотреть профильОтправить личное сообщение
evmir_troll-hunter
Admin
avatar


Сообщений : 628
Репутация : 208

 evmir_troll-hunter :: 06.08.11 22:45
06.08.11 22:45
Выбрать/отменить одновременное цитирование Ответить с цитатой Редактировать сообщение Удалить сообщение Послать сигнальный рапорт на это сообщение администратору или модератору Закрыть рапорты на это сообщение

evilone_ пишет:
минус громкости можно решить тегом <volume level="100"></volume>
Бесплатные, английские голоса не реагируют на этот тег.

Вернуться к началу Перейти вниз
Посмотреть профильОтправить личное сообщение
evilone_
Участник «online словари»
avatar


Сообщений : 860
Репутация : 317

 evilone_ :: 07.08.11 21:14
07.08.11 21:14
Выбрать/отменить одновременное цитирование Ответить с цитатой Редактировать сообщение Удалить сообщение Послать сигнальный рапорт на это сообщение администратору или модератору Закрыть рапорты на это сообщение

вот еще один способ как улучшить чтение слов написанных латиницей, правда только для аленки.

создаем новый голосовой профиль, называем его например eng вот с такими настройками:



для разметки текста используем словарь билингва для нового профиля:
Код:
<@>=<voice required="Name=eng">
</@>=</voice>

Вернуться к началу Перейти вниз
Посмотреть профильОтправить личное сообщение
sadrus
Наблюдатель


Сообщений : 3
Репутация : 0

 sadrus :: 04.04.13 11:48
04.04.13 11:48
Выбрать/отменить одновременное цитирование Ответить с цитатой Редактировать сообщение Удалить сообщение Послать сигнальный рапорт на это сообщение администратору или модератору Закрыть рапорты на это сообщение

Спасибо/Thanks
Здравствуйте!
Подскажите, пожалуйста можно ли в Я_Билингва_SAPI5.rex добавить третий язык (греческий). Я пытался по-аналогии добавить в файл настройки для греческого, но у меня ничего не вышло.
Спасибо!

Вернуться к началу Перейти вниз
Посмотреть профильОтправить личное сообщение
evilone_
Участник «online словари»
avatar


Сообщений : 860
Репутация : 317

 evilone_ :: 06.04.13 16:06
06.04.13 16:06
Выбрать/отменить одновременное цитирование Ответить с цитатой Редактировать сообщение Удалить сообщение Послать сигнальный рапорт на это сообщение администратору или модератору Закрыть рапорты на это сообщение

sadrus, можно заменить английский греческим это не сложно а добавить можно как-то так наверно:
Код:
([δεζη...]+)=<#>$1</#>
...
<#>=<voice required="Language=408">
</#>=</voice>
только там есть буквы которые пишутся как в русском или английском, например AZEMOPKПФ... для них нужно будет делать отдельное правило-исключение по соседним в слове буквам - это долго и сложно но возможно Smile

Вернуться к началу Перейти вниз
Посмотреть профильОтправить личное сообщение

Разметка и озвучивание смешанного текста

Предыдущая тема Следующая тема Вернуться к началу
Разметка и озвучивание смешанного текста
Страница 1 из 1Страница 1 из 1
  Следить за ответами в теме    Форма быстрого ответа    Следить за ответами в теме    Форма быстрого ответа  
Начать новую темуОтветить на темуПерейти:

Удалить тему Отправить в корзину  Перенести тему  Закрыть тему  Разделить тему Объединить темы 
Инструменты для модерации
Этот сайт не предоставляет электронные версии программного обеспечения и полнотекстовых электронных изданий, а занимается лишь
подборкой и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями.

Создать форум | ©phpBB | Бесплатный форум поддержки | Сообщить о нарушении