[ ]
MyTTS (форум) » Программы, использующие синтез речи в Windows » другие программы » Picobook TTS Offline (Программа на python 3, не использующая SAPI)
Picobook TTS Offline
tonio_kДата: Понедельник, 01.08.2022, 11:38 | Сообщение #31
Группа: Пользователи
Сообщений: 139
Статус: Offline
Цитата flegont ()
На MSI Katana - не работает. Почти мгновенно выполняет словарные замены
тут я не понял, очень быстро работают словари или они вообще не сработали? Ctrl+Shift+8 к выделенному абзацу работу словарей показывает? Может Демагог х32 попробовать? Я в 64 ещё ни разу не пробовал свои скрипты запускать
Цитата flegont ()
При этом в папке audio - все текстовые фрагменты на месте.

Текстовые файлы в папке audio находятся справочно и используются только для контроля сравнения количества на случай сбоя. Фактически разбитый текст книги со всеми командами находится в script.py
Цитата flegont ()
И только если сделать ручной запуск script.bat, то появляется черное окно консоли
если script.bat в ручную запускается, значит батник рабочий для этого ПК, но это значит и что в скрипте не срабатывает строка:
Код
Execute(workfolder..'script.bat','',wsNormal)

А почему она у вас не срабатывает, при наличии "рабочего" script.bat???
Я в недоумении wacko
Может вместо cmd нужно powershell использовать?


Сообщение отредактировал tonio_k - Понедельник, 01.08.2022, 11:43
 
flegontДата: Понедельник, 01.08.2022, 12:19 | Сообщение #32
V.I.P.
Группа: Модераторы
Сообщений: 141
Статус: Offline
Пока и у меня предположений нет. Разница  лишь в том, что этот ноут примерно в 30 раз более быстрый.
Поиграюсь еще со скриптом 10... - вставлю отладочные сообщения. Чтобы отловить, где затык случается. Тогда напишу.

P.S. Словари отработали на ура, и текст почистился и ударения проставились - тут всё в порядке.

P.P.S. Я в 32х версии и запускал.
А что касается 64х, то я нашел и исправил там ошибку, и выложил сборку Demagog 64x вер. 407, от 30.07.2022. На этой сборке теперь можно напрямую выполнить пример N1 от Silero.  Я загрузил его в окно Демагога 64x, в последней строке добавил команду: print(audio_paths) и нажал Shift+F2 - выполнить питон-скрипт!

Demagog 64x немножко подумал и напечатал в окне Статистики: test.wav
А в корневой папке Демагога возникли файлы test.wav и model.pt  smile 

Потом взял пример со списком абзацев - работающий в V2 и не работающий в V3. И добавил цикл прямо в скрипте. (Раз уж модель больше не умеет сама работать с  батчами. )
С каждым оборотом цикла формировался новый test.wav, и переименовывался в 'test'+str(i+1)+'.wav'
Добавил, естественно, функцию задержки цикла до окончания формирования очередного wav.
Потом снова нажал Shift+F2, в окне Статистики появилось:
test1.wav
test2.wav
test3.wav
И все три эти аудиофайла в корневой папке!
Будет время, продолжу этот эксперимент.


Сообщение отредактировал flegont - Понедельник, 01.08.2022, 12:50
 
flegontДата: Понедельник, 01.08.2022, 14:16 | Сообщение #33
V.I.P.
Группа: Модераторы
Сообщений: 141
Статус: Offline
Для наблюдения за происходящим, вставим в генерируемый скрипт паузу:

