Страница 16 из 19

Yandex TTS

Добавлено: 21 дек 2020 21:52
Pin240
Все же балаболка вещь)) Особенно когда есть свой API ключ

Yandex TTS

Добавлено: 25 дек 2020 14:34
olelog
Подскажите, что происходит с "yndx_tts64" ? Рвет куски текста из файлов, некоторые файлы по 3 минуты, вместо 5, короче получается бред а не книга. Может что изменить в настройках потоков обработки и скачивания файлов ?

Yandex TTS

Добавлено: 25 дек 2020 17:42
Pin240
olelog писал(а):
25 дек 2020 14:34
Подскажите, что происходит с "yndx_tts64"
Ядндеск-разрабы с защитой чудят

Yandex TTS

Добавлено: 25 дек 2020 21:01
wasyaka
Pin240 писал(а):
25 дек 2020 17:42
Ядндеск-разрабы с защитой чудят
Не чудят, а зделали замануху - подсадили... :russian:
теперь ждут денюжку :wall:
А в это время не подсевшие :big_smile: на халявный сыр :shout:
► Показать
:music: :bayan: :russian: и не тратят нервные клетки...
С наступающим! :sleigh: :girl_elka:
(это мой предел скорости инета)

Yandex TTS

Добавлено: 25 дек 2020 23:05
speeck
olelog писал(а):
25 дек 2020 14:34
Подскажите, что происходит с "yndx_tts64" ? Рвет куски текста из файлов, некоторые файлы по 3 минуты, вместо 5, короче получается бред а не книга. Может что изменить в настройках потоков обработки и скачивания файлов ?
А если 1 поток поставить? Тов. chibis выше писал что-то про это.
Собственно, следовало ожидать косяков от такого вида озвучки, костыль через демо-страницу однако, лично я вообще удивлен, как chibis так ловко реализовал это :smile1:

Yandex TTS

Добавлено: 26 дек 2020 09:33
Pin240
Бог ты мой как вы ермилу терпите.... его слушать невозможно..

Yandex TTS

Добавлено: 26 дек 2020 10:07
olelog
Поставил один поток, и вот результат ! Хотя почти в два раза дольше, зато все записалось. Если будут проблемы в дальнейшем, то отлично работает ACrow 53 версия с голосом Вальца.
Image 001.png
Image 001.png (367.95 КБ) 4701 просмотр

Yandex TTS

Добавлено: 26 дек 2020 11:37
wasyaka
Pin240 писал(а):
26 дек 2020 09:33
Бог ты мой как вы ермилу терпите.... его слушать невозможно..
А Вас кто-то насильно заставляет его слушать? Если мне Филип не нравится - вы ж от этого его не перестанете слушать?
И там не один ермила, участвуют 5(ПЯТЬ) голосов

Yandex TTS

Добавлено: 26 дек 2020 11:49
speeck
Pin240 писал(а):
26 дек 2020 09:33
Бог ты мой как вы ермилу терпите.... его слушать невозможно..
Если представить, что под Ермилом скрывается граф Дракула, то все ок :big_smile:
Больше воображения! :lol:

Yandex TTS

Добавлено: 26 дек 2020 13:25
olelog
wasyaka писал(а):
25 дек 2020 21:01
Не чудят, а зделали замануху - подсадили...
теперь ждут денюжку
А в это время не подсевшие на халявный сыр
Ув. "wasyaka", как я понял вы используете лицензионный ключ для Play_5 ?
И пользуясь случаем подскажите что можно с этим сделать ? Я пока вношу в словарь кучу этих "территорий")))

Yandex TTS

Добавлено: 26 дек 2020 15:16
S-a-b
Здравствуйте, поздравляю всех с наступающим Новым годом!
olelog писал(а):
26 дек 2020 13:25
Я пока вношу в словарь кучу этих "территорий")
Лучше предлог "с" заменить на "с`"

Yandex TTS

Добавлено: 26 дек 2020 15:50
olelog
Вы я понял предлагаете в каждой книге делать замену на "с`" "с мушкой")))? А как это применить для dicOMGaster и грамотно "зазвездить" ?

Yandex TTS

Добавлено: 26 дек 2020 16:09
wasyaka
olelog писал(а):
26 дек 2020 13:25
Ув. "wasyaka", как я понял вы используете лицензионный ключ для Play_5 ?
Это не лицензионный, а дэмо-ключ для не премиум голосов
Он же используется и в сборке от ув. tonio_k
в словарь кучу этих "территорий")))
В Play_5
rem правим "сёла"
F_all=Replace(F_all, " с ", " с%91 ")
F_all=Replace(F_all, " С ", " С%91 ")

