Словари для IVONA TTS 1.6.75. Обсуждение, предложения
- Fenix
- Администратор
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
В этой теме обсуждаем всё связанное со словарями.
good_cat писал(а): Nov 26 2017
Расстановка ударений в текстах для этих голосов одинаковое - прописной (заглавной) гласной буквой.skreb писал(а):Выложенные Вами Словари *.rex, *.dic для программ "Balabolka" и ''Demagog" подходят для только голоса Алёна или для голосов Максим и Татьяна тоже?
Поэтому можно использовать без сомнений.
Файлы Hmg - это файлы со списком омографов и правилами расстановки ударений.skreb писал(а):Существует ряд словарей Dic, Rex, Pls, Hmg. Для полноты понимания, объясните, пожалуйста, просто (как для чайника), их назначение, применение, все ли они нужны для озвучки, допустим, Максимом в «Балаболке».
Пример фрагмента словаря
По этим словарям обрабатываются омографы в тексте, в частности, программой "Homograph". Они могут быть разные по наполняемости.Код: Выделить всё
спешил=спЕшил,спешИл спешила=спЕшила,спешИла спешили=спЕшили,спешИли спешило=спЕшило,спешИло спешим=спЕшим,спешИм спешит=спЕшит,спешИт спешите=спЕшите,спешИте спешить=спЕшить,спешИть спешишь=спЕшишь,спешИшь спешу=спЕшу,спешУ
Файлы Pls - это словари для синтезатора речи IVONA TTS. В них содержатся правила озвучивания записанных в них слов. С помощью этих словарей корректируется произношение слов.
О словарях Dic, Rex почитайте в теме диалоги с автором программы "Demagog", я лучше не смогу обьяснить. В этой же теме есть ссылка на ответ автора программы "Balabolka".
flegont писал(а):Для начала, попробуйте просто послушать, как читает Максим вообще без словарей. Вполне вразумительно.skreb писал(а):Для полноты понимания, объясните...
У меня, к примеру, Максим версии 74 и (до последнего времени) ни одного подключенного словаря. Ни пресловутых PLS, ни rex, ни dic. Да, Максим иногда делает ошибки в ударениях и, изредка, читает в слове букву "е" там, где подразумевается "ё". Где-то так 3-4 ошибочки на страницу.
Через некоторое время, когда красота голоса (а он, довольно качественный, смею заметить) уже не будет так изумлять и восхищать, некоторые постоянные ошибки уже начнут слегка раздражать. Или даже не слегка... Вот тогда и наступит время подумать о подключении словарей.
Тут главное - без фанатизма!
"Исправлять надо лишь то, что раздражает" (с) В. Шойтов-Харитановский - автор программы MP3book2005
Лично я, кроме словаря-ёфикатора, расставляющего букву "ё" вместо "е" везде, где она точно должна быть, пользуюсь еще словарем омографов, чтобы вручную разобраться с омографом "все/всё". Он - самый нервирующий, на мой взгляд. И - самый частый, около 50% случаев.
Итак:
1) словарь-ёфикатор
2) словарь омографов для ручной правки вот этой бандитской десятки Ё-омографов: все перед всем слезы села небо чем-то жены сестры берег
Осталось рассказать, как я борюсь с ошибками ударения Максима. Тут я - кустарь-одиночка. Никого, конечно, не призываю следовать своему примеру.
Есть у меня маленький словарик Maxim-ipa.dic, который постепенно пополняется. Для предъявления на всеобщее обозрение он пока не готов.
Но принцип его - тот же, что описан good_cat в руководстве по созданию аудиокниг: вставка управляющего тега прямо в текст. Например, Максим упорно читает: в своей дУше вместо в своей душЕ Исправляется это добавлением в мой словарик вот такого правила:
*ей душе=ей <phoneme alphabet="ipa" ph="dʊʂˈe"/>
И т.д. и т.п.
В общем, повторю еще раз: не надо торопиться сразу подключать любой словарь, подвернувшийся под руку.
"Лучше ничего не делать, чем сделать что-нибудь не так" (с) Лайф-хак от легионеров Римской империи.
tonio_k писал(а):Хочу поделиться такой своей находкой
в файле 2_corector_ivona_ru.rex - из mytts_dic_rex.zip
п. 12.4. "Коррекция букв в словах кроме аббревиатур". Оно делает все слова в книге с маленькой буквы.
Если это правило сработает в самом начале обработки текста, то все правила типа: $И все?=И всЁ? не будут работать так как они привязаны к регистру. Если его запустить в самом конце, то правила типа вдоль облака=вдоль Облака потеряют смысл, так как всё опять заменится на облака.
Выход из ситуации я для себя нашел такой:
Сначала содержимое п. 12.4. в файле 2_corector_ivona_ru.rex надо заремарить или удалить ( только правила с буквами русского алфавита) иначе дальнейшее не имеет смысла.
Теперь создадим 3 файла
1) Постобработка резервируем омографы с ударением на 1 букву.DIC
одна из строк файла:
$Облака=zfkrfdgkzl1138
где каждому омографу я присваиваю уникальный код.
В файле собраны ВСЕ Омографы, у которых ударение падает на первую букву.
я их вытащил из файла all_omographs.hmg - тот что идет с программой Homograph.
2) Постобработка смена регистра.REX
это скопированный п. 12.4.
одна из строк файла:
@\b[О]([^А-ЯЁ\d]+)=о$1
меняем на нижний регистр все первые буквы слов в тексте
3) Постобработка восстановление омографы с ударением на 1 букву.DIC
тут делаем обратную операцию к п. 1
одна из строк файла:
zfkrfdgkzl1138=Облако
Теперь запускаем их строго друг за другом по порядку в самом конце обработки книги.
т.е. не кидаем скопом в папку со словарями, а именно сначала получаем текст по первому правилу, и полученный текст обрабатываем следующим правилом. Так как 2 по порядку это REX словарь.
Альтернатива - тогда можно будет, действительно, кинуть все в одну папку со словарями и поставить галочку напротив. Тогда балаболка / демагог сделает разом, это если второй файл будет .DIC а правила в нем будут типа $О*=о, но тогда у вас могут абривиатуры поплыть типа сССР или бАМ
Вот и всё. Все слова будут в маленькой буквы, а нужные нам омографы, с ударением на первую букву, - останутся без изменений.
у кого возникает проблема с "быстрым проговариванием без паузы на одном дыхании" оглавление текста в начале книги типа:
Роман Злотников
ШАГ К ЗВЕЗДАМ
Пролог
Блаблабла....конец книги.
в 2_corector_ivona_ru.rex нужно добавить строчку
([A-Za-zА-яЁё]|\,)(\r)(\n)=$1<silence msec="500"/>
- tonio_k
- V.I.P.
Re: Словари для IVONA TTS 1.6.75 (Татьяна и Максим)
в словарь 3_vse_vsyo.rex рекомендую в самом начале словаря поставить строку:
\bвсё\b=всеъ, а в самом конце строку:\bвсеъ\b=всё
Что это даст? Если автор книги в тексте сам расставил бувы ё в словах все=всЁ, то эти выше указанные строки резервируют от ошибочных исправлений
\bвсё\b=всеъ, а в самом конце строку:\bвсеъ\b=всё
Что это даст? Если автор книги в тексте сам расставил бувы ё в словах все=всЁ, то эти выше указанные строки резервируют от ошибочных исправлений
- wasyaka
- V.I.P.
Re: Словари для IVONA TTS 1.6.75 (Татьяна и Максим)
Т. е. все на всё ошибочно исправлять допускается? А словарик отключить?
- wasyaka
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
vse_vsyo.rex как и chisla.rex - это своего рода наставление: начальный набор - далее если "вкуриш" тему относительно просто улучшить.
Я попытался:
1. все=>всЕъ(dic) -изначально правильное Е
2. все=>всЁъ(dic) -изначально правильное Ё
3. все=>всЁ(rex) - всё что может применится к всё
4.всЁ=>всЕ(rex) - вторичный фильтр
5 всЕ=>всЁ(rex) - вторичный фильтр
6.всЕ,всЁ=>всЕ(rex) - фильтр третьего уровня
7.всЕ=>всЁ(rex) - фильтр четвёртого уровня
8.всё=>всеъ(dic) - фильтр пятого уровня
В остатке фразы которые вносить в словарь не имеет смысла...
Я слушаю, именно слушаю, а не как фон, чтоб заполнить уши, - все ошибки фиксирую и редактирую-дополняю, если есть смысл...
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Иногда правила не срабатывают, когда в тексте между тире и словом отсутствует пробел.
Корректировка для таких случаев(словарь rex):
Корректировка для таких случаев(словарь rex):
Код: Выделить всё
# Исправление "прилипания" тире к слову типа: "именно.- для" или "именно: -для" или "именно- для"
(\w+\S?)\s\-(\w+)=$1 - $2
(\w+\S?)\-\s(\w+)=$1 - $2
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Меня раздражало, как Максим произносит слова типа:
своей четкой произносимой тО хотя вслух мы произносим примерно:tə
все варианты словосочетаний с -то в словаре фонем не запишешь.
Для себя решил вопрос такой заменой:
Стало звучать приятнее
► Показать
все варианты словосочетаний с -то в словаре фонем не запишешь.
Для себя решил вопрос такой заменой:
Код: Выделить всё
(\w+)-то\b=$1-тоъ
- ValentinShum
- Прохожий
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Объясните мне куда кидать словари в программу Balabolka для коректного произношение?
Например есть такой словарь если просто его кинуть в мои документы\Balabolka это не сработает.
Например есть такой словарь если просто его кинуть в мои документы\Balabolka это не сработает.
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
словари в Балаболке находятся в подпапке dictionaries. Ваш пример словаря не подходит к голосовому движку IVONA.
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Уже редко, но еще попадаются книги в формате отсканированного и распознанного текста с разрывами в предложениях в виде абзаца в местах переноса на новую строку по правому краю страницы.
Пример текста: В таких разрывах голосовой движок может начать делать ненужные паузы с потерей интонации целого предложения.
Для исправления текста можно применить такие правила для словаря REX:
Описание строк:
1.заменяет символ "пространство" на пробел
2,3 - склеивают разорванные предложения
4.удаляет лишние пробелы
Пример текста:
► Показать
Для исправления текста можно применить такие правила для словаря REX:
Код: Выделить всё
[\xA0]+=
@[\r\n]+([а-яёa-z])= $1
@([а-яёa-z]+[ ,:-;»]*)[\r\n]{1,2}=$1
[ ]{2,}=
1.заменяет символ "пространство" на пробел
2,3 - склеивают разорванные предложения
4.удаляет лишние пробелы
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Размышления на тему вопросительной интонации у Максима:
Оригинальный текст:
Добавим запятую перед словом со знаком вопроса:
После вопросительного знака добавим еще и знак абзаца:
Только знак абзаца после знака вопроса:
Надо поэкспериментировать
Оригинальный текст:
Код: Выделить всё
- Ларисса, <phoneme ph="ˈa"/> у вас <phoneme ph="kɐlʲˈosə"/> <phoneme ph="jˈesʲtʲ"/>? - снова задала я вопрос.
► Показать
Код: Выделить всё
- Ларисса, <phoneme ph="ˈa"/> у вас <phoneme ph="kɐlʲˈosə"/>, <phoneme ph="jˈesʲtʲ"/>? - снова задала я вопрос.
► Показать
Код: Выделить всё
- Ларисса, <phoneme ph="ˈa"/> у вас <phoneme ph="kɐlʲˈosə"/>, <phoneme ph="jˈesʲtʲ"/>?
- снова задала я вопрос.
► Показать
Код: Выделить всё
- Ларисса, <phoneme ph="ˈa"/> у вас <phoneme ph="kɐlʲˈosə"/> <phoneme ph="jˈesʲtʲ"/>?
- снова задала я вопрос.
► Показать
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Попалась мне как-то электронная книга со словом:
Читал бы с экрана даже не заметил бы, а вот Максим какую-то ересь на этом слове произносит...
В связи с этим, создал правила замены REX. Эти правила могут пригодится для любого голоса в т.ч. для Яндекса на этапе предварительной чистки текста книги:
Тут я пытался максимально "осторожно" автоматизировать замену латинских букв на кириллицу в русских словах. Критерием замены является преобладающее количество русских букв в слове что бы не происходили ложные срабатывания при озвучивании английских слов (других слов на латинице).
Помимо "правильного" звучания решается еще одна проблема: уже не будут игнорироваться некоторые правила в словарях, если в этих правилах присутствует данное слово, - ведь это слово в словаре записано полностью на кириллице.
Код: Выделить всё
О6оpотень
В связи с этим, создал правила замены REX. Эти правила могут пригодится для любого голоса в т.ч. для Яндекса на этапе предварительной чистки текста книги:
► Показать
Помимо "правильного" звучания решается еще одна проблема: уже не будут игнорироваться некоторые правила в словарях, если в этих правилах присутствует данное слово, - ведь это слово в словаре записано полностью на кириллице.
- Lecron
- Специалист
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
А почему бы не убрать границу слова \b ? При посимвольной обработке она не нужна. Достаточно одно прохода в таком порядке
Код: Выделить всё
([а-яё])a([а-яё])=$1а$2
([а-яё]{2,})a=$1а
a([а-яё]{2,})=а$1
Также нужно заменять латинские k,u,x. Плюс рассмотреть возможность для древних текстов из фидо заменять H (эйч) на н.
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
с правила
Код: Выделить всё
([а-яё])a([а-яё])=$1а$2
Решил придерживаться другой логики, если слово начинается с 2 русских букв или заканчивается на 2 русские буквы, то скорее всего это слово на русском.
Далее слово от начала слова и от конца прогоняется правилами для замены всех букв на латиницу.
Несколько прогонов потому что в одном слове может встретиться несколько латинских букв за раз. Не уверен, что без дублирующих прогонов регулярка отработает без пропусков особенно, если латинская будет одна и та же буква в слове несколько раз.
Я понимаю, что если слушаю русскую книгу, то и слова в ней скорее всего все русские. Так что ваш вариант, скорее всего будет оптимальнее. Подумаю над этим.
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
так далеко не стал заходить. Словари стараюсь пополнять по мере возникающих проблем. В основном проблемы были с гласными и латинскими "с" и "р". Даже цифра 6 вместо б встречалась, А вот х в словах как-то не попадалось кроме путаницы в римских числах
- Lecron
- Специалист
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Дело даже не в русских словах, а в том, что в иностранных нечего делать руским буквам. Иностранные тексты обычно пишутся людьми ничего не знающими о кирилице. Наши авторы, максимум копипастят их их других источников.
Даже если несколько раз подряд, если между ними две русских — найдется всё.
Проблема была в границе слова (\b), что требует большего количества прогонов, ибо все время ищем с начала/конца. Если ее убрать, достаточно двух прогонов. Даже если не будете использовать правило РусЛатРус. Не забывайте, что "обратное" правило можно почти приравнять к отдельному прогону.
В основном "с". Какой идиот додумался посадить на одну кнопку буквы с полностью идентичным начертанием?
ЗЫ. Как меня эта \b бесит. Вечно ошибки в словах с дефисом. Последнее время больше использую lookahead
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
поэтому в своих словарях у меня этот дифис вообще удаляется в самом начале обработки словарями.
Выше для Максима ещё пытался сохранить дефис. Теперь отказался полностью от него полностью.
Например для быстрого алгоритма слово "матрешка" и "матрешка-то" это два разных слова. А умножать правила в словаре Ёфикации в 2 раза прописывая каждому слову вариант с "-то"
матрешка=матрёшка
матрешка-то=матрёшка-то
это не вариант. Поэтому "-то" у меня заменяется на тоъ. Если нужно, то в конце обработки словарями этот дифис можно восстановить через
* тоъ=-то
этот возврат был применен с Яндекс голосами. Они (в отличии от Максима) "-то" читают правильно, а "тоъ" читают неправильно.
- wasyaka
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
А как тебе такое?
Шейх начал нараспев читать ду’а, желательное перед началом трудного и важного дела – и его подхватили все присутствующие … Аллаhумма, инни астахыру-кя би-’ильми-кя ва астакъдирукя би-къудрати-кя ва ас-алю-кя мин фадли-кяль-’азыми фа-инна-кя такъдиру ва ля акъдиру, ва та’ляму ва ля а’ляму, ва Анта ‘аллямуль-гъуюби! Аллаhумма, ин кунта та’ляму анна hазаль-амра хайрун ли фи дини, ва ма’аши ва ‘акъибати амри, фа-къдур-hу ли ва йассир-hу ли, сумма барик ли фи-hи; ва ин кунта та’ляму анна hазаль-амра шаррун ли фи дини, ва ма’аши ва ‘акъибати амри, фа-сриф-hу ‘анни ва срифни ‘анhу ва-къдур лияль-хайра хьайсу кяна, сумма ардини биhи[10 - О, Аллаh,
(Александр Афанасьев
Врата скорби. Повелители огня)
- tonio_k
- V.I.P.
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
старый анекдот: "в мед училище на уроке латинского языка одна группа студентов случайно вызвала Сатану".
Это я к тому, что слушая фразы на незнакомом языке, ошибки сделанные в нём голосовым движком слушателю не заметны. Мой школьный курс английского иногда требует добавить какое-то английское слово в словарь на латинице, но ваш пример я бы даже трогать не стал
Отсюда нет проблем с несработавшими правилами. А замена латинских букв на кириллицу, возможно, даже "улучшит" ситуацию, но не знающему языка это будет все равно не заметно... Кроме цифры 6 разве что - и то не факт на фоне общей абракадабры.
- FastStyx
- Прохожий
Словари для IVONA TTS 1.6.75. Обсуждение, предложения
Приветствую всех.
Такой вопрос - как созданный PLS-словарь подключить к движку (в данном случае к Ivona Tatiana) ?
В самой программе OpenPLS - все хорошо произносится, как сделать, чтобы Татьяна все слова говорила именно так, как в ней ?
Такой вопрос - как созданный PLS-словарь подключить к движку (в данном случае к Ivona Tatiana) ?
В самой программе OpenPLS - все хорошо произносится, как сделать, чтобы Татьяна все слова говорила именно так, как в ней ?