--Генерация батника
local dos={}
dos[#dos+1] = AnsiToDos('cd "'..workfolder..'"')
dos[#dos+1] = AnsiToDos('cls')
dos[#dos+1] = AnsiToDos([[python.exe script.py]])
dos[#dos+1] = 'pause'
SaveToFile(dos,workfolder..'script.bat')

В окне консоли получаем:

D:\~tmp\Demagog>python.exe script.py
python.exe: can't open file 'D:\\~tmp\\Demagog\\script.py': [Errno 2] No such file or directory

D:\~tmp\Demagog>pause
Для продолжения нажмите любую клавишу . . .


Почему система думает, что запуск происходит из рабочей папки Демагога, а не из папки питона?
Проверил, на папку C:\Python310\ - полный доступ.

На обоих ноутах у меня питон на C:\Python310\
На одном всё работает, на другом - только при ручном запуске из папки питона.
Какие-то шалости системы...
wacko
 
tonio_kДата: Понедельник, 01.08.2022, 14:53 | Сообщение #34
Группа: Пользователи
Сообщений: 139
Статус: Offline
Цитата flegont ()
dos[#dos+1] = AnsiToDos([[python.exe script.py]])
Попробуйте поменять на:
dos[#dos+1] = AnsiToDos([["]]..workfolder..[[python.exe" "]]..workfolder..[[script.py"]])
 
flegontДата: Понедельник, 01.08.2022, 15:11 | Сообщение #35
V.I.P.
Группа: Модераторы
Сообщений: 141
Статус: Offline
Все-таки, что-то с доступами к C\Python310:



P.S. Когда я запускаю свои батники, вызывающие примеры Silero, из корневой папки Демагога, при том, что сами примеры и model.pt лежат там же, то пока что проблем не было. М.б. в папку питона вообще не стоит лезть со своими файлами... unsure


Сообщение отредактировал Admin - Понедельник, 01.08.2022, 15:30
 
tonio_kДата: Понедельник, 01.08.2022, 15:38 | Сообщение #36
Группа: Пользователи
Сообщений: 139
Статус: Offline
Цитата flegont ()
не стоит лезть со своими файлами
Попробую поменять пути сохранения результатов в папку с Демагогом.
А вы, в таком случае, попробуйте вручную  отредактировать script.py изменив в нём пути сохранения и запустить скрипт 20_ПРОДОЛЖИТЬ..
Если заработает, то действительно не стоит лезть в папку python

P.S ещё  у script.py и батника поменять путь где они будут создаваться и запускаться


Сообщение отредактировал tonio_k - Понедельник, 01.08.2022, 15:41
 
tonio_kДата: Понедельник, 01.08.2022, 15:45 | Сообщение #37
Группа: Пользователи
Сообщений: 139
Статус: Offline
А ещё можно попробовать питон установить на любой диск кроме С:\
Мне кажется это тоже может помочь. К стати, при установке питона я ставил Галочку напротив PATH (в инструкции есть скрин)
Вдруг солнце встаёт потому что петух орёт? ©
 
flegontДата: Понедельник, 01.08.2022, 17:39 | Сообщение #38
V.I.P.
Группа: Модераторы
Сообщений: 141
Статус: Offline
Должно быть:
workfolder = HomeFolder()
из Настроек, ясное дело, надо убрать, ибо это теперь не папка питона.

1.bat
2.bat
2.py
model.pt

в папку Демагога

После этого скрипт 10.... на том же тексте "Нахалка.txt" на MSI Katana отработал по-спринтерски за 2 мин. 
Папка audio,  scrypt.py, scrypt.bat  создались, как положено, в корневой папке Демагога  yahoo

P.S. Чисто редакционная правка. НАСТРОЙКИ ГОЛОСОВОГО ДВИЖКА - не Тембр, а Качество аудио
48000 - наивысшее, 24000 - среднее, 8000 - низкое.


Сообщение отредактировал flegont - Понедельник, 01.08.2022, 17:42
 
tonio_kДата: Понедельник, 01.08.2022, 18:08 | Сообщение #39
Группа: Пользователи
Сообщений: 139
Статус: Offline
Цитата flegont ()
workfolder = HomeFolder()
Так и сделаю.
Ещё добавлю создание папки по названию книги, и что бы script.py в нее помещался и запускался. И ещё проверку этой папки На предмет неоконченной записи при запуске 10_... С выбором: перезаписать или продолжить?. Чтобы не повторить мою ошибку: с этими экспериментами случайно очистил содержиое папки аудио с файлами, которые ноутбук озвучивал всю ночь surprised
 
Pin240Дата: Среда, 03.08.2022, 20:08 | Сообщение #40
Группа: Пользователи
Сообщений: 104
Статус: Offline
Всем салют.  Извиняюсь что пропал. Времени как всегда мало cry . Да я смог победит моменты с SSML.Модели теперь читают нормально-не спешат и даже местами учитывают такие знаки как "!" "?"  Там была моя не внимательность в переменной.  Внедрил модуль постановки ударений  с условием падежей. Он конечно не работает на столько моментально как Демогог, но на среднюю по умолчанию книгу уходит 3-4 минуты расстановки ударений. Пролистал как можно интегрировать Lua в Python скрипты. tonio_k, Вы конечно много  кода настрочили в скриптах ))) Мой Скрипт занимает всего 561 строку wink , но тянет ооочень много зависимостей. Приходиться платить размерами из-за моей политики "все должно  работать из  одной коробки"  Как только код приведу в более цивильный вид выложу сырой оптимизированный код. Вообще мне нужно попытаться освоить хоть базова зверя - Lua
Цитата tonio_k ()
ваш консольный портабельный python для запуска внешнего постоянно меняющегося скрипта script.py
не очень понял выражение "постоянно меняющегося"

Сейчас проблемы с компиляцией из-за импорта некоторых библиотек с отдельными модулями. Возможно придется сменить компилятор.
Как у же просили отдельное подключение для словаря и отключение аудио сделал. При тестировании очень больших текстов попались случаю превышения 1000 символ - нужные  поправки  уже внес.

Логика моего скрипта точно такая же как у вас, но разная реализация.

1)Загрузка текста
2)Удаление лишних символов
3) Замена по словарю. Что в вашей реализации лучше. Я сидел и  экспериментировал со словарь немного) Как раз хочу по этому поводу с вами посидеть, как всегда на все нужно время.
4) Разделение текста.
Как и вы я по началу делал txt фрагменты и лишь потом кормил модель. Однако позже я подробней изучил картежи, листы и списки python-а после чего мусора стало меньше + уменьшит запросы HDD к CPU, так как запросов на CPU и так хватает. При этом я сразу мог получить нужную длину фрагмента и засечь лишние символы, для которых не сработала замена или фильтрация.  Средняя длина мои абзацев ~800 символов +\-100 символов в зависимости от длины предложения, что уменьшает время простоя.
5) На выходе  test.wav.
Я знаю другой метод сохранения файла на выходе(Например на выходе бы было B_001,B_002), но он не очень удобен, занимая больше места. Здесь конечно моя реализация немного кривая, так как питон не может дописать один мр3 к другому а возиться с дополнительным циклом в цикле не хотелось и просто лень), а сборка огромной кучи кусков  в один позволяет  затем делить как угодно хоть по 30 сек хоть по 2 часа.
6) Перегонять wav в mp3
Здесь я  пытался использовать все доступные настройки качества  8000, 16000, 48000Гц в том числе и есть настройка temp ffmpeg, но теперь с правильной работой SSML это не требуется.
Здесь у меня ловится test.wav и в зависимости  что вы выбрали (8000, 16000, 48000 Гц) с разу меняет частоту и в мр3 и переименовывает. Еще пон не переносит пробелы в путях и именах файлов!
7) Собираю все куски в 1 большой ,это происходит очень быстро так как по факту параметры у них одинаковые и затем разбивает так же быстро на нужные фрагменты любой длины на которые способен ffmpeg.