Можно ж ув.chibis добавить в Play_5_filipp?

Кстати ради интереса записал книгу с помощью yndx_tts chibis голосом filipp со стартовыми настройками - быстро и без проблем...(или разов несколько разрешено?)

Yandex TTS

Добавлено: 26 дек 2020 16:37
olelog
wasyaka писал(а):
26 дек 2020 16:09
В Play_5
rem правим "сёла"
F_all=Replace(F_all, " с ", " с%91 ")
F_all=Replace(F_all, " С ", " С%91 ")
А как это сделать для "yndx_tts64" для словарей dicOMGaster и dicOMG ? Уже довольно долго "затачиваю" эти словари под Филиппа, в "yndx_tts64"

Yandex TTS

Добавлено: 26 дек 2020 16:56
S-a-b
Банально
Пробел с пробел равно пробел с мушка пробел
В словарь не записать :)?

Yandex TTS

Добавлено: 26 дек 2020 17:00
tonio_k
S-a-b писал(а):
26 дек 2020 16:56
В словарь не записать :)?
С='с
А потом удивляться, почему правило
с руки=с рук+И
(и все остальные подобные ему) вдруг перестали срабатывать :big_smile:

UPD имеется в виду, что не "банально" вставить, а "правильно" и так, что бы не сломать уже имеющееся остальные правила. Точно не знаю какой механизм срабатывания правил в словаре dicOMG, но надо точно понимать как сработают такая замена с на с'

Yandex TTS

Добавлено: 26 дек 2020 17:11
demvi
Прогу надо поместить в папку с программой Play_5.hta, Запустите программу Ya64Wrap.exe.
Прога запустится с дефолтными настройками см.(Скрин1.png) и создаст файл Ya64Wrap.ini.
Порядок работы следующий: (ДМои действия)
Прилагаемый Файл "02_podg.rex" необходимо поместить в каталог "...Balabolka\dictionaries\02_podg.rex"
После запуска Балаболки, в окне словарей выбрать словарь "02_podg.rex"
Далее
1) Открываем книгу в программе Balabolka.
2) Сохраняем как текст.(Меню - Файл - Сохранить как...).
3) Открываем ранее сохранённый текст(п. 2) в Балаболке.
4) Нажимаем Ctrl+T, текст обрабатывается словарём "02_podg.rex"(если Вы его подключили), заттем выделяем весь текст по Ctrl+A?, и сохраняем его в соответствуещем файле.
5) Вот этот текст открываем в программе Balabolka, и в меню Сервис - Разбить файл на части...(Ctrl+U) разбиваем его на главы, прологи, эпилоги.
Всё.
Далее запускаем прогу "Ya64Wrap.exe", ранее помещенную в папку "yndx_tts64", рядом с "Play_5.hta" и получаем кучу удовольствия.
Чтобы не утратить оптимизма используйте размер фрагмента 3000 или менее, при больших значениях спонтанно яндекс режет хвосты аудио файлов.
Прошу отписаться тех кто рискнёт воспользоваться прогой.

Yandex TTS

Добавлено: 26 дек 2020 17:16
S-a-b
demvi писал(а):
26 дек 2020 17:11
Точно не знаю какой механизм срабатывания правил в словаре dicOMG, но надо точно понимать как сработают такая замена с на с'
Я тоже не вкурсе, но речь идет не о замене всех букв "с" в книге, а о замене только предлогов, причем, этот предлог еще и не первый в предложении.
" с = с` "
Я бы поставил в числе последних к обработке.
В Play_* такие вещи были прописаны в скриптах после обработки по словарю

Yandex TTS

Добавлено: 26 дек 2020 18:28
demvi
Я, вообще-то такого не писал.

Yandex TTS

Добавлено: 26 дек 2020 18:30
olelog
S-a-b писал(а):
26 дек 2020 16:56
Банально
Пробел с пробел равно пробел с мушка пробел
В словарь не записать :)?
банально, " с = с` " но не работает ни в одном словаре )))

Yandex TTS

