Demagog TTS
Модератор: flegont
- tonio_k
- V.I.P.
Demagog TTS
пришел пока к такому решению:
1) запускаем Поиск [^\r\n]*(\bвсе\b|\bвсем\b)[^\r\n]* нажимаем кнопку "Все подходящие"
(переносим в новое окно все абзацы, в которых присутствуют слова все либо всем, при этом, абзацы содержащие слова всё и всём, если они присутствуют в оригинале - игнорируются)
2)полученный в п.1) результат прогоняем через словари: _vse_vsyo.rex и словарь dic (в словаре dic правила - исправления ошибок срабатывания словаря _vse_vsyo.rex)
3)в полученном в п.2) результате запускаем Поиск [^\r\n]*(\bвсё\b|\bвсём\b)[^\r\n]* нажимаем кнопку "Все подходящие"
(переносим в новое окно только те абзацы, в которых появились изменения в результате срабатывания словаря _vse_vsyo.rex
4) Просматриваем результат на выявление ложных срабатываний и их добавлением в исключения в словарь dic. Для удобства включаем подсветку всё или всём при помощи словаря всё.hmg, в котором всего две строки:
► Показать
- flegont
- V.I.P.
Demagog TTS
Я собираюсь провести эксперимент, на предмет того, можно ли создать для Встроенного интерпретатора специальную функцию, выполняющую те же опции, что окно "Поиск и замена в тексте".
О результатах напишу.
О результатах напишу.
- flegont
- V.I.P.
Demagog TTS
Или... уже сейчас вполне можно написать скрипт, извлекающий из выбранного текста все абзацы, содержащие заданные слова. Например: 'все|всем'. И регулярные выражения для этого не нужны. Достаточно средств самого встроенного интерпретатора
- tonio_k
- V.I.P.
Demagog TTS
Небольшое пожелание по работе скриптов.
А есть возможность добавить такую функцию, как блокировка (защита) текущего окна Демагог от редактирования текста пользователем?
Например:
Эта фишка будет защищать от попыток редактирования текущего окна до окончания работы скрипта. А еще не плохо было бы, если при активации Blok(ind) еще менялся цвет фона окна, а при UnBlok(ind) - восстанавливался.
А есть возможность добавить такую функцию, как блокировка (защита) текущего окна Демагог от редактирования текста пользователем?
Например:
► Показать
- flegont
- V.I.P.
Demagog TTS
Провел такое испытание.
В скрипт Pronunciation ajustment.lua добавил перед циклом словарных замен команду интерпретатора StrSpeak('А ну, убрал лапы с клавиатуры!')
А после цикла словарных замен вставил StrSpeak('Готово! Можно работать, чувак')
Запустил, вышло, как задумано: сперва строгий голос предупредил, потом минуту-другую выполнялись словарные замены, и наконец, прозвучало разрешение продолжать работу
Т.е. последовательность соблюдается. Аналогично, полагаю, будет работать и блокировка/разблокировка активного окна. Новых функций интепретатора ради нее плодить не буду. Достаточно доработать WActive, добавив второй параметр.
WActive(i, mode)
mode = true - окно i активно и доступно для редактирования
mode = false - окно i активно, но недоступно для редактирования
По умолчанию mode = true.
Где-то так, в следующей 356 версии...
В скрипт Pronunciation ajustment.lua добавил перед циклом словарных замен команду интерпретатора StrSpeak('А ну, убрал лапы с клавиатуры!')
А после цикла словарных замен вставил StrSpeak('Готово! Можно работать, чувак')
Запустил, вышло, как задумано: сперва строгий голос предупредил, потом минуту-другую выполнялись словарные замены, и наконец, прозвучало разрешение продолжать работу
Т.е. последовательность соблюдается. Аналогично, полагаю, будет работать и блокировка/разблокировка активного окна. Новых функций интепретатора ради нее плодить не буду. Достаточно доработать WActive, добавив второй параметр.
WActive(i, mode)
mode = true - окно i активно и доступно для редактирования
mode = false - окно i активно, но недоступно для редактирования
По умолчанию mode = true.
Где-то так, в следующей 356 версии...
- tonio_k
- V.I.P.
Demagog TTS
v. 7.29.355
Сейчас же, если я запущу повторно запись книги в тот же каталог, то происходит полная перезапись всей книги. А хотелось бы, что бы перезапись автоматически начиналась с последнего аудио файла.
Если во время записи аудио (в настройках стоит запись как сериал), нажать кнопку "стоп", то удаляются все файлы txt из папки назначения. Сделайте пожалуйста, что бы они не удалялись. Захочу продолжить - удалю сам все файлы txt, к которым создался аудиофайл и продолжу запись через пункт меню Сервис-Пакетная запись аудио.
Сейчас же, если я запущу повторно запись книги в тот же каталог, то происходит полная перезапись всей книги. А хотелось бы, что бы перезапись автоматически начиналась с последнего аудио файла.
- flegont
- V.I.P.
Demagog TTS
Я планирую такое изменение: текстовые файлы будут удаляться в процессе записи аудио по одному. Как только закончилась штатно запись очередной серии, так соответствующий текстовый файл удаляется. Если запись аудио прервана, то останутся тексты, соответствующие еще не записанным аудио, а также текущий - на котором процесс был оборван.
Впоследствии, можно будет дописать оставшиеся в режиме "Пакетная запись аудио".
Сейчас удаление текстовых файлов выполняется слишком "грубо" - весь текстовый пакет удаляется в любом случае - хоть нормальная запись аудио, хоть оборванная.
Впоследствии, можно будет дописать оставшиеся в режиме "Пакетная запись аудио".
Сейчас удаление текстовых файлов выполняется слишком "грубо" - весь текстовый пакет удаляется в любом случае - хоть нормальная запись аудио, хоть оборванная.
- tonio_k
- V.I.P.
Demagog TTS
Ещё одно пожелание. Думаю актуально для тех, кто иногда меняет настройки записи сериалов (размер файла, нумерацию, озвучка блоков): что бы при нажатии на кнопку запись аудио, выходило информационное окно с выходными параметрами записи из настроек.
Типа:
Размер файла: 19200 символов (=21 мин. звучания)
Формат записи: mp3; 64kb -X----
Имя первого файла: 0001_Сказки на ночь
Начало нумерации: 1
Папка аудио: C:\MP3_book\
Это окошко пригодится, когда забыл, что когда-то менял настройки. Запустив запись, выходит информационное окно и сразу понятно, что можно продолжать запись, или вовремя остановиться и вернутся к изменению настроек.
Типа:
Размер файла: 19200 символов (=21 мин. звучания)
Формат записи: mp3; 64kb -X----
Имя первого файла: 0001_Сказки на ночь
Начало нумерации: 1
Папка аудио: C:\MP3_book\
Это окошко пригодится, когда забыл, что когда-то менял настройки. Запустив запись, выходит информационное окно и сразу понятно, что можно продолжать запись, или вовремя остановиться и вернутся к изменению настроек.
- flegont
- V.I.P.
Demagog TTS
Мысль понятная, но вот как раз этого делать и не хочу. Когда-то, в ранних-ранних версиях, чтобы начать запись аудио, надо было что-то выбирать из какого меню, что-то еще нажимать, и т.п. И я долго боролся за то, чтобы весь процесс запускался одним кликом мышки, без всяких промежуточных этапов, предупреждений, информационных подсказок и т.п.
А если забыл, что там в Настройках, так заглянуть - секундное дело - кнопка "шестеренка".
А если забыл, что там в Настройках, так заглянуть - секундное дело - кнопка "шестеренка".
- tonio_k
- V.I.P.
- flegont
- V.I.P.
Demagog TTS
Нет. Опция "Запись аудио" имеет своим содержанием только одно: превращение исходного текстового файла в звуковой. Соблюдается взаимно-однозначное соответствие текста и звука.
Все правки исходного текста (если они необходимы) должны быть выполнены до записи аудио.
Все правки исходного текста (если они необходимы) должны быть выполнены до записи аудио.
- flegont
- V.I.P.
Demagog TTS
В дистрибутив вер. 356 включен пример скрипта Fragments with given words.lua. Он предназначен для поиска в тексте абзацев, содержащих заданные слова. Список слов вводит пользователь в начале работы скрипта. Например: все; всем
Разделитель слов ; обязателен. Между словами может быть также любое количество пробелов - они игнорируются.
Ранее введенный перечень слов сохраняется, и будет показан при повторном запуске скрипта.
Результат работы: текст в окне Статистика, содержащий все абзацы, в которых встречается хоть одно из перечисленных пользователем слов.
Разделитель слов ; обязателен. Между словами может быть также любое количество пробелов - они игнорируются.
Ранее введенный перечень слов сохраняется, и будет показан при повторном запуске скрипта.
Результат работы: текст в окне Статистика, содержащий все абзацы, в которых встречается хоть одно из перечисленных пользователем слов.
- tonio_k
- V.I.P.
Demagog TTS
Проблема в том, что остаются необработанные текстовые файлы следующие за последним записанным аудио файлом. А этот аудио файл как раз и бывает чаще всего "битым". Попробуйте запустить запись в аудио и где-то на середине работы словаря (до начала конвертации WAV to MP3) нажать кнопку "стоп".
Получим примерно такую картину:
► Показать
► Показать
- flegont
- V.I.P.
Demagog TTS
На этапе подготовки версии я пробовал оба эти варианта. Остановился пока на том, что есть. Ни разу при экспериментах на нем не получил "битый" крайний mp3.
Ну, а там посмотрим, по результатам дальнейшей эксплуатации.
Ну, а там посмотрим, по результатам дальнейшей эксплуатации.
- flegont
- V.I.P.
- tonio_k
- V.I.P.
Demagog TTS
Нажимаем записать аудио. Ждём когда в информационном поле появится "Ждите идёт конвертация...". Как только сообщение исчезло и начал бежать ползунок работы словаря, нажимаем стоп. Дожидаемся, когда словарь отработает и смотрим последний аудио файл в папке на предмет его размера.
- flegont
- V.I.P.
Demagog TTS
Ага, теперь понятно. У меня, похоже, из-за того что комп мощный, процесс практически всегда успевает завершиться успешно. В одно случае из пяти всё же добился "битости" крайнего файла на последнем слове.
- tonio_k
- V.I.P.
Demagog TTS
Если "мультики" глянуть, то у меня вообще от файла только имя остаётся. можно только последние 20 сек посмотреть
- flegont
- V.I.P.
Demagog TTS
Ситуация теперь понятная. Причем и 2-й вариант, с оставлением предыдущего крайнего текста, не сильно помогает. Я ухитрился, как следует потоптавшись по клавише Стоп, разрушить "средний" mp3, а потом процесс опять продолжился штатно. И все тексты удалились, как будто при успешном завершении
- flegont
- V.I.P.
Demagog TTS
Вариант №3. Вообще обработанные текстовые серии не удалять автоматически, а по завершении записи сериала выдавать сообщение типа "Готово! Результат в .... Удалить временные текстовые файлы? [Да] Нет"
Пусть пользователь сам решает: нужны ли они еще ему.
Пусть пользователь сам решает: нужны ли они еще ему.
- tonio_k
- V.I.P.
Demagog TTS
Пока идёт запись, я могу сархивировать все текстовые файлы и доставать их по мере надобности из архива. (так Сейчас и делаю). Все случаи, когда я обращался к архиву, (останавливал запись) сводился к вытаскиванию всех последующих файлов плюс один для перезаписи последнего аудио из предыдущей сессии. Тот факт, что может сломаться ещё и два последних файлов, действительно наводит на мысль, что лучше текстовые файлы хранить до окончания записи. И удалять только с разрешения. (И добавить контрольным окном "вы хотели удалить файлы... Вы все еще настаиваете на этом? )
И вот такая шальная мысль пришла, а может действительно zip архив создавать? Перед началом записи. Тогда можно текстовые файлы удалять на любом этапе, но мне бы хотелось, оставлять все последующие текстовые файлы с "запасом" плюс один для перезаписи потенциально битого.
Отправлено спустя 47 минут 1 секунду:
Вопрос: Сообщение "удалять или нет временныйе файлы", при запуске записи через скрипт с отключением ПК, как будет сочетаться?
И вот такая шальная мысль пришла, а может действительно zip архив создавать? Перед началом записи. Тогда можно текстовые файлы удалять на любом этапе, но мне бы хотелось, оставлять все последующие текстовые файлы с "запасом" плюс один для перезаписи потенциально битого.
Отправлено спустя 47 минут 1 секунду:
все же, этот вариант хоть и не такой изящный, зато универсальный. Для любого расклада подойдёт и, мне кажется, не требует глубоких изменений в алгоритме Демагога. Так что такой вариант меня бы устроил.
Вопрос: Сообщение "удалять или нет временныйе файлы", при запуске записи через скрипт с отключением ПК, как будет сочетаться?
- flegont
- V.I.P.
Demagog TTS
"Мы тут посовещались, и я решил" (с) что будет вариант №2 - с одним добавочным текстовым файлом. Пока на этом всё. Любые более универсальные решения могут и подождать - они требуют обдумывания, учета возможных побочных эффектов, в т.ч. для скриптов.
- tonio_k
- V.I.P.
Demagog TTS
"Протестировал. Оказалось, у меня всего одна "запасная жизнь"
Сам процесс: Идет запись... Останавливаем. В папке назначения - всё ок. (Последний аудио файл и текстовый файл к нему с таким же наименованием для последующей перезаписи). Начинаем возобновление записи: Сервис -> "Пакетная запись аудио" Запись пошла... Но вот на 15-той книге где то под утро мне надо снова остановить запись, что бы вечером ее продолжить. Останавливаю... Оппа! - Все текстовые файлы удалены
- flegont
- V.I.P.
Demagog TTS
Хмм... "Давненько я не брал в руки шашек..." (с) то бишь не пользовался сам Пакетной записью аудио. Посмотрю, что там за странности
- tonio_k
- V.I.P.
Demagog TTS
а как в скрипте эта строка должна выглядеть, что бы окно заблокировалось?[+] Функция встроенного интерпретатора WActive() теперь имеет второй параметр: true или false - разрешать/запрещать редактирование в активном окне. По умолчанию: true.
Отправлено спустя 13 минут 59 секунд:
Теперь при повторном запуске Сервис -> "Пакетная запись аудио" текстовые Файлы остаются в папке. Все остаются. А я ожидал, что будет "вариант №2 - с одним добавочным текстовым файлом"
- flegont
- V.I.P.
Demagog TTS
"Пакетная запись аудио" изначально была сделана так:
- если папка назначения для mp3 совпадает с папкой исходных текстов - то mp3 кладутся в ней рядом с текстами, тексты не удаляются. Потому что они - НЕ ВРЕМЕННЫЕ, это просто некие документы, которые надо пакетно озвучить.
- если папка назначения отличается от исходной папки с текстами, то тексты КОПИРУЮТСЯ в папку назначения, там озвучиваются и УДАЛЯЮТСЯ. Потому что там они - временные копии.Тексты же в исходной папке опять-таки остаются в целости и сохранности.
Из-за смешной ошибки в одной строчке, исходные файлы удалялись и в том случае, когда исходная папка являлась одновременно и папкой назначения. Вы на себе это испытали
Я всего лишь исправил ошибку, оставив первоначальный замысел, как он был.
Т.е. "Пакетной записи аудио" не разрешается удалять исходные тексты, которые она озвучила.
P.S. Применение "Пакетной записи аудио" для завершения оборванной "серийной записи аудио" - это сейчас вынужденная мера. В дальнейшем я собираюсь доработать "серийную запись" так, чтобы она могла сама определить:
- папка назначения уже существует
- она уже содержит готовые тексты сериала, их не нужно создавать заново
- такой-то текст из имеющихся является "первым" - с него и продолжать серийную запись аудио.
- если папка назначения для mp3 совпадает с папкой исходных текстов - то mp3 кладутся в ней рядом с текстами, тексты не удаляются. Потому что они - НЕ ВРЕМЕННЫЕ, это просто некие документы, которые надо пакетно озвучить.
- если папка назначения отличается от исходной папки с текстами, то тексты КОПИРУЮТСЯ в папку назначения, там озвучиваются и УДАЛЯЮТСЯ. Потому что там они - временные копии.Тексты же в исходной папке опять-таки остаются в целости и сохранности.
Из-за смешной ошибки в одной строчке, исходные файлы удалялись и в том случае, когда исходная папка являлась одновременно и папкой назначения. Вы на себе это испытали
Я всего лишь исправил ошибку, оставив первоначальный замысел, как он был.
Т.е. "Пакетной записи аудио" не разрешается удалять исходные тексты, которые она озвучила.
P.S. Применение "Пакетной записи аудио" для завершения оборванной "серийной записи аудио" - это сейчас вынужденная мера. В дальнейшем я собираюсь доработать "серийную запись" так, чтобы она могла сама определить:
- папка назначения уже существует
- она уже содержит готовые тексты сериала, их не нужно создавать заново
- такой-то текст из имеющихся является "первым" - с него и продолжать серийную запись аудио.
- tonio_k
- V.I.P.
Demagog TTS
Согласен. По хорошему продолжение записи аудио это не ее прямая задача а скорее хитрый ход". Тогда такое предложение:
Открываю книгу. Даю команду записать аудио. Идет запись. Останавливаю запись. Выхожу из демагога. Теперь заново Открываю ту же книгу и с теми же настройками даю команду записать книгу. Демагог сообщает "В найденной папке уже есть файлы. Продолжить запись книги? ДА/НЕТ.
Если ДА, то автоматом начинается пакетная запись "всех" текстовых файлов по "вариант №2 - с одним добавочным текстовым файлом". Если НЕТ, то начинается перезапись содержимого папки.
- flegont
- V.I.P.
Demagog TTS
Да, такое предупреждение будет. И при любом "сеансе продолжения записи" текстовые файлы будут сохраняться по варианту №2 - с одним добавочным.
- flegont
- V.I.P.
Demagog TTS
Второй параметр в функции встроенного интерпретатора: WActive( i, editmode )а как в скрипте эта строка должна выглядеть, что бы окно заблокировалось?
Он может быть true (по умолчанию) или false - разрешить/запретить редактирование окна i
-- Пример 1
WActive(7,false) -- заблокировать окно 7
WActive(7) -- разблокировать окно 7
Можно в любом другом окне написать WActive(7,false) и нажать F2
окно 7 тут же станет активным, но заблокированным
Затем вернуться в предыдущее, исправить на WActive(7) или WActive(7,true) - это одно и то же, и 7-е окно разблокируется.
-- Пример 2
for i = 1,16 do WActive(i,false) end
F2
и всё, спасет только перезапуск Демагога
- tonio_k
- V.I.P.
Demagog TTS
Оказывается баг был той еще "фичей".
С его исправлением столкнулся с таким моментом:
Ранее применяя скрипт ПЕРВИЧНАЯ ОБРАБОТКА.lua, срабатывали словарь rex и словарь Ё-фикатор. Обработка происходила примерно за 10-15 сек. Полученный текст книги можно было сразу запускать на чтение или сразу приступать к записи в аудио книги по активированным словарям.
Теперь же ПЕРВИЧНАЯ ОБРАБОТКА.lua стал выполняться дольше одной минуты.
Все правильно: убрана галочка в "Общие настройки" - "Чтение" правила из dic словарей применяются в порядке убывания длины (рекомендуется), значит правила применяются по алгоритму "прямого перебора" - а он медленный.
И вот какая идея мне пришла, а что если (только на уровне скриптов) WFilter добавить дополнительный параметр - указание алгоритма ("быстрый алгоритм" или прямой перебор) по которому будет применяться словарь dic. По умолчанию пусть будет тот, что указан в "Общие настройки" - "Чтение". Или указание алгоритма сделать обязательным для работы WFilter
Под такой гибридный алгоритм любой словарь dic можно разбить на две части:
Первый словарь dic - сборник правил по "быстрому алгоритму"
Второй словарь dic - сборник правил с алгоритмом "прямой перебор".
Тогда можно создавать скрипт с гибридным алгоритмом применения словарей dic для записи книг в аудио.
Ваш "Быстрый алгоритм" найдет свое достойное применение и ощутимо увеличит общую скорость обработки текста для записи книги в аудио.
- flegont
- V.I.P.
Demagog TTS
Я себе представляю это так:
WFilter( i, j, dicname, mode)
К тексту в окне i применить словарь dicname и поместить результат в окно j.
mode = true - словарь dicname формата .dic работает по быстрому алгоритму
mode = false - словарь dicname формата .dic работает по прямому перебору
если параметр mode не указан, то берется значение из Настроек программы
если dicname - словарь формата .rex, то mode - игнорируется (если был нечаянно указан)
P.S. На моем компе прямой перебор в Демагоге на словарях до 1000 правил по скорости сравним с быстрым алгоритмом. А дальше - начинает постепенно отставать. 50000..100000 правил - разница уже в разы.
WFilter( i, j, dicname, mode)
К тексту в окне i применить словарь dicname и поместить результат в окно j.
mode = true - словарь dicname формата .dic работает по быстрому алгоритму
mode = false - словарь dicname формата .dic работает по прямому перебору
если параметр mode не указан, то берется значение из Настроек программы
если dicname - словарь формата .rex, то mode - игнорируется (если был нечаянно указан)
P.S. На моем компе прямой перебор в Демагоге на словарях до 1000 правил по скорости сравним с быстрым алгоритмом. А дальше - начинает постепенно отставать. 50000..100000 правил - разница уже в разы.
- tonio_k
- V.I.P.
Demagog TTS
звучит так, будто разбиение словаря на несколько маленьких придаёт прямому перебору коэффициент ускорения
Поэксперементирую. Ну а вдруг все именно так?
Отправлено спустя 1 час 52 минуты 31 секунду:
Эксперимент
Применялись:
-один и тот же файл книги
-словарь DIC один большой или он же, но разбитый на 11 маленьких частей
-обработка через скрипт последовательно словарь за словарем.
-каждый замер проводился по 2 раза
1) Прямой перебор:
1.1) 1 словарь REX + 1 большой словарь DIC = 3м.40с
1.2) 1 словарь REX + 11 маленьких словарей DIC = 3м.40с
Что удивительно секунда в секунду
2) Быстрый алгоритм:
2.1) 1 словарь REX + 1 большой словарь DIC = 21с
2.2) 1 словарь REX + 11 маленьких словарей DIC = 1м.10с
Выводы
- быстрый алгоритм - быстрый.
- объединение нескольких словарей в один дает ощутимый прирост в скорости. Но тут надо учитывать, что словари применялись через скрипт последовательно один за другим. Если бы эти словари применялись путем их активации в окне словарей и далее "показать измененный текст", то они автоматом объединяются в один файл и результат был бы как в 2.1 Поэтому для скрипта надо стараться, что бы словари по быстрому алгоритму были, по возможности, слиты в один.
- прямой перебор работает одинаково по времени в любой последовательности и раздробленности
- flegont
- V.I.P.
Demagog TTS
Очень интересный эксперимент!
Сделаю одно пояснение. В Демагоге
Размер фрагмента можно увидеть (и изменить) в Сервис - Общие настройки - Чтение - Читать текст последовательными блоками с количеством символов ...
По умолчанию: 8192 - примерно 4 книжные страницы.
Сделаю одно пояснение. В Демагоге
потому что большие тексты, перед применением прямого перебора, Демагог сам делит на фрагменты, применяет к ним прямой перебор, и "склеивает" результаты воедино. Т.е. экономия времени от "дробления" им уже получена.прямой перебор работает одинаково по времени в любой последовательности и раздробленности
Размер фрагмента можно увидеть (и изменить) в Сервис - Общие настройки - Чтение - Читать текст последовательными блоками с количеством символов ...
По умолчанию: 8192 - примерно 4 книжные страницы.
- balaamster
- Обыватель
Demagog TTS
flegont,
Подскажите, пожалуйста, где можно ознакомиться со списком внутренних функций (и принимаемыми параметрами) Demagog, которые можно использовать в lua-скриптах?
Во встроенной справке, к сожалению, не нашёл.
Поздно я осознал все прелести Demagog, но лучше поздно, чем никогда. Сейчас пытаюсь наверстать упущенное, изучаю функционал программы.
Подскажите, пожалуйста, где можно ознакомиться со списком внутренних функций (и принимаемыми параметрами) Demagog, которые можно использовать в lua-скриптах?
Во встроенной справке, к сожалению, не нашёл.
Поздно я осознал все прелести Demagog, но лучше поздно, чем никогда. Сейчас пытаюсь наверстать упущенное, изучаю функционал программы.
- flegont
- V.I.P.
Demagog TTS
В дистрибутиве Демагога есть файл ..\_Tests_\argo-interpreter.htm
Это - сверхкраткое (пока что, к сожалению) описание встроенного интерпретатора и его функций.
Встроенный интерпретатор в Демагоге - это известный скриптовый язык Lua версии 5.3.
Он пополнен некоторым количеством "внедренных" функций, представляющих собой вызовы тех или иных подпрограмм Демагога или функций языка Delphi. Я выбрал для них имена, начинающиеся с большой буквы - чтобы отличать от собственных функций Lua.
А вот здесь нормальный учебник Lua от создателя языка Роберто Иерусалимского. Эту книжку не нужно читать от корки до корки. Просто пролистать первые несколько страниц - знакомство со структурой языка, основные команды и функции. Сам я не такой уж знаток Lua и часто пользуюсь этой книжкой, как справочником.
Это - сверхкраткое (пока что, к сожалению) описание встроенного интерпретатора и его функций.
Встроенный интерпретатор в Демагоге - это известный скриптовый язык Lua версии 5.3.
Он пополнен некоторым количеством "внедренных" функций, представляющих собой вызовы тех или иных подпрограмм Демагога или функций языка Delphi. Я выбрал для них имена, начинающиеся с большой буквы - чтобы отличать от собственных функций Lua.
А вот здесь нормальный учебник Lua от создателя языка Роберто Иерусалимского. Эту книжку не нужно читать от корки до корки. Просто пролистать первые несколько страниц - знакомство со структурой языка, основные команды и функции. Сам я не такой уж знаток Lua и часто пользуюсь этой книжкой, как справочником.
- tonio_k
- V.I.P.
Demagog TTS
Сервис - Орфография - Проверка словарей DIC. Рассмотрите пожалуйста возможность выявления такого рода ошибок:
перед ним=пЕред ним
стоящего перед=стоЯщего перед
При наличии в правой части правила слова с верхним регистром и такого же слова с маленьким регистром в другом правиле, вывести эти правила.
перед ним=пЕред ним
стоящего перед=стоЯщего перед
При наличии в правой части правила слова с верхним регистром и такого же слова с маленьким регистром в другом правиле, вывести эти правила.
- tonio_k
- V.I.P.
Demagog TTS
1.08.020 beta
28 октября 2007 Первая, опубликованная в Инете версия. День рождения программы Demagog. Program "Demagog"
flegont, примите поздравления и благодарность за вашу замечательную программу!
28 октября 2007 Первая, опубликованная в Инете версия. День рождения программы Demagog. Program "Demagog"
flegont, примите поздравления и благодарность за вашу замечательную программу!
- balaamster
- Обыватель
Demagog TTS
flegont, присоединяюсь к поздравлению.
Спасибо за замечательную программу, которая для меня стала куда больше, чем просто говорящий текстовый редактор!
Спасибо за замечательную программу, которая для меня стала куда больше, чем просто говорящий текстовый редактор!
- balaamster
- Обыватель
Demagog TTS
При работе с движком RHVoice, столкнулся с необъяснимым поведением:
1. Выбираю голос, например Aleksandr, и устанавливаю нужный мне тембр: -8
2. Запускаю чтение - всё в порядке, тембр -8.
3. Закрываю Demagog
4. Запускаю Demagog заново - тембр сбился на значение 10
Или второй вариант развития событий:
1. Выбираю голос, например Aleksandr, и устанавливаю нужный мне тембр: -8
2. Запускаю чтение - всё в порядке, тембр -8.
3. Запускаю запись аудио, тембр сразу же сбивается на значение 10.
Спасает только трюк при создании сериалов: "Добавлять в начале и конце название файла и номер части" - <pitch absmiddle="-8"/> "%1". Серия %2.
Можно это как-то побороть?
1. Выбираю голос, например Aleksandr, и устанавливаю нужный мне тембр: -8
2. Запускаю чтение - всё в порядке, тембр -8.
3. Закрываю Demagog
4. Запускаю Demagog заново - тембр сбился на значение 10
Или второй вариант развития событий:
1. Выбираю голос, например Aleksandr, и устанавливаю нужный мне тембр: -8
2. Запускаю чтение - всё в порядке, тембр -8.
3. Запускаю запись аудио, тембр сразу же сбивается на значение 10.
Спасает только трюк при создании сериалов: "Добавлять в начале и конце название файла и номер части" - <pitch absmiddle="-8"/> "%1". Серия %2.
Можно это как-то побороть?
- flegont
- V.I.P.
- balaamster
- Обыватель
Demagog TTS
Попробовал с другими движками. Проблема воспроизводится аналогично.
Ранее, на других движках, не сталкивался с этим, потому что тембр по умолчанию всегда устраивал.
Обнаружил закономерность: если тембр установлен меньше нуля, то происходит сбрасывание на "10", в описанных ранее случаях. Если >=0, то тембр не сбрасывается. Со скоростью проблемы нет, независимо от отрицательного значения.
Почитал справку по RHVoice, поправил конфиг для голоса в RHVioce.ini:
voices.aleksandr.default_pitch = 0.1
Теперь, независимо от выбранного значения тембра в приложении, голос звучит с тембром -10.
- flegont
- V.I.P.
Demagog TTS
Ага, спасибо. Значит, проблемные - "отрицательные" тембры. Буду разбираться.
Отправлено спустя 1 час 13 минут 57 секунд:
Перезалил дистрибутив. Теперь отрицательные тембры не сбрасывает.
Отправлено спустя 1 час 13 минут 57 секунд:
Перезалил дистрибутив. Теперь отрицательные тембры не сбрасывает.
- flegont
- V.I.P.
Demagog TTS
Нет. Формат fb3 пока не доказал свою жизнеспособность. Его использует практически только LitRes, техническим редактором которого является Грибов, 20 лет назад изобретший формат fb2. Понятно его желание вдохнуть в отживающий fb2 новую жизнь... но результаты пока неубедительны, имхо
- tonio_k
- V.I.P.
Demagog TTS
Сервис - Орфография - Проверка словарей DIC
Такое правило не отлавливает. Рассмотрите возможность добавить проверку:
Если левая часть правила, При условии если убрать все звездочки "приклееные слову" (звездочка не окружена с двух сторон пробелами) будет равно правой части правила с учетом регистра, - то вывести в окно статистики
Код: Выделить всё
мы знаем, всё *ые=мы знаем, всё ые
Если левая часть правила, При условии если убрать все звездочки "приклееные слову" (звездочка не окружена с двух сторон пробелами) будет равно правой части правила с учетом регистра, - то вывести в окно статистики