Последнее время за компом долго сидеть не могу:( если что здесь быстрей отвечу vk.com/pin240


Сообщение отредактировал Pin240 - Среда, 03.08.2022, 20:37
 
Pin240Дата: Среда, 03.08.2022, 20:40 | Сообщение #41
Группа: Пользователи
Сообщений: 104
Статус: Offline
Цитата flegont ()
test1.wavtest2.wav
test3.wav
использую contact список для ffmpeg на выходе вы можете получить немного не тот результат)
такак если у вас более 1000 фрагментов вы можете получить такой список
1, 11,2,22,3 итд я немного по хитрей сделал biggrin
 
Pin240Дата: Среда, 03.08.2022, 20:49 | Сообщение #42
Группа: Пользователи
Сообщений: 104
Статус: Offline
Цитата flegont ()
D:\~tmp\Demagog>python.exe script.pypython.exe: can't open file 'D:\\~tmp\\Demagog\\script.py': [Errno 2] No such file or directory
если у вас правильно установлен пион то достаточно просто в консоли указать script.py  его имя и запустить, но  в системном(винды) PATH обязательно пути провертеть.  Эти пути должны быть обязательны в системных переменных !
C:\Users\Celleron_2.4G\AppData\Local\Programs\Python\Python38\Scripts\;
C:\Users\Celleron_2.4G\AppData\Local\Programs\Python\Python38\;
C:\Users\Celleron_2.4G\AppData\Local\Programs\Python\Python38\Lib\site-packages
Прикрепления: 3809938.png (81.8 Kb)