Добавлено: 26 дек 2020 18:57
speeck
Можно пойти дальше :smile1:
Послушайте разные примеры:
► Показать
В первую голову пришло, нужно заменить на:
к=к'
и тд, но "при 100 к' плавился" произносит также копеек.
Можно заменить на:
к='к'
Тогда копеек не говорит, уже лучше. Но это правило только если "к" стоит отдельно, если же:
"при 100к плавился" - правило не сработает.
Можно расширить правило, чтобы слева могла быть цифра, а справа либо пробел, либо знак препинания. Тогда получится захватить все сёла и копейки в:
"при 100к плавился" и тд.

Тут вопрос старостам (tonio_k, wasyaka), как это лучше сделать?

Новичкам замечу, эти и подобные правила нужно делать в конце обработки, чтобы все прочие правила, где имеются эти самые "с", "к" и тд, сработали, иначе они просто проигнорируются, например если текст будет вида:
"при 100 'к' плавился", условное правило "к плавился=к пл+авился" не сработает.

Yandex TTS

Добавлено: 26 дек 2020 19:08
S-a-b
speeck,
Символы ' и ` немного разные.

Yandex TTS

Добавлено: 26 дек 2020 19:18
S-a-b
demvi,
Извиняюсь, странные особенности этого форума, когда цитаты приписываются другому.

Yandex TTS

Добавлено: 26 дек 2020 19:49
demvi
Нет проблем.

Yandex TTS

Добавлено: 26 дек 2020 21:25
wasyaka
demvi писал(а):
26 дек 2020 17:11
Прошу отписаться тех кто рискнёт воспользоваться прогой
Нормально, только надо указать, что аудио сохраняется в папке текста, но так даже удобней...

Yandex TTS

Добавлено: 27 дек 2020 09:45
olelog
Решил проблему с " с территории" . Мушки на "с`" пробелы и прочее не помогли. Решение * с территории *= с террит+ории

Yandex TTS

Добавлено: 27 дек 2020 10:58
speeck
Но от сёл вы не избавились, они будут преследовать вас дальше в других словосочетаниях. Вы исключили только один случай.
А еще есть копейки, рубли, метры.... :big_smile:
Кстати, а почему мушки не помогли? Прослушал сейчас пару примеров, там все ок.

Yandex TTS

Добавлено: 27 дек 2020 13:05
sws
Давно избавился от глюка Яндекса с приставкой с(село)...
Глобальным способом вводом в словарь..
с=сьь
Формат словаря ssiiaa

Yandex TTS

Добавлено: 27 дек 2020 14:17
olelog
speeck писал(а):
27 дек 2020 10:58
Но от сёл вы не избавились, они будут преследовать вас дальше в других словосочетаниях. Вы исключили только один случай.
А еще есть копейки, рубли, метры....
Кстати, а почему мушки не помогли? Прослушал сейчас пару примеров, там все ок.
В разных словарях работает по-разному возможно, я не большой спец, для себя решил вопрос для "yndx_tts64" и применяемых там словарей, поделился с другими. Если по данной проблеме у кого будут решения с "копейками, рублями, метрами, сёлами", буду рад если поделитесь )))

Yandex TTS

Добавлено: 27 дек 2020 16:44
Pin240
olelog писал(а):
26 дек 2020 10:07
Поставил один поток, и вот результат !
Обычно я переганяю текст в котором не менее 1500 кусков(файлы в txt весят более 4мв в 1252 кодировке ) и даже на одном потоке, примерно после 300-400, просто стопрится.
Не смотря на то что у меня есть демо ключ для плэй 5, он отказывается нормально с таким объемом текста работать.
Пробовал уменьшать кол-во знаков на один кусок - та же пляска. Доходит примерно до 1\4 всего текста и все.

А с мелкими (около 200 кусков по 4950 знака) текст которых примерно не более 1мв - нормуль.
Например китайску новелку Release-that-Witch Освободите-эту-Ведьму(11мв) не потянул :boy_crying:
Даже в балоболке раз 6 пришлось, с определенного куска, включать.

Заметил особенность: wav кусков удается больше скачать чем ogg. :suspect:
Перегнать в mp3 не проблема, за одно и громкость повышаю, а в некоторых голосах темп и высоту подравниваю. Если кому интересно могу написать свой скрипт

Yandex TTS

Добавлено: 27 дек 2020 17:26
Pin240
Может кому пригодится
Исходный файл wav с частатой 44100 Гц

Код: Выделить всё

