[ ]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: flegont  
Сборка 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 скриптом можно сделать то же самое прямо из демагога smile
 
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 ()
а какой смысл использовать стороннюю прогу,
Смысл такой, что я, во всяком случае пока, не использую демагог для озвучки, поскольку качество голосовых моделей меня не устраивает. Я к ней только присматриваюсь. А для онлайн сервисов мне удобнее пользоваться программой которая для меня удобна, мне понятна и к которой я привыкла.
 
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Общение