Сборка Demagog для models VOSK-TTS от tonio_k
|
|
tonio_k | Дата: Среда, 12.02.2025, 13:55 | Сообщение #46 |
Группа: Пользователи
Сообщений: 178
Статус: Offline
| Цитата Suravel (  ) чтении со словарями Этот я вообще не редактировал. Он по идее и не нужен. Вам надо ctrl+shift+8 к выделенному тексту применить. И в окне 0 статистика в самом низу получается текст после всех словарей и к нему уже применить скрипт озвучить выделенный текст. И вам сразу видно где какой и почему словарь применился.
|
|
| |
Suravel | Дата: Среда, 12.02.2025, 14:24 | Сообщение #47 |
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата tonio_k (  ) Этот я вообще не редактировал. Он по идее и не нужен. Вам надо ctrl+shift+8 к выделенному тексту применить. И в окне 0 статистика в самом низу получается текст после всех словарей и к нему уже применить скрипт озвучить выделенный текст. Ну, я а принципе почти так и делаю. Только без горячих клавиш. Выбираю в меню применить словари, а потом прослушиваю то, что получилось. Просто не разобралась ещё какой словарь для чего служит. Если бы надо было работать только с омографами, я бы вообще обошлась без словарей. Но для воска надо ставить ударения практически во всех словах, иначе жуют слова, как кашу. Так что придется разбираться. И буду пробовать добавлять слова в собственный словарь модели, то бишь расширять ее словарный запас...
|
|
| |
tonio_k | Дата: Среда, 12.02.2025, 17:18 | Сообщение #48 |
Группа: Пользователи
Сообщений: 178
Статус: Offline
| Цитата Suravel (  ) надо ставить ударения практически во всех словах можете попробовать поэкспериментировать со словарем Что бы он сборкой "подхвалился" нужно в начале названия файла добавить цифры - в нужном вам порядке срабатывания. И добавить его в папку dic. Я его убрал из сборки, т.к. переизбыток плюсиков почти в каждом слове ломал интонацию vosk в первом варианте сборки. Но может сейчас нормально будет?
|
|
| |
Suravel | Дата: Среда, 12.02.2025, 17:47 | Сообщение #49 |
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата tonio_k (  ) можете попробовать поэкспериментировать со словаремЧто бы он сборкой "подхвалился" нужно в начале названия файла добавить цифры - в нужном вам порядке срабатывания. И добавить его в папку dic. Спасибо, попробую. Хотя интонация - тоже дело важное. Пожалуй даже важнее, чем ударения. И, кстати, я пока еще даже не знаю в каком порядке всё это должно работать.
Сообщение отредактировал Suravel - Среда, 12.02.2025, 17:51 |
|
| |
tonio_k | Дата: Пятница, 14.02.2025, 10:03 | Сообщение #50 |
Группа: Пользователи
Сообщений: 178
Статус: Offline
| Цитата Suravel (  ) даже не знаю в каком порядке всё это должно работать. присвойте файлу нумерацию так, что бы он оказался предпоследним по порядку - что бы сработал перед словарём "ПАУЗЫ"
|
|
| |
Suravel | Дата: Пятница, 14.02.2025, 13:22 | Сообщение #51 |
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата tonio_k (  ) присвойте файлу нумерацию так, что бы он оказался предпоследним по порядку - что бы сработал перед словарём "ПАУЗЫ" Спасибо, это поняла. Мне другое непонятно: словари срабатывают все, независимо от того, стоит галочка или нет в панели словарей? Просто хотела посмотреть, как срабатывает каждый отдельный словарь, чтобы отключить то, что мне не нужно. Попробовала снять все галочки, а потом запустила обработку словарями. Словари сработали, хотя, по логике, не должны бы. Получается, надо каждый раз вытаскивать их из папки, а потом класть обратно? Не очень удобно...
|
|
| |
tonio_k | Дата: Пятница, 14.02.2025, 16:14 | Сообщение #52 |
Группа: Пользователи
Сообщений: 178
Статус: Offline
| Цитата Suravel (  ) Словари сработали, хотя, по логике, не должны бы. Соловари, благодаря скрипту, применяются принудительно. Это сделано для того, что бы обойти вшитую в Демагогог последовательность применения словарей: "сначала только словари *.rex и только потом словари *.dic". В сборке вы можете управлять словарями за счёт переименования файлов словарей. Поставьте в названии файла со словарём, который хотите исключить, любой символ перед цифрой в начале названия файла и этот словарь начнёт игнорироваться скриптом из сборки. Так же переименованием (за счет ставки спец слов или символов) можно управлять алгоритмом применения словаря (есть и такое) - это уже более тонкая настройка тут надо уже более глубоко изучать как работают словари.
Сообщение отредактировал tonio_k - Пятница, 14.02.2025, 17:12 |
|
| |
Suravel | Дата: Суббота, 15.02.2025, 12:06 | Сообщение #53 |
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата tonio_k (  ) Поставьте в названии файла со словарём, который хотите исключить, любой символ перед цифрой в начале названия файла и этот словарь начнёт игнорироваться скриптом из сборки. Спасибо, теперь понятно.
|
|
| |
Dlmon | Дата: Суббота, 15.02.2025, 14:54 | Сообщение #54 |
Группа: Пользователи
Сообщений: 36
Статус: Offline
| вам проще будет свой скрипт на LUA сделать.
Код --По умолчанию "глобально" устанавливаем кодировку для всех функций сохранения файлов - UTF8 o = {}; o.File_Encoding = feUTF8; Settings(o) os.setlocale('', 'ctype') -- принудительно местная локаль
-- "ind" локальная перемнная (номер текущего окна) local ind = WActive()
-- "text_patch" локальная переменная - путь до фпйла открытого в окне "ind" local text_patch = SplitFileName(WName(ind))[1]
-- "text_name" локальная переменная - имя фпйла открытого в окне "ind" (без расширения) local text_name = SplitFileName(WName(ind))[2]
-- "text" локальная переменная куда загружаем текст из окна "ind" --несмотря на то, что все файлы в кодировке "UTF8-BOM" в среде windows текст в переменной "texr" уже в колировке "ANSI" local text = WText(ind)
-- в скрытое(буферное) окно "-1" загружаем словарь ..\Demagog\dic\001.dic WOpen(-1, HomeFolder('dic').."001.dic")
-- "Rules" локальная переменная куда загружаем текст из окна "-1" --несмотря на то, что все файлы в кодировке "UTF8-BOM" в среде windows текст в переменной "Rules" уже в колировке "ANSI" local Rules = WText(-1)
-- применяем к переменной "text" dic правила из переменной "dicRules" -- и заменяем содержимое переменной "text" га результат применения словарей text = DicRepl(text,{Rules}) -- для словарей *.rex используется функция = RexRepl(text,{Rules})
--открываем результат в окне "ind" WNew(ind, text)
-- сохраняем содержимое окна "ind" в ту же папку добавив знак "+_" перед именем фпйла и добавляем расширение ".txt" WSave(ind, text_patch.."\\+_"..text_name..".txt")
ShowMessage("______ГОТОВО______")
Сообщение отредактировал Dlmon - Суббота, 15.02.2025, 14:58 |
|
| |
tonio_k | Дата: Суббота, 15.02.2025, 15:14 | Сообщение #55 |
Группа: Пользователи
Сообщений: 178
Статус: Offline
| Цитата Suravel (  ) вам проще проще... но если вы будете запускать словари из моей сборки таким способом, то некоторые словари при этом перестанут работать, либо будут работать чуть-чуть не так, либо о-о-очень медленно. Это еще у вас словари в которых ударения через плюсик редактируются, т.е. нет острой необходимости в поддержке UTF-8 Если уж вам требуется "стандартное применение словарей" то лучше не загонять все в переменные, а использовать функции, идущие в комплекте с Демагогом: WFilter(i, j, dicname, gauger) или WFilterAutoDicAlgorithm(i, j, d, g, y, z)
|
|
| |
Dlmon | Дата: Суббота, 15.02.2025, 18:01 | Сообщение #56 |
Группа: Пользователи
Сообщений: 36
Статус: Offline
| ну... это был простой пример без заморочек с кодировками. просто подробно расписал не знающим LUA при желании можно и в utf-8 загрузить
WFilter(i, j, dicname, gauger) - ну да, так кода меньше
Код --По умолчанию "глобально" устанавливаем кодировку для всех функций сохранения файлов - UTF8 o = {}; o.File_Encoding = feUTF8; Settings(o) os.setlocale('', 'ctype') -- принудительно местная локаль
-- "ind" локальная перемнная (номер текущего окна) local ind = WActive()
-- "text_patch" локальная переменная - путь до фпйла открытого в окне "ind" local text_patch = SplitFileName(WName(ind))[1]
-- "text_name" локальная переменная - имя фпйла открытого в окне "ind" (без расширения) local text_name = SplitFileName(WName(ind))[2]
-- применяем словарь к текущему окну WFilter(ind, ind, "001.dic")
-- сохраняем содержимое окна "ind" в ту же папку добавив знак "+_" перед именем фпйла и добавляем расширение ".txt" WSave(ind, text_patch.."\\+_"..text_name..".txt")
ShowMessage("______ГОТОВО______")
а WFilterAutoDicAlgorithm(i, j, d, g, y, z) где правила со * будут сортироваться по длине в общей куче с правилами без * и окажутся ниже простых правил - это ваще! - цирк с конями!
пришлось на LUA писать свою сортировку, а потом еще и переписывать на python чтоб быстро сортировало
ПС: ваще, надо отказываться даже от использования DicRepl функции, т.к. она игнорит запятые рядом со * я уже попытался на C# но работает медленно, надо на других языках пробовать
Сообщение отредактировал Dlmon - Суббота, 15.02.2025, 18:33 |
|
| |
Suravel | Дата: Суббота, 15.02.2025, 21:28 | Сообщение #57 |
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата Dlmon (  ) вам проще будет свой скрипт на LUA сделать. Спасибо, конечно. Но если у меня есть альтернатива, я предпочитаю не ломать свою старую голову, углубляясь в дебри программирования. В данном случае меня интересовала возможность вообще отключить словари. Для замен у меня есть маленькая портабельная программка весом всего 1 МБ. Я просто создаю в ней списки замен, потом указываю ей нужную папку и она быстренько делает замены сразу во всех файлах этой папки, а если нужно, то и в подпапках. Можно даже применять регулярные выражения.
|
|
| |
Dlmon | Дата: Суббота, 15.02.2025, 21:45 | Сообщение #58 |
Группа: Пользователи
Сообщений: 36
Статус: Offline
| Цитата Suravel (  ) портабельная программка весом всего 1 МБ а какой смысл использовать стороннюю прогу, если LUA скриптом можно сделать то же самое прямо из демагога
|
|
| |
tonio_k | Дата: Суббота, 15.02.2025, 22:02 | Сообщение #59 |
Группа: Пользователи
Сообщений: 178
Статус: Offline
| Цитата Dlmon (  ) где правила со * будут сортироваться по длине в общей куче с правилами без * и окажутся ниже простых правил - это ваще! - цирк с конями! сортировка отключаема, быстрый алгоритм отключаемый. Для тогои создавался WFilterAutoDicAlgorithm. Короче того, в сборе предусмотрен ускоренный алгоритм применения словарей chisla, index, попробуйте убрать эти слова из названия файлаи вы увид сильную разницу. В конце концов, в любой сомнительной ситуации правила можно поместить в другой словарь, а не пихать все в одно место. Потому в сборке несколько словарей.
Сообщение отредактировал tonio_k - Суббота, 15.02.2025, 22:06 |
|
| |
Suravel | Дата: Суббота, 15.02.2025, 22:53 | Сообщение #60 |
Группа: Пользователи
Сообщений: 14
Статус: Offline
| Цитата Dlmon (  ) а какой смысл использовать стороннюю прогу, Смысл такой, что я, во всяком случае пока, не использую демагог для озвучки, поскольку качество голосовых моделей меня не устраивает. Я к ней только присматриваюсь. А для онлайн сервисов мне удобнее пользоваться программой которая для меня удобна, мне понятна и к которой я привыкла.
|
|
| |