Demagog TTS

Говорящий текстовый редактор с открытым кодом, предназначенный для чтения вслух и записи в аудиофайл текстовых файлов с использованием пакетов речевых функций SAPI4\SAPI5.

Модератор: flegont

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

Demagog TTS

#251

Сообщение tonio_k »

Еще момент. В зависимости от последовательности выделения файлов в папке, при перетаскивании их на окно демагога - порядок последовательности может нарушаться
2019-06-30_21-44-04.png
2019-06-30_21-44-04.png (3.68 КБ) 14549 просмотров

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

Demagog TTS

#252

Сообщение flegont »

Ну, так виндовз устроена. Нельзя сказать, что это - плохо, и нельзя сказать, что это - хорошо. Так есть, и всё.

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

Demagog TTS

#253

Сообщение tonio_k »

flegont писал(а):
30 июн 2019 21:44
а нужна ли она при таком массовом открытии? имхо - вопрос дискуссионный.
"В рамках дискуссии" :wink:
Если идея открытия сразу нескольких файлов связана с ускорением их открытия (избавление пользователя от лишних щелчков мыши), то "урезать" указанный в настройках способ их открытия сводит на нет целесообразность этой функции.
flegont писал(а):
30 июн 2019 21:50
Ну, так виндовз устроена. Нельзя сказать, что это - плохо, и нельзя сказать, что это - хорошо. Так есть, и всё.
В Демагоге есть функция получения имя и путь файла открытого в окне :secret:
Можно сделать скрипт по алгоритму:
- получить список путей файлов открытых во всех окнах.
- отсортировать полученный список
- очистить все окна
- вновь открыть файлы согласно сформированного списка.
Недостаток - процедуру вставки примечаний придется повторить при повторном открытии файла.

Либо сделать "Сортировать окна" - как штатную функцию Демагога наравне с Переместить/Принять.
*Во всех случаях окно статистики в сортировку входить не должно

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

Demagog TTS

#254

Сообщение flegont »

1) Автоматическая вставка примечаний при массовом открытии файлов будет в следующей версии.
2) Нетрудно сделать алфавитную сортировку массива отмеченных для массового открытия/перетаскивания файлов. И открытые файлы расположатся во вкладках по алфавиту.
Но, лично мне оказалось удобнее оставить всё, как есть. В Проводнике ( да и в Total Commander) можно сортировать файлы, как угодно. По имени, по типу, по времени создания. Затем, отмечая подряд нужные, я получаю в Демагоге файлы, открытые во вкладках в том же порядке. Хоть по имени, хоть по времени создания и т.п.

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

Demagog TTS

#255

Сообщение tonio_k »

Сервис - Статистика - Сравнение файлов - Объединение файлов
А можно в выводимых результатах сделать разделить пустую строку между сравниваемыми парами связками? Что бы к такому виду привести:
► Показать

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

Demagog TTS

#256

Сообщение flegont »

Пары практически одинаковых строк образуются только при объединении практически одинаковых файлов. В общем случае - это не так, и в отсортированном объединенном файле такие пары не образуются. Ну, и куда вставлять пустые строки-разделители?
Как вообще программа определит: есть ли пары сходных строк или нет?
Это надо организовывать в цикле попарное сравнение строк. Решить, как определять сходство.
Или просто: если в обоих файлах было одинаковое количество строк, то отделять, считая с начала, каждые две? Предполагая, что файлы практически одинаковые, и отсортированный объединенный заведомо содержит пары?
Ну, на этот частный случай можно скрипт сделать :pardon:

Аватара пользователя
good_cat
Администратор

Demagog TTS

#257

Сообщение good_cat »

Программа Demagog v. 7.29.376 зависает при завершении обработки словаря omograph_rules_mytts_.dic
Demagog v. 7.29.363 с тем же файлом отрабатывает стандартно.
Дистрибутивы "из коробки", изменения в конфигурацию не вносились.
► Показать
Test files.zip
(1023.72 КБ) 187 скачиваний
P.S. Demagog v. 7.29.373 тоже зависает.

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

Demagog TTS

#258

Сообщение flegont »

