[ ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: balabolka  
Консольная версия "Балаболки" (balcon.exe)
balabolkaДата: Суббота, 24.07.2021, 00:47 | Сообщение #1
V.I.P.
Группа: Модераторы
Сообщений: 216
Статус: Offline
Начало темы здесь (ссылка на архивную копию форума mytts.info)

Официальная страница консольного приложения

 Консольное приложение (v1.81)
 Консольное приложение для онлайн-сервисов (v1.59)
 Консольное приложение для Yandex SpeechKit (v1.43)
 
tonio_kДата: Воскресенье, 22.03.2026, 13:23 | Сообщение #16
Группа: Пользователи
Сообщений: 184
Статус: Offline
допустим, мне надо, что бы балкон после озвучивания каждого текстового файла делал некий лог файл о завершении
простой пример:
Код
balcon -f book1.txt -n Microsoft Dmitry
echo "1">_done_book1.txt

balcon -f book2.txt -n Microsoft Dmitry
echo "2">_done_book2.txt

balcon -f book3.txt -n Microsoft Dmitry
echo "3">_done_book3.txt

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

Если я применяю
Код
balcon -fl list.txt -n Microsoft Dmitry

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

Что можете посоветовать для решения задачи?
1) файлы читает без пауз
2) после каждого озвученного файла создавался файл лог
 
balabolkaДата: Воскресенье, 22.03.2026, 19:17 | Сообщение #17
V.I.P.
Группа: Модераторы
Сообщений: 216
Статус: Offline
tonio_k
Не знаю, что можно сделать в такой ситуации. Программа сначала извлекает данные из всех текстовых файлов, формирует единый текст, а затем приступает к чтению вслух. Никаких меток внутри сформированного текста нет, и никакие промежуточные операции не предусмотрены.
 
LecronДата: Четверг, 26.03.2026, 15:23 | Сообщение #18
Группа: Пользователи
Сообщений: 32
Статус: Offline
tonio_k, Может в сторону параметра -q глянуть?
"   Добавить приложение в очередь. Консольное приложение будет ждать, пока остальные экземпляры программы не завершат работу."
 
tonio_kДата: Суббота, 28.03.2026, 13:25 | Сообщение #19
Группа: Пользователи
Сообщений: 184
Статус: Offline
Цитата Lecron ()
Может в сторону параметра -q глянуть?
о! Спасибо что напомнили! Вчера только освоил запуск и контроль параллельно запущенных cmd процессов из lua. Плаваю ещё пока во всем этом))
 
tonio_kДата: Суббота, 28.03.2026, 13:39 | Сообщение #20
Группа: Пользователи
Сообщений: 184
Статус: Offline
Цитата
-q Добавить приложение в очередь. Консольное приложение будет ждать, пока остальные экземпляры программы не завершат работу.


но сдаётся мне, что один балкон -q запускается, второй балкон -q ждёт первого, а вторые -q, третие -q ... сотые -q будут "ждать друг друга", пока вручную все не позакрываешь, и вот тогда, самый последний - сделает своё дело)))
balabolka, Не понятно по какому принципу происходит слежение балкона за другими своими параллельно запущенными копиями?
 
LecronДата: Суббота, 28.03.2026, 13:59 | Сообщение #21
Группа: Пользователи
Сообщений: 32
Статус: Offline
tonio_k, возможно. А если не запускать сразу все? На cmd это не выйдет точно, возможности power shell я настолько не знаю, а вот на Питоне нет проблем. Копать куда-то в эту сторону:
   
Код
with ThreadPoolExecutor(max_workers=2) as executor:
        for text in ('text1.txt', 'text2.txt', 'text3.txt'):
            speaker = executor.submit(func, text)
            speaker.add_done_callback(callback)
Два потока запускают функции. Пока один не завершится, третий файл не запустится в ожидание. 
то есть должно произойти что-то такое:
text1 запущен и звучит, text2 запущен и ждет из-за -q.
text1 завершен
text2 дождался и звучит, text3 запущен и ждет.
Лог можно писать через callback в основном потоке.
 
tonio_kДата: Суббота, 28.03.2026, 14:21 | Сообщение #22
Группа: Пользователи
Сообщений: 184
Статус: Offline
Цитата Lecron ()
На cmd это не выйдет точно
В lua, например, можно создать cmd.bat-ники  запустить их друг за другом, в "параллельный полёт" я научился)) и отловить/ остановить  конкретный поток по названию можно. У меня так конвертация ffmpeg в несколько потоков на выбор конвертирует аудио. (К стати, после 12 и до 24 потоков у меня скорость уже почти не растёт - ближе к погрешности )
соответственно, как cmd.bat отработает, по завершению -  лог файл создаст  - доложит, так сказать,  о своём завершении. и это событие (проявление ожидаемого файла) можно отловить
Но это все не имеет смысла, если -q в балконе , вдруг, не понимает последовательность очереди. А это уже только автор балкона может подсказать как этот -q по своей сути работает
 
LecronДата: Суббота, 28.03.2026, 14:35 | Сообщение #23
Группа: Пользователи
Сообщений: 32
Статус: Offline
tonio_k, Так суть в том, чтобы запускать не все тексты в паралельный полет и надеяться на -q, а только 2 — один говорит, второй ждет. Отговорил первый, заговорил второй, запустили третий. Отговорил второй, заговорил третий, запустили четвертый.
И лог писать отдельно. Какая бы это ни была быстрая операция, она занимает время. В моем варианте, задержка определяется исключительно эффективностью отслеживания завершения самим балконом. Других задержек нет.
 
tonio_kДата: Суббота, 28.03.2026, 16:08 | Сообщение #24
Группа: Пользователи
Сообщений: 184
Статус: Offline
Цитата Lecron ()
а только 2 — один говорит, второй ждет.
А! вот как! Точно! Надо попробовать. Элементарно, но как то в голову не пришло. Я всё в сторону "буферизации", когда не на +1 шаг, а на +2..+5 шагов вперед запускать параллельные процессы. Надо только буфер на +1 переделать и попробовать. Спасибо!
Цитата
И лог писать отдельно
это я неудачно выразился. Мне что бы cmd после балкона любой файл создавал по завершению - что бы отследить факт завершения, и на основе появления файла(пустышки) запустить следующий поток. Одно беспокоит, (собственно, поэтому я и отмел в самом начале идею с шагом +1, когда размышлял перед тем как понять, в каком направлении решать задачи). Допустим, старый ПК, короткий диалог, + еще на 10-ой скорости. Я запустил 2 процесса, жду как отработает первый, и хоп, оба отработали... два файла уведомления, что процесс завершен... И тут если все не слетит, то точно ощутимая пауза возникнет, причем, "технического" характера. Но сейчас думаю, зря загонялся. Не в том направлении пошел... Будем думать переписывать...
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Общение