@echo off
@color 72
@REM сканарование wav
FOR  %%f IN (*.wav) DO (
echo %%f
ffmpeg  -i "%%f" -filter:a "asetrate=44100*0.9,aresample=44100,atempo=0.91" -b:a 96k -codec:a libmp3lame  "%%~nf".mp3 && del "%%~nf".wav
)
@color 72
@echo Успешно
 pause
asetrate=44100*0.9 - понизить высоту тона на 0.1
atempo=0.91 - принудительно выравнивание темпа (уменьшение на 0.9). Есть вариант atempo=sqrt(0.91) - изменение по средне квадратичному. С подбором нужно экперементировать.
-b:a 96k -codec:a libmp3lame "%%~nf".mp3 - не нуждается в пояснении
&& del "%%f".wav - удаление исходника
@color 72 - цвет в окне cmd

Выравнивание громкости. Пример также можно и на цикл адаптировать

Код: Выделить всё

 ffmpeg  -i "0001.wav" -filter:a "dynaudnorm=f=200:p=0.9:g=19" -b:a 96k -codec:a libmp3lame  0001.mp3
f=200 -кол-во кадров для анализа
p=0.9 - граница пиков громкости
g=19 - параметр не обязательный, метод по гаусу (обязательно не четное число предел от 3 до 301) подробней ройте в мануале ffmpeg
-b:a 96k -codec:a libmp3lame - кодек указывать обязательно иначе вылетит ошибка

Yandex TTS

Добавлено: 27 дек 2020 17:56
Pin240
demvi писал(а):
26 дек 2020 17:11
Прошу отписаться тех кто рискнёт воспользоваться прогой.
Вылетает если добавить 1500 файлов сразу
За несколько заходов добавляет(по 400 штук)

Погонял немного,вроде работает :thank:
Куски использовал не большие. (5-10Кб)
200 кусков - полет нормальный

Yandex TTS

Добавлено: 27 дек 2020 20:22
demvi
Pin240 писал(а):
27 дек 2020 17:56
Вылетает если добавить 1500 файлов сразу
За несколько заходов добавляет(по 400 штук)
Ну на такой экстрим я не рассчитывал. Кстати, рвать файлы на мелкие куски не обязательно, речь шла о размере фрагментов, посылаемых yndxfilipp.exe. А этот размер выставляется в Настройках. Я рву на куски книгу только из желания иметь осмысленные названия аудио файлов (01_Пролог.ogg, 02_Глава 1 и т.д.) и делю книгу в Балаболке, ибо она с этим прекрасно справляется.

Yandex TTS

Добавлено: 27 дек 2020 21:18
demvi
Pin240 писал(а):
27 дек 2020 17:56
Вылетает если добавить 1500 файлов сразу
За несколько заходов добавляет(по 400 штук)
Добавлю следующее:
Если надо разбить книгу на файлы определенной длительности(например - 10минут), имеет смысл добавить в Ya64Wrap.exe файл полной книги, а длительность аудио файла задать числом склеиваемых *.ogg файлов. Например - размер фрагмента установлена в мои любимые 3000, это 3-3,5 минуты звучания Филиппа на скорости 1,0. Если склеивать по 3 фрагмента, то на выходе получатся файлы длительностью около 10 минут. И не надо будет закидывать в прогу по 1500 кусков. Текст книги желательно поместить в отдельную папку, так как все создаваемые файлы(аудио, логи, и обработаннй текст) будут помещены в папку Яндекс, которую прога создаст в папке с исходным текстом книги.

Yandex TTS

Добавлено: 27 дек 2020 21:50
Pin240
demvi писал(а):
27 дек 2020 21:18
не надо будет закидывать в прогу по 1500 кусков
Это был намеренный краш тест)
Обычно я делю по 4950 символов - это чуть больше 5 минут.
Мне лично это удобно так как иногда бывает случайно зажимаю кнопки на плеере.
Позже проверю как зажует цельные большие файлы, обязательно отпишусь.
Кстате проверено. Когда длина одного аудио файла в балаболке, более 50 минут, она обрывает, даже если еще остался текст. (либо у меня не оттуда руки растут:)

А вот за то что создается отдельно подкаталог - полная уважуха) иногда этого так не хватало.

Yandex TTS

Добавлено: 28 дек 2020 05:41
Pin240
demvi писал(а):
26 дек 2020 17:11
Далее запускаем прогу "Ya64Wrap.exe",
А можно расширит функционал?
Добавить запуск указанного батника после скачивания.

11мв Жует уже ночь, но только на середине(4040 фрагмента из 1 файла). Балаболка быстрей обрабатывает