Спасибо за сообщение, посмотрю, что там такое.

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

Demagog TTS

#259

Сообщение flegont »

Всё это происходит только в "быстром" алгоритме.

Словарь omograph_rules_mytts_.dic содержит правила:

со стороны озера=со сторонЫ Озера
стороны озера=со сторонЫ Озера


Текст Смит 3 Кровь ангелов.fb2 содержит словосочетание
с другой стороны озера

Версия 363 находит одно подходящее правило:
стороны озера=со сторонЫ Озера и преобразует текст так:
с другой стороны озера ---> с другой со сторонЫ озера
Это видно в представленном файле измененного текста.

Более поздние версии видят подходящими оба правила и (не поняв их своеобразия) попадают в бесконечный цикл :tongue2:
Т.о. имеющийся контроль применения правил "пока возможно" в быстром алгоритме необходимо усилить. Подумаю, как это лучше сделать.

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

Demagog TTS

#260

Сообщение tonio_k »

Вопрос, а можно сделать так, что бы при активированном словаре *.hmg и нажатой кнопке "омографы" при смене окон, словарь *.hmg подтягивался заново и повторно применялся к текущему окну?
Поясню зачем. Я открываю в окне 1 словарь *.hmg, вношу в него изменения, сохраняю, активирую окно 2 с текстом и хотелось бы что бы изменения в словаре *.hmg применились сразу к текущему окну, а не приходилось повторно отжимать кнопку "омографы" и опять на нее нажимать что бы окно среагировало на изменения в словаре.

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

Demagog TTS

#261

Сообщение flegont »

Подумаю, что можно сделать

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

Demagog TTS

#262

Сообщение flegont »

Версия 378, сборка от 31.10.2019
Небольшие поправки.
► Показать

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

Demagog TTS

#263

Сообщение flegont »

Версия 378, сборка от 10.11.2019
Небольшие поправки.
► Показать

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

Demagog TTS

#264

Сообщение flegont »

Версия 378, сборка от 18.11.2019
Небольшие поправки.
► Показать

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

Demagog TTS

#265

Сообщение tonio_k »

Может кому пригодится:

Если в тексте книги вместо "Глава 1"; "Глава 2" и т.д. присутствуют только цифры, то простая замена через Правка-Найти/Заменить (Ctrl+F) "по шаблону REX":
► Показать
позволит добавить слово "Глава" перед каждой цифрой.
Не забывайте об удобной возможности в Демагоге сохранения шаблонов поиска замен.
► Показать
Или (по желанию) создать правило замен в словаре rex

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

^(\s*)(\d+)(\s*)$=$1Глава $2$3

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

Demagog TTS

#266

Сообщение tonio_k »

Вот так будет более корректнее:

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

^(\x20*)(\d+)(\x20*)$=$1Глава $2$3
иначе пустые строки пропадают
\x20 - символ пробела

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

Demagog TTS

#267

Сообщение wasyaka »

tonio_k писал(а):
23 мар 2020 12:05
Вот так будет более корректнее:
КОД: ВЫДЕЛИТЬ ВСЁ
^(\x20*)(\d+)(\x20*)$=$1Глава $2$3
У меня так, пока без проблем..

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

[^\:[а-яё]]\s(\d+)\r\n=\r глава $1...\r\n\n
:scratch:

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

Demagog TTS

#268

Сообщение tonio_k »

wasyaka писал(а):
23 мар 2020 20:00
[^\:[а-яё]]\s(\d+)\r\n=\r глава $1...\r\n\n
интересно, почему Демагог
Поиск по шаблону REX [^\:[а-яё]]\s(\d+)\r\n -ничего не находит и не выводит в окно статистики? А вот замена [^\:[а-яё]]\s(\d+)\r\n=\r глава $1...\r\n\n - реально заменяет/срабатывает?

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

Demagog TTS

#269

Сообщение wasyaka »

tonio_k писал(а):
23 мар 2020 22:10
интересно, почему
Тоже хотелось бы узнать...
Словарь один, в KooBAudio отлаживаю, очень удобно, строки добавляю и в рекс, всё было хорошо - пока не упёрся
► Показать

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

Demagog TTS

