Консольная версия "Балаболки" (balcon.exe)

Программа "Балаболка" предназначена для воспроизведения звуков человеческого голоса с использованием любого речевого синтезатора, установленного на компьютере.

Модератор: balabolka

Аватара пользователя
Lecron
Специалист

Консольная версия "Балаболки" (balcon.exe)

#51

Сообщение Lecron »

balabolka, забыл что у меня авто-подключен cfg файл. Проблемы нашлись две.
1. В конфигурации по умолчанию, оказалось тоже работает нормально. Однако попробуйте повторить с параметром --silence-end 2000. Что отдельно, что в паре с --silence-begin 2000 дают пустой файл. silence-begin самостоятельно, данными вроде наполняет, но...
2. Когда пытаюсь восстановить заголовок

Код: Выделить всё

ffmpeg.exe -i ignore_length.wav  normal.wav 
несмотря на видимое наличие данных, не восстанавливается. Пишет Invalid data found when processing input. Файл без тишины, восстанавливается корректно. Как и проигрывается в VLC.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#52

Сообщение balabolka »

Lecron
Не знаю, в чем может быть проблема. Возможно, это зависит от голоса.

Я экспериментировал с "Алёной", никаких проблем не увидел (не услышал).
Создаю файл формата WAV (PCM) без заголовка:

Код: Выделить всё

balcon -f text.txt -n Alyona -o -il --silence-end 2000 > ignore_length.wav
Затем восстанавливаю заголовок у файла:

Код: Выделить всё

ffmpeg -acodec pcm_s16le -f s16le -ar 22050 -ac 1 -i ignore_length.wav normal.wav
(у "Алёны" частота 22,05 кГц, битрейт 16, моно).

Восстановленный файл нормально воспроизводится.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#53

Сообщение balabolka »

Ох, слона-то я и не приметил: если использовать параметр -il и сохранять звуковой файл на диске, то ignore_length.wav вообще не будет иметь заголовка. Но если данные записываются в оперативную память, то заголовок у данных есть (и в этом заголовке нет информации о размере данных). :sad:

Проверил с помощью консольной утилиты 7-Zip: она позволяет данные из STDIN записывать в архивный файл.

Код: Выделить всё

balcon -f text.txt -n Alyona -o -il | 7z a test.zip -siignore_length.wav
Звуковой файл будет внутри архива test.zip, и у аудиофайла есть заголовок (без информации о размере данных).

Не знаю, что это всё означает. Надо будет разобраться.

Аватара пользователя
Lecron
Специалист

Консольная версия "Балаболки" (balcon.exe)

#54

Сообщение Lecron »

balabolka писал(а):
28 май 2020 01:36
если использовать параметр -il и сохранять звуковой файл на диске, то ignore_length.wav вообще не будет иметь заголовка.
Дополню, может будет легче разбираться.
С использованием -silence-begin
В файл ">" тишина вставится не в начале, а в конце.
В память "|" тишина корректно в начале.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#55

Сообщение balabolka »

Версия 1.67
  • Добавлена поддержка формата WebVTT для преобразования субтитров в звуковые файлы.
  • Небольшие улучшения.
Обновились также утилиты bal4web и bal4yndx.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#56

Сообщение balabolka »

Версия 1.68
  • Добавлена поддержка формата LRC для преобразования субтитров в звуковые файлы.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#57

Сообщение balabolka »

Версия 1.69
  • Добавлена поддержка фонетической транскрипции IPA для словарей формата BXD.

Аватара пользователя
Dimsok
Постоялец

Консольная версия "Балаболки" (balcon.exe)

#58

Сообщение Dimsok »

Возможно добавить опцию для чтения прямой речи (как в основной программе)? Или помогите составить .rex словарь для поиска кавычек и тире и вставки тегов для смены голосового движка. Результаты моих стараний не дают аналогичный результат.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#59

Сообщение balabolka »

Dimsok писал(а):
02 окт 2020 09:10
Возможно добавить опцию для чтения прямой речи (как в основной программе)?
Нет, пока не планирую добавлять это в программу. Пришлось бы передавать много дополнительных параметров в командной строке, да и работает поиск прямой речи не идеально (особенно с учетом того, что в разных языках прямая речь обозначается по-разному). Мне жаль.

Аватара пользователя
Dimsok
Постоялец

Консольная версия "Балаболки" (balcon.exe)

#60

Сообщение Dimsok »

Возможно ли добавить возможность читать больше одного файла за одну команду? Например:
cp -f "пример.txt" "пример 2.txt" "пример 3.txt"

Аватара пользователя
tonio_k
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#61

Сообщение tonio_k »

Dimsok писал(а):
21 окт 2020 09:27
cp -f "пример.txt" "пример 2.txt" "пример 3.txt"
это же консоль cmd. Вы можете сами в bat прописать последовательность этих файлов друг за другом. Либо прописать автомат, который будет искать все *.txt в папке и применять к каждому balcon.exe. или "склеить" все файлы в 1.txt и применить к нему balcon.exe
Склеить, вроде, команда:

Код: Выделить всё

copy /b "пример.txt"+"пример2.txt"+"пример3.txt" 1.txt

Аватара пользователя
Dimsok
Постоялец

Консольная версия "Балаболки" (balcon.exe)

#62

Сообщение Dimsok »

Это понятно, но удобней, когда сама программа это поддерживает.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#63

Сообщение balabolka »