Сообщение отредактировал Pin240 - Среда, 03.08.2022, 20:51
 
flegontДата: Среда, 03.08.2022, 22:56 | Сообщение #43
V.I.P.
Группа: Модераторы
Сообщений: 141
Статус: Offline
Да, всё так, PATH надо не забывать настраивать. А то у питона шаг вправо, шаг влево - попытка к бегству, стреляет без предупреждения  smile   Спасибо за краткий графический мануал. Когда-то давно приходилось работать с питоном, но с тех пор объем забытого уже превысил объем того, что еще помню  cry
 
Pin240Дата: Понедельник, 08.08.2022, 18:51 | Сообщение #44
Группа: Пользователи
Сообщений: 104
Статус: Offline
Салют всем, прога еще не заброшена)) И так, компилятор сказал: "Я не буду собирать все твои пакеты" angry .
Поэтому пришлось лепить портативную версию питона, однако это ускорит запуск скрипта, так как не нужна будет распаковка во временные файлы. Будут 2 батника : Picobook_TTS_Offline_Console_V4.1_CC.bat и Picobook_TTS_Offline_Console_V4.bat
Однако на форуме  cyberforum.ru мне подсказали как сделать инсталятор. Так что ожидаем небольшие изменения и инструкции к запуску. С помощью инсталятора вообще можно будет избавиться от батников.
Плюс узнал хорошую новость: Скоро появиться  версия модели и тогда я с чистой совестью смогу удалить  модуль расстановки ударений. В данный момент все сложности из за него


Сообщение отредактировал Pin240 - Понедельник, 08.08.2022, 18:51
 
Pin240Дата: Вторник, 09.08.2022, 21:40 | Сообщение #45
Группа: Пользователи
Сообщений: 104
Статус: Offline
И так портативная сборка слеплина https://cloud.mail.ru/public/7jkJ/Kw7HnWAmG
python-3.8.10_portable.rar

Если вы раньше боялись что там есть майнеры, то вы ошибаетесь) В конце концов можете не пользоваться сборкой а самостоятельно собрать все зависимости. И так  приступим к описанию:

У нас есть 5 BAT-файла чтобы каждый раз не вбивать руками особенно это касается Picobook_TTS_Offline_Console_V4.1_CC

1)Picobook_TTS_Offline_Console_V4.bat

Код
python.exe Picobook_TTS_Offline_Console_V4.py


2)Picobook_TTS_Offline_Console_V4.1_CC_HELP.bat
Код
python.exe Picobook_TTS_Offline_Console_V4.1_CC.py -h
@pause

Просто вызов справки всех команд

3)Picobook_TTS_Offline_Console_V4.1_CC.bat

Код
python.exe Picobook_TTS_Offline_Console_V4.1_CC.py -C 2 -T book.txt
Думаю отрыть текстовым редактором и подправить на нужные параметры смогут все)

4)cmd.bat

Код
CMD.exe
Запуск в текущем каталоге

5)cmd _path.bat

Код
set PATH=%PATH%;%CD%

Просто забыл удалить, после эксперементов smile создание временных переменных для текущего пользователя.

Версию с инсталятором пока не выкладываю, так как там трабалы с запуском от локального пользователя.


Сообщение отредактировал Pin240 - Вторник, 09.08.2022, 21:43
 
MyTTS (форум) » Программы, использующие синтез речи в Windows » другие программы » Picobook TTS Offline (Программа на python 3, не использующая SAPI)
Поиск:

Общение