#270

Сообщение tonio_k »

wasyaka писал(а):
23 мар 2020 20:00
У меня так, пока без проблем..
мне тут текст один пользователь скинул текст для тестов. И так удачно совпало, что на нем я и проверил ваш пример, который споткнулся на такой строчке:

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

Copyright © Jonathan Stroud, 2017

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

Demagog TTS

#271

Сообщение tonio_k »

wasyaka писал(а):
23 мар 2020 22:59
Словарь один, в KooBAudio отлаживаю, очень удобно, строки добавляю и в рекс, всё было хорошо - пока не упёрся
может это в ветке KooBAudio и обсудить? Синтаксис "регулярные выражения" у них отличаются от Демагога? Да и из скриншота не понятно содержимое правил замен. В любом случае интересный пример. Максим на нем тоже спотыкается 1, 852 - пробел разделительный вставил, да и 10_REX_числа добавляет что то не то на выходе. Без словарей всю строку Максим очень даже правильно читает. Иногда словари - очень даже зло

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

Demagog TTS

#272

Сообщение wasyaka »

tonio_k писал(а):
23 мар 2020 23:09
Copyright © Jonathan Stroud, 2017
добавь исключения

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

[^\,;!?:[а-яё]]\s(\d+)\r\n=\r глава $1...\r\n\n
А для такого существует

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

\© (\w+) (\w+)\, (\d+)
Это всё в словаре корекции у меня он в bxd
По числам
1.5_chisla.rar
(26.45 КБ) 11 скачиваний
2.2 chisla.rar
(26.58 КБ) 14 скачиваний

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

Demagog TTS

#273

Сообщение flegont »

Поиск по шаблону REX [^\:[а-яё]]\s(\d+)\r\n -ничего не находит и не выводит в окно статистики? А вот замена [^\:[а-яё]]\s(\d+)\r\n=\r глава $1...\r\n\n - реально заменяет/срабатывает?
Вот этот REX-шаблон поиска работает:
[^\:[а-яё]]\s(\d+)\r

Дело в том, что в Демагоге окно с видимым в нем текстом - это стандартный компонент Windows, называемый RichEdit. Начиная с версии 2.0 (юникодная) в качестве конца строки он всегда использует одиночный символ \r вместо традиционной пары \r\n (Неудобно, да. Все претензии - в Мелкософт :wink:)

А вот в "Заменить всё" применяется прием разбиения текста, извлеченного из окна редактирования, на фрагменты. (Это ускоряет rex-замены) При этом одиночные \r предварительно заменяются на \r\n. Потом все фрагменты со сделанными в них заменами снова объединяются в единый измененный текст.

Вопрос: А зачем при формировании фрагментов заменять одиночные \r на \r\n ?
Ответ: Потому что основная цель фрагментации текста - это создание фрагментов, читабельных для голосового движка. Стандартный разрыв строки \r\n понимают все движки. А вот на одинарном - для некоторых движков есть вероятность сбоя.

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

Demagog TTS

#274

Сообщение tonio_k »

знак решетки # в словарях

Сделал такой эксперимент:
Взял самый большой словарь REX и один большой словарь DIC(объединил в одном словаре несколько)

Создал по 2 копии к каждому словарю:
1 копия - в каждой строке перед каждым правилом добавил знак решетки #
2 копия - в каждой строке в каждом правиле заменил "=/::" на ";;"

Замерил скорость - одинаковая во всех случаях!
Таким образом, знак решетки или любая строка текста не содержащая в себе знаки "=/::" воспринимается Демагогом одинаково. Поэтому комментарии в тексте словарей можно как выделять знаком решетки так и не выделять
Правила в словарях можно отменить как вставкой знака # перед правилом, так и заменив знаки "=/::" на любой другой (тем самым превратив правило в обычную текстовую строку в глазах Демагога)

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

Demagog TTS

#275

Сообщение flegont »

Да, это - верное наблюдение :wink:
Если Демагог не находит в строке словаря разделителя на левую и правую части ( = или :: ) то он эту строку игнорирует точно также, как если бы впереди нее стоял знак комментария #

Ответить

Вернуться в «Demagog»