Yandex TTS

Ответить
Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#751

Сообщение Pin240 »

Все же балаболка вещь)) Особенно когда есть свой API ключ

Аватара пользователя
olelog
Обыватель

Yandex TTS

#752

Сообщение olelog »

Подскажите, что происходит с "yndx_tts64" ? Рвет куски текста из файлов, некоторые файлы по 3 минуты, вместо 5, короче получается бред а не книга. Может что изменить в настройках потоков обработки и скачивания файлов ?
Вложения
Image 003.png
Image 003.png (63.91 КБ) 4801 просмотр
Image 001.png
Image 001.png (136.5 КБ) 4801 просмотр

Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#753

Сообщение Pin240 »

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

Аватара пользователя
wasyaka
V.I.P.

Yandex TTS

#754

Сообщение wasyaka »

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

speeck
Обыватель

Yandex TTS

#755

Сообщение speeck »

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

Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#756

Сообщение Pin240 »

Бог ты мой как вы ермилу терпите.... его слушать невозможно..

Аватара пользователя
olelog
Обыватель

Yandex TTS

#757

Сообщение olelog »

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

Аватара пользователя
wasyaka
V.I.P.

Yandex TTS

#758

Сообщение wasyaka »

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

speeck
Обыватель

Yandex TTS

#759

Сообщение speeck »

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

Аватара пользователя
olelog
Обыватель

Yandex TTS

#760

Сообщение olelog »

wasyaka писал(а):
25 дек 2020 21:01
Не чудят, а зделали замануху - подсадили...
теперь ждут денюжку
А в это время не подсевшие на халявный сыр
Ув. "wasyaka", как я понял вы используете лицензионный ключ для Play_5 ?
И пользуясь случаем подскажите что можно с этим сделать ? Я пока вношу в словарь кучу этих "территорий")))
Вложения
Image 001.png
Image 001.png (22.15 КБ) 4665 просмотров

Аватара пользователя
S-a-b
Обыватель

Yandex TTS

#761

Сообщение S-a-b »

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

Аватара пользователя
olelog
Обыватель

Yandex TTS

#762

Сообщение olelog »

Вы я понял предлагаете в каждой книге делать замену на "с`" "с мушкой")))? А как это применить для dicOMGaster и грамотно "зазвездить" ?

Аватара пользователя
wasyaka
V.I.P.

Yandex TTS

#763

Сообщение 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 со стартовыми настройками - быстро и без проблем...(или разов несколько разрешено?)

Аватара пользователя
olelog
Обыватель

Yandex TTS

#764

Сообщение 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"

Аватара пользователя
S-a-b
Обыватель

Yandex TTS

#765

Сообщение S-a-b »

Банально
Пробел с пробел равно пробел с мушка пробел
В словарь не записать :)?

Аватара пользователя
tonio_k
V.I.P.

Yandex TTS

#766

Сообщение tonio_k »

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

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

Аватара пользователя
demvi
Интересующийся

Yandex TTS

#767

Сообщение 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 или менее, при больших значениях спонтанно яндекс режет хвосты аудио файлов.
Прошу отписаться тех кто рискнёт воспользоваться прогой.
Вложения
Yanwrapper.zip
(103.42 КБ) 94 скачивания

Аватара пользователя
S-a-b
Обыватель

Yandex TTS

#768

Сообщение S-a-b »

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

Аватара пользователя
demvi
Интересующийся

Yandex TTS

#769

Сообщение demvi »

Я, вообще-то такого не писал.

Аватара пользователя
olelog
Обыватель

Yandex TTS

#770

Сообщение olelog »

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

speeck
Обыватель

Yandex TTS

#771

Сообщение speeck »

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

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

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

Аватара пользователя
S-a-b
Обыватель

Yandex TTS

#772

Сообщение S-a-b »

speeck,
Символы ' и ` немного разные.

Аватара пользователя
S-a-b
Обыватель

Yandex TTS

#773

Сообщение S-a-b »

demvi,
Извиняюсь, странные особенности этого форума, когда цитаты приписываются другому.

Аватара пользователя
demvi
Интересующийся

Yandex TTS

#774

Сообщение demvi »

Нет проблем.

Аватара пользователя
wasyaka
V.I.P.

Yandex TTS

#775

Сообщение wasyaka »

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

Аватара пользователя
olelog
Обыватель