Yandex TTS

Добавлено: 28 дек 2020 06:10
demvi
Pin240 писал(а):
28 дек 2020 05:41
А можно расширит функционал?
Добавить запуск указанного батника после скачивания.

11мв Жует уже ночь, но только на середине(4040 фрагмента из 1 файла). Балаболка быстрей обрабатывает
Вернуться к началу
По поводу времени обработки это не ко мне, моя прога только и делает, что готовит тест в соответствии с настройками, скармливает его yndxfilipp.exe, а после полученные файлы переименовывает и копирует в каталог Яндекс в папке с книгой.
При одном потоке скачивания наверно и не удивительно такое время обработки.
По поводу функционала - нет, лень, да и халява может скоро кончится.

Yandex TTS

Добавлено: 28 дек 2020 20:59
chibis
olelog писал(а):
25 дек 2020 14:34
Подскажите, что происходит с "yndx_tts64" ? Рвет куски текста из файлов, некоторые файлы по 3 минуты, вместо 5, короче получается бред а не книга. Может что изменить в настройках потоков обработки и скачивания файлов ?
Я выкладывал выше вариант экзешника, который перекачивает сорвавшиеся файлы. Им надо заменить предыдущий, независимо от варианта сборки в которой он используется и от настроек.

Yandex TTS

Добавлено: 04 янв 2021 18:08
Lecron
chibis писал(а):
28 дек 2020 20:59
Я выкладывал выше вариант экзешника
Предлагаю создать для программы отдельную ветку в разделе "Программы, использующие синтез речи в Windows", где выкладывать обновления в шапке (первом сообщении темы). Очень неудобно искать по форуму и/или следить за развитием софтины. Особенно если не читать ветку регулярно. Недавно сам оказался в ситуации olelog и тоже нуждался в вашем совете по поиску.

Yandex TTS

Добавлено: 05 янв 2021 12:15
speeck
А лучше не отдельную ветку, а прямо здесь закрепить первое сообщение, где будут все сборки для Яндекс TTS. Собственно, например как на 4пда (все уже придумано до нас).

Yandex TTS

Добавлено: 09 янв 2021 04:37
Fabe
Привет
Может кто то обяснить как купить лицензионный ключ?
Дать ссылку что ли, заходил пробовал так и не понял как ..
Спасибо.

Yandex TTS

Добавлено: 09 янв 2021 07:02
balabolka
Fabe писал(а):
09 янв 2021 04:37
Может кто то обяснить как купить лицензионный ключ?
Тут нет "лицензионного ключа"; можно зарегистрироваться в "Яндекс.Облаке" и получить API-ключ для доступа к голосам "Яндекс SpeechKit". Этот ключ применяется для отправки запросов к сервису, а в ответ сервер будет возвращать звуковые файлы с речью и списывать деньги с Вашего баланса в "Яндекс.Облаке".
  1. Зарегистрируйтесь в Яндекс.Облаке.
  2. Войдите в консоль "Облака". Изначально Вам доступны 3000 виртуальных рублей для тестирования сервиса синтеза речи (прочтите в документации про пробный период). Когда закончится пробный период, надо будет пополнить баланс своими деньгами (кнопка "Пополнить баланс").
  3. В консоли нажмите ссылку "Перейти в текущий каталог".
  4. В текущем каталоге "Облака" нажмите ссылку "Сервисные аккаунты".
  5. Нажмите кнопку "Создать сервисный аккаунт". Выберите имя и роль (например, "admin").
  6. Когда сервисный аккаунт будет создан, зайдите в его свойства и нажмите ссылку "Создать новый ключ" (см. документацию). Будет предложено три варианта ключей, выберите "Создать API-ключ". Введите описание ключа (например: "Ключ для SpeechKit").
  7. Всё, ключ готов - идентификатор (20 символов) и сам API-ключ (40 символов). Обязательно скопируйте и сохраните эти данные на диске компьютера. API-ключ можно использовать для платного доступа к "Яндекс SpeechKit", в том числе и к премиум-голосам.
Однако, прежде чем переходить на платный доступ к синтезу речи "Яндекса", рекомендую разобраться с программным обеспечением, которое применяется сейчас пользователями для "Яндекса". Какие-то программы обращаются к старой демо-версии "SpeechKit" (и в этих программах старый ключ "зашит" внутри). Какие-то программы работают с новым демо на сайте "Яндекс SpeechKit" (и там API-ключ вообще не требуется). Так что, убедитесь заранее, что Вам действительно нужен сервисный API-ключ для платного доступа к "Яндекс.Облаку".

