Искусственный голос и синтез речи - 语音合成
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.


语音合成技术和文本语音转换 - Synthetic voice and Text to Speech technology - Синтетический голос и технологии преобразования текста в речь
 
TTS книги  Проверялка  ФорумФорум  Последние изображенияПоследние изображения  RSS  ПоискПоиск  РегистрацияРегистрация  ВходВход  

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

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


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

Разметка и озвучивание смешанного текста WAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
 evilone_ :: Пт Авг 05 2011, 22:22
Разметка и озвучивание смешанного текста FT09PX19cfHx+Pj4wAAAAAAAAAAACH+OjxDT1BZPkNvcHlyaWdodCAyMDA0IFRoZSBwaHBCQiBHcm91cCwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4AIfkEAQAADQAsAAAAAAsACQAABCmwNUCpvDNoi4EWVUcQCEIAnaAKDHoBSnIchisBSaEP9mQMgwWvUwk1IgA7Пт Авг 05 2011, 22:22

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

Смешанный текст - текст, содержащий помимо слов и символов на языке издания (базовом языке) символы на одном или нескольких других языках [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 Транслитерация

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

Вернуться к началу Перейти вниз
evmir_troll-hunter
Admin
evmir_troll-hunter


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

Разметка и озвучивание смешанного текста WAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
 evmir_troll-hunter :: Сб Авг 06 2011, 01:06
Разметка и озвучивание смешанного текста FT09PX19cfHx+Pj4wAAAAAAAAAAACH+OjxDT1BZPkNvcHlyaWdodCAyMDA0IFRoZSBwaHBCQiBHcm91cCwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4AIfkEAQAADQAsAAAAAAsACQAABCmwNUCpvDNoi4EWVUcQCEIAnaAKDHoBSnIchisBSaEP9mQMgwWvUwk1IgA7Сб Авг 06 2011, 01:06

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

Вернуться к началу Перейти вниз
evilone_
Участник «online словари»
evilone_


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

Разметка и озвучивание смешанного текста WAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
 evilone_ :: Сб Авг 06 2011, 22:46
Разметка и озвучивание смешанного текста FT09PX19cfHx+Pj4wAAAAAAAAAAACH+OjxDT1BZPkNvcHlyaWdodCAyMDA0IFRoZSBwaHBCQiBHcm91cCwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4AIfkEAQAADQAsAAAAAAsACQAABCmwNUCpvDNoi4EWVUcQCEIAnaAKDHoBSnIchisBSaEP9mQMgwWvUwk1IgA7Сб Авг 06 2011, 22:46

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

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

Вернуться к началу Перейти вниз
evmir_troll-hunter
Admin
evmir_troll-hunter


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

Разметка и озвучивание смешанного текста WAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
 evmir_troll-hunter :: Сб Авг 06 2011, 23:45
Разметка и озвучивание смешанного текста FT09PX19cfHx+Pj4wAAAAAAAAAAACH+OjxDT1BZPkNvcHlyaWdodCAyMDA0IFRoZSBwaHBCQiBHcm91cCwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4AIfkEAQAADQAsAAAAAAsACQAABCmwNUCpvDNoi4EWVUcQCEIAnaAKDHoBSnIchisBSaEP9mQMgwWvUwk1IgA7Сб Авг 06 2011, 23:45

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

Вернуться к началу Перейти вниз
evilone_
Участник «online словари»
evilone_


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

Разметка и озвучивание смешанного текста WAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
 evilone_ :: Вс Авг 07 2011, 22:14
Разметка и озвучивание смешанного текста FT09PX19cfHx+Pj4wAAAAAAAAAAACH+OjxDT1BZPkNvcHlyaWdodCAyMDA0IFRoZSBwaHBCQiBHcm91cCwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4AIfkEAQAADQAsAAAAAAsACQAABCmwNUCpvDNoi4EWVUcQCEIAnaAKDHoBSnIchisBSaEP9mQMgwWvUwk1IgA7Вс Авг 07 2011, 22:14

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

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

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

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

Вернуться к началу Перейти вниз
sadrus
Наблюдатель


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

Разметка и озвучивание смешанного текста WAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
 sadrus :: Чт Апр 04 2013, 12:48
Разметка и озвучивание смешанного текста FT09PX19cfHx+Pj4wAAAAAAAAAAACH+OjxDT1BZPkNvcHlyaWdodCAyMDA0IFRoZSBwaHBCQiBHcm91cCwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4AIfkEAQAADQAsAAAAAAsACQAABCmwNUCpvDNoi4EWVUcQCEIAnaAKDHoBSnIchisBSaEP9mQMgwWvUwk1IgA7Чт Апр 04 2013, 12:48

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

Вернуться к началу Перейти вниз
evilone_
Участник «online словари»
evilone_


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

Разметка и озвучивание смешанного текста WAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
 evilone_ :: Сб Апр 06 2013, 17:06
Разметка и озвучивание смешанного текста FT09PX19cfHx+Pj4wAAAAAAAAAAACH+OjxDT1BZPkNvcHlyaWdodCAyMDA0IFRoZSBwaHBCQiBHcm91cCwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4AIfkEAQAADQAsAAAAAAsACQAABCmwNUCpvDNoi4EWVUcQCEIAnaAKDHoBSnIchisBSaEP9mQMgwWvUwk1IgA7Сб Апр 06 2013, 17:06

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

Вернуться к началу Перейти вниз

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

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

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