Dimsok писал(а):
21 окт 2020 09:27
Возможно ли добавить возможность читать больше одного файла за одну команду?
Теоретически добавить такую возможность несложно, но, действительно, зачем это нужно? На входе утилиты могут быть не только обычные текстовые файлы, но и субтитры, а их "склеить" не удастся. Также, для текстового файла может быть задана кодировка: значит, надо следить за тем, чтобы все входные текстовые файлы были в одной кодировке.

Могу добавить такую возможность в программу, это просто сделать (это уже реализовано для параметра -t, программа объединяет все текстовые строки из командной строки в один список). Но этот тот самый случай, когда рекомендуется использовать возможности командных файлов, а не перегружать параметрами командную строку.

Аватара пользователя
Dimsok
Постоялец

Консольная версия "Балаболки" (balcon.exe)

#64

Сообщение Dimsok »

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

Аватара пользователя
tonio_k
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#65

Сообщение tonio_k »

balabolka писал(а):
21 окт 2020 13:29
Могу добавить такую возможность в программу, это просто сделать (это уже реализовано для параметра -t, программа объединяет все текстовые строки из командной строки в один список).
хочу поделиться мыслями в пользу от прочтения нескольких файлов по маске *.* (в т.ч. удобство) я вижу вот в каком варианте использования balcon.exe:
Книга разбивается на отрезки. Запускается balcon.exe, который применяет словари, и перезаписывает файлы. А второй balcon.exe стартует в фоне с отставанием (например после перезаписи первого файла отрезка текста, на файл обработанного словарями) и начинает озвучивать измененные текстовые файлы по маске. И вот тут для второго balcon.exe желательно понимать звёздочки что бы по фильтру брались нужные файлы.
Я предполагаю, что при озвучке отрезков текста, когда в батнике balkon.exe запускается к одному отрезку текста для его озвучки, затем (по завершению чтения) закрывается, затем снова открывается, применяется к следующему отрезку текста, закрывается - и так по всем файлам, даёт дополнительные паузы при озвучке между отрезками текста (особенно на маломощных ПК). А если balkon запустится один раз и начнет озвучивать список файлов по маске *.txt, то пауз между отрезками текста будет меньше и возникнет ощущение непрерывного звучания.

Аватара пользователя
Lecron
Специалист

Консольная версия "Балаболки" (balcon.exe)

#66

Сообщение Lecron »

tonio_k писал(а):
23 окт 2020 11:02
А второй balcon.exe стартует в фоне с отставанием (например после перезаписи первого файла отрезка текста, на файл обработанного словарями) и начинает озвучивать измененные текстовые файлы по маске. И вот тут для второго balcon.exe желательно понимать звёздочки что бы по фильтру брались нужные файлы.
Звездочки разрешаться в список конкретных файлов на момент запуска программы. Появление подходящего под маску файла после запуска, ни на что не повлияет. А подключать нечто типа watchdog, следящего за обновлением папки, это совсем другое и намного сложнее.
tonio_k писал(а):
23 окт 2020 11:02
Я предполагаю, что при озвучке отрезков текста, когда в батнике balkon.exe запускается к одному отрезку текста для его озвучки, затем (по завершению чтения) закрывается, затем снова
Поэтому словари надо применять до разбиения, в blb2txt, а просто запуск озвучки, особых накладных расходов не создаст.
tonio_k писал(а):
23 окт 2020 11:02
пауз между отрезками текста будет меньше и возникнет ощущение непрерывного звучания.
А какая разница при пакетной озвучке, что там происходит много фрагментов вперед? Если уж надо быстрее, нужно думать о многопоточности. Благо 4 ядра нынче почти стандарт.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#67

Сообщение balabolka »

Версия 1.70
  • Небольшие улучшения.
  • Командная строка может содержать имена нескольких входных текстовых файлов (то есть несколько параметров -f).

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#68

Сообщение balabolka »

Версия 1.71
  • Добавлен параметр для игнорирования URL-ссылок в тексте.
  • Исправлено создание субтитров.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#69

Сообщение balabolka »

Версия 1.72
  • Небольшие улучшения.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#70

Сообщение balabolka »

Версия 1.74
  • Добавлены параметры для вставки пустых строк после предложений и абзацев в LRC-файлы.

Аватара пользователя
Dimsok
Постоялец

Консольная версия "Балаболки" (balcon.exe)

#71

Сообщение Dimsok »

Можно ли сделать использование ключа -f однократным независимо от количества входных файлов? Например, -f "c:\for example.txt" "c:\for example 2.txt" "c:\for example 3.txt" и
т.д. Нужно использования кнопкой в Total commander с параметром %P%S.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#72

Сообщение balabolka »

Версия 1.75
  • Добавлен параметр для выбора имени файла со списком имен текстовых файлов.
  • Обновлено преобразование субтитров в речь для SAPI 4.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#73

Сообщение balabolka »

Версия 1.76
  • Исправлено создание субтитров.
Для консольных приложений, работающих с онлайн-сервисами, добавлена поддержка стандартного потока STDOUT.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#74

Сообщение balabolka »

Версия 1.77
  • Обновлено сохранение звуковых файлов.
  • Обновлено преобразование субтитров в звуковые файлы.

Аватара пользователя
balabolka
V.I.P.

Консольная версия "Балаболки" (balcon.exe)

#75

Сообщение balabolka »

Версия 1.78
  • Исправлено использование внешних звуковых файлов (аудиоклипов).

Ответить

Вернуться в «Балаболка»