Yandex TTS

Добавлено: 09 янв 2021 15:38
Fabe
Большое спасибо

Yandex TTS

Добавлено: 18 янв 2021 14:11
Primkray
tonio_k писал(а):
16 дек 2020 16:46
я бы рекомендовал копать в сторону телеграмм бота https://t.me/STC_TTS_bot Здесь ограничение 1000 символов, что в 2 раза больше чем на сайте
Телеграм бот использует голоса от ЦРТ (speechpro.com). Звучит очень впечатляюще.

Yandex TTS

Добавлено: 28 янв 2021 19:10
speeck
Всем привет. В приложенных гибридная сборка DemagogYandex, попытка объединения сборок tonio_k + wasyaka.

Некоторые моменты по этой сборке:
- Все скрипты от tonio_k (те что в папке "_Tests_", а также "profiles\mylib_index.lua").
- При объединении сборок, основной упор я делал на простоту в работе со словарями, но не в ущерб полноте и качеству. Поэтому многие словари были объединены, часть словарей расформированы или удалены за ненадобностью. Были также созданы новые словари и правила.
- Все новые/объединенные словари имеют окончание "_птр". Все прочие словари имеют свои исконные названия (кроме порядкового номера), на случай, если нужно будет их сравнить с оригиналом и тп.
- Данная сборка под старые (не премиум) голоса Яндекса! На форуме есть сборка от tonio_k под премиум голоса, и если кто-то захочет использовать в ней словари из текущей сборки, то достаточно их скопировать туда, удалив все прежние словари. Лично я не записываю книги Филиппом, т.к. он хоть и лучше произносит многие слова (важно - не косячит в редких словах с буквой Ц!), но в целом усвоение прочитанного мне показалось хуже, чем с тем же "старым" Самохваловым. К тому же, есть косяк с полнотой полученных файлов, и часто были пропуски фрагментов текста.
- В каждый словарь я добавил краткое описание для чего он. Также в папке со словарями есть небольшой файл-справка. Это может помочь ориентироваться новичкам.

Краткий лог объединения сборок:
► Показать
Что еще.
Я временно убрал словарь чисел "10_REX_числа(chisla).rex" в виду того, что он делал много неправильных замен.
Но с него я бы как минимум использовал конвертацию римских чисел. Тут просьба старожилам форума - tonio_k и wasyaka, поможете разобраться? )
Словарь чисел довольно сложный, я боюсь его трогать.

Еще, очень нужно запретить Яндексу произносить не в тему "сёла, рубли, копейки, метры" и тд. Например в этих конструкциях:
"смотри р.6 (шестой раздел)"
"смотри р 6 (шестой раздел)"
"при 100 к нему"
"при 100к плавился" (кельвинов)
"за 100 м он" (минут)
"уехал с территории места" (причем тут село?)

Тут также просьба о помощи tonio_k и wasyaka, в конце концов это общая проблема.

Буду рад любой критике! Особенно, опять таки, от tonio_k и wasyaka, ведь на ваших сборках основана эта.

Если кому-то надо, могу отправить подробный лог объединения сборок.

Потом, важный вопрос объединения словарей разных людей. Предлагаю как следует подумать над этим вопросом.
Основная проблема - то что есть несколько сборок, и в каждой своя структура словарей, которая до кучи может меняться. Но каждый отдельный человек пополняет свои словари, и жаль, что нет возможности делиться ими. Собственно, именно поэтому я и упростил свою сборку, чтобы было легче ориентироваться в словарях и правилах.
Большая часть правил, это по-сути новые ударения отдельных слов.
В моей сборке это словари:
"71_Яндекс+слова+имена+ци_птр.dic" + "72_Яндекс+слова+имена+ци_звёзды_птр.dic". В других сборках они похожи.
Потом идут правила с корректировкой фраз, в словарях:
"40_ЗВЕЗДЫ ОКОНЧАНИЯ@.dic" и "51_ОМОГРАФЫ_птр.dic".
Примечание:
► Показать
И еще есть словарь с сокращениями:
"0.1_Предв_аббр+сокр+англ_птр.dic".
Это так сказать основные 5 словарей, которые могут разрастаться при "повседневном" использовании. Прошу прощение за грубую формулировку, но примерно оно так и есть.
Все остальные словари обновляются реже, и их можно назвать системообразующими. Работать с ними, при обычном использовании, почти не придется.