Yandex TTS

#776

Сообщение olelog »

Решил проблему с " с территории" . Мушки на "с`" пробелы и прочее не помогли. Решение * с территории *= с террит+ории
Вложения
Image 002.png
Image 002.png (87.4 КБ) 4539 просмотров

speeck
Обыватель

Yandex TTS

#777

Сообщение speeck »

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

Аватара пользователя
sws
Наблюдатель

Yandex TTS

#778

Сообщение sws »

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

Аватара пользователя
olelog
Обыватель

Yandex TTS

#779

Сообщение olelog »

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

Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#780

Сообщение 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 не проблема, за одно и громкость повышаю, а в некоторых голосах темп и высоту подравниваю. Если кому интересно могу написать свой скрипт

Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#781

Сообщение 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 - кодек указывать обязательно иначе вылетит ошибка

Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#782

Сообщение Pin240 »

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

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

Аватара пользователя
demvi
Интересующийся

Yandex TTS

#783

Сообщение demvi »

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

Аватара пользователя
demvi
Интересующийся

Yandex TTS

#784

Сообщение demvi »

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

Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#785

Сообщение Pin240 »

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

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

Аватара пользователя
Pin240
Интересующийся

Yandex TTS

#786

Сообщение Pin240 »

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

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

Аватара пользователя
demvi
Интересующийся

Yandex TTS

#787

Сообщение demvi »

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

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

Аватара пользователя
chibis
Обыватель

Yandex TTS

#788

Сообщение chibis »

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

Аватара пользователя
Lecron
Специалист

Yandex TTS

#789

Сообщение Lecron »

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

speeck
Обыватель

Yandex TTS

#790

Сообщение speeck »

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

Аватара пользователя
Fabe
Постоялец

Yandex TTS

#791

Сообщение Fabe »

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

Аватара пользователя
balabolka
V.I.P.

Yandex TTS

#792

Сообщение 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-ключ для платного доступа к "Яндекс.Облаку".

Аватара пользователя
Fabe
Постоялец

Yandex TTS

#793

Сообщение Fabe »

Большое спасибо

Аватара пользователя
Primkray
Обыватель

Yandex TTS

#794

Сообщение Primkray »

tonio_k писал(а):
16 дек 2020 16:46
я бы рекомендовал копать в сторону телеграмм бота https://t.me/STC_TTS_bot Здесь ограничение 1000 символов, что в 2 раза больше чем на сайте
Телеграм бот использует голоса от ЦРТ (speechpro.com). Звучит очень впечатляюще.
Вложения
stc-cloud_tts.wav
Голос Владимир
(1.4 МБ) 128 скачиваний

speeck
Обыватель

Yandex TTS

#795

Сообщение 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 скачиваний

Аватара пользователя
tonio_k
V.I.P.

Yandex TTS

#796

Сообщение 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: ). Нужно именно распределение по словарям, что бы обеспечить хотя бы частичное срабатывание правил в стиле "прямого перебора". Можно, конечно, склеить все словари в один и применить их через "прямой перебор". Тогда будет всего один словарь с предсказуемым последовательным применением правил, но при этом, какая будет просадка по скорости применения словаря? Может она не значительная и ей можно пренебречь? Попробуйте. Для этого нужно в этих словарях в названии добавить символ @ и к словарю будет применен прямой перебор. И посмотрите по времени устроит ли вас такое? (Я говорю без иронии разница может действительно оказаться несущественной на ваш взгляд. Нужно экспериментировать)

speeck
Обыватель

Yandex TTS

#797

Сообщение 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
в том, что таким образом я добивался сортировки правил не "по длине левой части правила", а "по количеству слов в левой части правила".
А, теперь ясно, спасибо! Я просто объединил эти словари, без указания прямого перебора, вероятно часть правил теперь не срабатывает (впрочем, думаю это единицы, если вообще есть). Чуть позже сравню по скорости с БА и ПП.

speeck
Обыватель

Yandex TTS

#798

Сообщение speeck »

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

Аватара пользователя
tonio_k
V.I.P.

Yandex TTS

#799

Сообщение tonio_k »

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

Аватара пользователя
tonio_k
V.I.P.

Yandex TTS

#800

Сообщение tonio_k »

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

Ответить

Вернуться в «Онлайн-сервисы для синтеза речи»