Можно попробовать синхронизировать только лишь 5 обозначенных словарей.
В виду того, что это простые правила DIC, вероятность появления здесь серьезных ошибок минимально.
К тому же эти словари во всех сборках похожи, разве что словарь "0.1_Предв_аббр+сокр+англ_птр.dic" в других сборках "раскидан" по разным словарям.

Что скажете, коллеги? :smile1:

Сборка:
DemagogYandexUni.rar
(17.98 МБ) 149 скачиваний

Yandex TTS

Добавлено: 29 янв 2021 10:34
tonio_k
speeck писал(а):
28 янв 2021 19:10
Я временно убрал словарь чисел "10_REX_числа(chisla).rex" в виду того, что он делал много неправильных замен.
скорее всего тут проблема "репертуара" а не самого словаря. Если ваш репертуар, например, классическое фентези, то словарь хорош и даже необходим!, а если книга в стиле компьютерной игры или историческая и переполненная цифрами и необычными сокращениями, то, возможно словарь не справляется
speeck писал(а):
28 янв 2021 19:10
"за 100 м он" (минут)
эта ситуация является продолжением предыдущей. Помимо самоуправства Яндекса (лучше бы просто букву "с" выговаривал чем "село") с этими авторскими сокращениями, в зависимости от репертуара, может быть просто головная боль. А ведь кто-то даже не знает о существовании этой проблеммы! потому что слушает другого рода книги.
Здесь я рекомендую в ручную искать цифры с сокращениями в тексте и каждое сокращение поверять на предмет правильности озвучки и делать замену в самом тексте книги до применения правил (можно сделать хитрый поиск регуляркой для поиска именно сокращения что бы сократить ручной труд по поиску). Словари это контекстный поиск отрезков текста. Ваш пример за 100 м он это может оказаться: и метров и минут и миллионов. Причём метров (ИМХО) более вероятно.
Специфичный репертуар подразумевает специфичные правила в словарях. А если словарь будет переполнен "специфическими исключениями" то другой пользователь если начнет пользоваться вашими словарями, но слушать другие книги, может так сложиться, что ваш словарь только ломает и ухудшает то, что (по мнению пользователя в его книгах) голосовой движок и так прекрасно озвучивает по умолчанию. Вот вам и ответ, на ваш
"важный вопрос объединения словарей разных людей."
Разные люди, разные репертуары отсюда взаимоисключающие правила.
speeck писал(а):
28 янв 2021 19:10
У tonio_k словарь с омографами разбит на 4 части, и тут уже сложнее с добавлением новых правил. Не знаю для чего это, но вероятно так было нужно.
сложного ничего нет. Если правило из двух слов, то один словарь. Если правило из трёх и более слов - другой словарь. Если правило содержит два омографа то кидаем в третий словарь. Если два омографа и ещё слова то четвертый. Дело в том, что таким образом я добивался сортировки правил не "по длине левой части правила", а "по количеству слов в левой части правила". Поэтому пришлось разбивать словарь на несколько словарей - как раз для удобства работы со словарями когда правило нужно отсортировать по количеству слов. Куда воткнуть правило - сразу видно по названию словаря. В основном пополняются только 2 словаря из этой четверки: самый первый - тот что для двух слов; и самый последний - тот что для трёх слов и более. Кроме того, распределение на несколько словарей и их последовательное применение через скрипт создаёт некое подобие алгоритма прямого перебора. В результате правила применяются с быстрым алгоритмом, но с частично последовательным применением правил. Получается некий баланс при той же скорости имеем относительно предсказуемый результат срабатывания правил. Дело в том, что просто отсортировать единый словарь и оставить пользовательскую сортировку для быстрого алгоритма, что бы быстрый алгоритм отработал "перебором" не получится (тогда бы мы получили быстрый прямой перебор :big_smile: ). Нужно именно распределение по словарям, что бы обеспечить хотя бы частичное срабатывание правил в стиле "прямого перебора". Можно, конечно, склеить все словари в один и применить их через "прямой перебор". Тогда будет всего один словарь с предсказуемым последовательным применением правил, но при этом, какая будет просадка по скорости применения словаря? Может она не значительная и ей можно пренебречь? Попробуйте. Для этого нужно в этих словарях в названии добавить символ @ и к словарю будет применен прямой перебор. И посмотрите по времени устроит ли вас такое? (Я говорю без иронии разница может действительно оказаться несущественной на ваш взгляд. Нужно экспериментировать)

Yandex TTS

Добавлено: 29 янв 2021 13:17
speeck
tonio_k писал(а):
29 янв 2021 10:34
скорее всего тут проблема "репертуара" а не самого словаря
Ну лично у меня встречались ошибки в банальных датах, вроде такого "с тысяча девятьсот шестом году". Часто встречалось, поэтому я решил убрать этот словарь совсем, тем более там много градусов, дециметров и чего-то такого еще, довольно редкого, и часто для Яндекса эти правила и не нужны, он сам переводит. Вот римские цифры очень жалко, их нужно как-то отдельно вытащить.
tonio_k писал(а):
29 янв 2021 10:34
Ваш пример за 100 м он это может оказаться: и метров и минут и миллионов.
Именно поэтому лучше просто произносить "сто эм" :) Даже в одной книге могут встретиться и минуты и метры, и все случаи тут не опишешь в правилах, а универсального "сто эм" будет достаточно, по крайней мере понятно, что речь про "100 м", из контекста станет ясно что именно под "м".
tonio_k писал(а):
29 янв 2021 10:34
А если словарь будет переполнен "специфическими исключениями"
Поэтому лучше унифицировать произношение спорных слов. Пусть лучше будет "100 эм", чем наиболее вероятное слово, которое может оказаться не в тему, и нарушит нормальное прослушивание книги. :lot_information:
tonio_k писал(а):
29 янв 2021 10:34
Разные люди, разные репертуары отсюда взаимоисключающие правила.
Ну если кому-то нужно чаще слышать метры, чем минуты (если по тому же примеру), он может отдельно прописать себе эти спорные правила, сейчас речь про общие для всех однозначные правила.
tonio_k писал(а):
29 янв 2021 10:34
в том, что таким образом я добивался сортировки правил не "по длине левой части правила", а "по количеству слов в левой части правила".
А, теперь ясно, спасибо! Я просто объединил эти словари, без указания прямого перебора, вероятно часть правил теперь не срабатывает (впрочем, думаю это единицы, если вообще есть). Чуть позже сравню по скорости с БА и ПП.

Yandex TTS

Добавлено: 29 янв 2021 13:27
speeck
Еще, по поводу словаря чисел.
Встретился такой вот нормализатор:
https://github.com/snakers4/russian_stt ... malization
Как время позволит проверю его. В целом неплохие отзывы (нашел его на Хабре), но не идеально.
Там в ветке есть примеры косячной обработки, но разработчики вроде как дорабатывают модель.
Возможно эта штука лучше оптимизирует текст, нужно сравнивать.
Здесь был тов. Эхо, возможно он сталкивался с этим или подобным нормализатором? :smile1:

Yandex TTS

Добавлено: 29 янв 2021 14:09
tonio_k
speeck писал(а):
29 янв 2021 13:17
думаю это единицы, если вообще есть
да, это единичные случаи. Причём могут на нескольких книгах не вылезти ни разу, а может в одной книге несколько раз встретиться. На них вы обратите внимание только тогда, когда добавленное корректирующее правило по непонятным причинам будет отказываться срабатывать. Обычно это случаи, когда конфликтуют два варианта правила (нахлёст совпадения), в которых омограф в одном правиле стоит в конце, а в другом правиле в начале и эти оба правила срабатывают на тексте. Какой бы длины не было правило при совпадении будет срабатывать то правило, в котором омограф стоит первым. Это особенность быстрого алгоритма. Уточнение: это не значит, что другое правило игнорируются, это значит, что одно правило будет всегда затирать результат другого правила как не сортируй эти правила между собой в словаре. Решение - либо отдаем предпочтение только одному правилу и удаляем/изменяем другое, либо переносим одно из правил в другой словарь что бы последовательность применния словарей давало нужный результат замены.

Yandex TTS

Добавлено: 29 янв 2021 14:25
tonio_k
speeck писал(а):
29 янв 2021 13:27
Встретился такой вот нормализатор
он написан на питоне. Здесь на форуме Lecron выкладывал свои разработки
http://i91650e3.beget.tech/viewtopic.php?f=41&t=958 на этом языке. Может он прокомментирует эту разработку? Лично у меня нет даже базовых знаний как воспользоваться выложенным Lecron наработками что бы хотя бы пощупать, не говоря о том, что бы попробовать это как-то на каком-то этапе прикрутить к Демагогу.