|
|
Автор | Сообщение | Консольное приложение |
---|
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Фев 26 2013, 21:42 | Вт Фев 26 2013, 21:42 | |
| Пользователи давно просили меня создать вариант "Балаболки" в виде консольного приложения, работающего в режиме командной строки. Сейчас я нашел время для реализации этого проекта. Утилита будет получать текст (либо из обычных текстовых файлов с расширением *.TXT, либо из буфера обмена, либо непосредственно в командной строке), применять правила из словарей коррекции произношения, а затем будет читать текст вслух или записывать звуковой файл формата WAV.
---
Уже есть хорошая утилита "Govorilka CP", поддерживающая голоса SAPI 4/SAPI 5; жаль, что она не работает с Юникодом, поэтому нельзя использовать ее для озвучивания текстов на иностранных языках. Бесплатный программный продукт "eSpeak" имеет в своем составе утилиту командной строки, так что можно использовать и его как консольное приложение (но качество бесплатных голосов eSpeak пока очень далеко от совершенства, увы).
Мне также встречались и другие утилиты для чтения вслух, работающие в режиме командной строки. Поэтому не претендую на то, чтобы создать что-то абсолютно новое в этом классе; это просто еще одна консольная программа, где реализована работа с компьютерными голосами.
Со временем напишу еще одно консольное приложение - для извлечения текста из файлов различных форматов, разбиения извлеченного текста на части и сохранения на диске в виде текстовых файлов.
---
Консольное приложение не имеет графического интерфейса и выполняется в текстовом режиме. Режим работы программы может быть задан при помощи параметров командной строки или файла конфигурации. Консольное приложение представляет собой упрощенный вариант программы "Балаболка" и может быть использовано в других программных приложениях для автоматизации задач, связанных с синтезом речи.
Командная строка
Программа может быть настроена с помощью параметров командной строки. Они отделяются от указания пути пробелом и начинаются с символа "-" (дефис). Полный список параметров командной строки можно получить, введя команду balabolka_console.exe с параметрами -? или -h.
-l Показать список голосов, установленных на компьютере.
-f имя_файла Открыть текстовый файл.
-w имя_файла Записать звуковой файл в формате WAV. Если параметр задан, звуковой файл будет создан. Если параметр не задан, текст будет прочитан вслух.
-n имя_голоса Имя голоса (достаточно указать часть имени). Если параметр не задан, будет использоваться голос, выбранный в панели управления Windows.
-c Использовать текст из буфера обмена.
-i Использовать текст из стандартного потока ввода (STDIN).
-t строка_текста Использовать текст из командной строки.
-s число SAPI 4: установить скорость речи в диапазоне от 0 до 100 (значение по умолчанию отсутствует). SAPI 5 и Microsoft Speech Platform: установить скорость речи в диапазоне от -10 до 10 (по умолчанию значение равно 0).
-p число SAPI 4: установить тембр речи в диапазоне от 0 до 100 (значение по умолчанию отсутствует). SAPI 5 и Microsoft Speech Platform: установить тембр речи в диапазоне от -10 до 10 (по умолчанию значение равно 0).
-v число SAPI 4: параметр не используется. SAPI 5 и Microsoft Speech Platform: установить громкость в диапазоне от 0 до 100 (по умолчанию значение равно 100).
-e число Установить длину пауз между предложениями (в миллисекундах). По умолчанию значение равно 0.
-a число Установить длину пауз между абзацами (в миллисекундах). По умолчанию значение равно 0.
-d имя_файла Использовать словарь для коррекции произношения (файл с расширением *.REX или *.DIC). Командная строка может содержать несколько параметров -d.
-? или -h Показать описание параметров командной строки.
Примеры команд запуска консольного приложения:
balabolka_console.exe -l
balabolka_console.exe -f "d:\Text\book.txt" -w "d:\Sound\book.wav" -n "Emma"
balabolka_console.exe -n "Olga" -c -d "d:\rex\rules.rex" -d "d:\dic\rules.dic"
balabolka_console.exe -n "Alyona" -t "Текст будет прочитан медленно." -s -5 -v 70
Файл конфигурации
Параметры можно сохранить как файл конфигурации balabolka_console.cfg в той же папке, что и консольное приложение. Пример содержимого файла: - Код:
-
-f d:\Text\book.txt -w d:\Sound\book.wav -n Microsoft Anna -s 2 -p -1 -v 95 -e 300 -d d:\rex\rules.rex -d d:\dic\rules.dic Программа может комбинировать параметры из файла конфигурации и командной строки.
Веб-страница: http://www.cross-plus-a.ru/bconsole.html |
|
|
| |
Lecron Посетитель
Сообщений : 28
Репутация : 17
| Lecron | :: Ср Фев 27 2013, 12:22 | Ср Фев 27 2013, 12:22 | |
| Что-то мне по ссылке "загрузить консольное приложение", прилетает файл 7.5Мб с обычной portable Балаболкой. А где консольная версия на 295Кб?
Сразу замечание. Нужен вывод аудио в STDOUT.
PS. Замечание по скачаному файлу полной Балаболки. Почему так раздулся экзешник? с 2 мегабайт в 2.6.0.536 до 6.5 в последней. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Ср Фев 27 2013, 13:18 | Ср Фев 27 2013, 13:18 | |
| Lecron Ссылку на дистрибутив поправил. Спасибо за сообщение.
Реализация вывода аудио в STDOUT в ближайшее время не планируется: столкнулся с проблемами при попытке осуществить это. Например, выяснилось, что движок Acapela Group также отправляет в поток вывода свои системные сообщения; это стало неприятным сюрпризом. Буду искать пути решения проблем. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Мар 03 2013, 19:13 | Вс Мар 03 2013, 19:13 | |
| Консольное приложение обновилось до версии 1.01. Добавлена возможность записи аудиоданных в стандартный поток вывода (STDOUT). Только для голосов SAPI 5 и Microsoft Speech Platform.
- Код:
-
balabolka_console.exe -f "d:\Text\book.txt" -n "Alyona" -o
|
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Мар 12 2013, 22:34 | Вт Мар 12 2013, 22:34 | |
| Версия 1.02 Добавлена возможность выбора аудиоустройства для воспроизведения звука (на тот случай, если компьютер содержит более одной звуковой карты).
-g Показать список доступных аудиоустройств.
-b число Выбрать аудиоустройство по его номеру в списке доступных устройств для воспроизведения звука. Номер устройства, используемого по умолчанию, равен 0.
- Код:
-
balabolka_console.exe -g > audio.txt |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Ср Мар 27 2013, 22:53 | Ср Мар 27 2013, 22:53 | |
| Версия 1.03 Добавлены две новые опции для обработки ситуаций, когда запущены несколько экземпляров программы.
-k Остановить работу других экземпляров консольного приложения, запущенных на компьютере.
-q Добавить приложение в очередь. Консольное приложение будет ждать, пока остальные экземпляры программы не завершат работу.
- Код:
-
balabolka_console.exe -n "Alyona" -t "Срочное сообщение!" -k |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Мар 31 2013, 18:23 | Вс Мар 31 2013, 18:23 | |
| Версия 1.04 Добавлены настройки для создания файла формата LRC.
-lrc Создать файл формата LRC, если заданы параметры [-w] или [-o] (для голосов SAPI 5 и Microsoft Speech Platform).
--lrc-length число Установить максимальную длину строк для файла формата LRC (в символах).
--lrc-filename имя_файла Имя файла формата LRC. Параметр может быть полезен в тех случаях, когда в командной строке задан параметр [-o].
--lrc-encoding кодировка Кодировка файла формата LRC ("ansi", "utf8" или "unicode"). По умолчанию значение равно "ansi".
--lrc-offset число Задать сдвиг времени для файла формата LRC (в миллисекундах).
--lrc-artist текст Тег для файла формата LRC: исполнитель произведения.
--lrc-album текст Тег для файла формата LRC: альбом.
--lrc-title текст Тег для файла формата LRC: название произведения.
--lrc-author текст Тег для файла формата LRC: автор.
--lrc-creator текст Тег для файла формата LRC: создатель файла.
- Код:
-
balabolka_console.exe -w "d:\book.wav" -i -lrc --lrc-length 80 |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Ср Апр 03 2013, 14:24 | Ср Апр 03 2013, 14:24 | |
| После переписки с посетителем форума Lecron в соседней "ветке" я сделал вывод, что нужно дать пояснения касательно работы консольного приложения со стандартным потоком вывода (STDOUT). Дело в том, что хотя такая опция и присутствует в программе, я не рекомендую ее использовать для записи больших по размеру текстов.
Увы, но мне так и не удалось найти решение всех проблем, связанных с записью аудиоданных в STDOUT. Главная из оставшихся проблем - это то, что записываемые в поток данные должны содержать заголовок формата RIFF, а в этом заголовке должен быть указан размер данных. Это значение нельзя узнать до тех пор, пока весь текст не будет преобразован в речь; поэтому первоначально аудиоданные записываются в память, и лишь затем целиком пересылаются в стандартный поток вывода STDOUT, вместе с заголовком.
Такой метод сводит на нет все достоинства работы со стандартным потоком вывода: нет никакой разницы, будут ли данные сохранены в файле формата WAVE или накоплены в оперативной памяти компьютера - программы-перекодировщики всё равно вынуждены ждать завершения процесса преобразования текста в речь.
Но и это еще не всё: также выяснилось, что запись аудиоданных в память работает существенно медленнее, чем запись данных в файл формата WAVE. Могу предположить, что это связано с необходимостью выделять всё новые и новые "куски" памяти для новых аудиоданных.
Таким образом получается, что нет никакого выигрыша от использования стандартного потока вывода вместо записи в файл. Как уже писал в предыдущем посте, это всё стало для меня неприятным сюрпризом; пока не нашел способа решить данную проблему.
---
Как вариант, можно записывать в стандартный поток вывода аудиоданные без заголовка (это называется "RAW PCM"). Но тогда уже сам пользователь, если захочет перекодировать такие данные в звуковой файл какого-либо формата, должен будет указать программе-перекодировщику, что это именно данные без заголовка, указать количество каналов, частоту, битрейт и т.д. Например, для утилиты LAME.EXE это будут параметры из раздела справки "Input options for RAW PCM".
Так как у данных нет заголовка, то нет необходимости узнавать размер данных и, соответственно, нет необходимости ждать завершения процесса преобразования текста в речь. Можно сразу пересылать данные в поток вывода, как только голос начнет преобразовывать первое предложение.
Такой способ не кажется мне удобным для обычных пользователей, так как для преобразования аудиоданных нужно знать их параметры. То есть, нужно заранее знать, что, например, "Алена" пишет данные в режиме "моно", с частотой 22,05 кГц (16 bits per sample). Наличие заголовка у аудиоданных избавляет от подобных хлопот. |
|
|
| |
Lecron Посетитель
Сообщений : 28
Репутация : 17
| Lecron | :: Ср Апр 03 2013, 16:33 | Ср Апр 03 2013, 16:33 | |
| Возможно есть вариант. Для WAV потока, каким-то образом, может осуществляться потоковое вещание. Например в VLC. В этом случае, тоже заранее продолжительность не известна. Но вещание работает. Значит и для потокового "вещания" в STDOUT также не должно быть принципиальных запретов. Но как это сделано, я не знаю. А что будет, если в заголовке указать все параметры потока, кроме продолжительности? |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Ср Апр 03 2013, 17:21 | Ср Апр 03 2013, 17:21 | |
| У меня нет информации, как именно осуществляется потоковое вещание в WAV.
- Lecron пишет:
- А что будет, если в заголовке указать все параметры потока, кроме продолжительности?
Какое-то значение все равно надо указать, там ведь не может быть пустота. Пробовал разные значения, от 0 до максимального целого, всё это приводит к тому, что кодеки создают звуковые файлы, в которых нет аудиоданных.
Сейчас я склоняюсь к мысли разрешить, всё-таки, сохранение аудиоданных в виде RAW PCM (т.е. без заголовка). Тогда можно будет запускать lame.exe, например, с такой командной строкой:
- Код:
-
lame.exe -r -s 22.05 -m m -b 128 - test.mp3 (данные из стандартного потока ввода, без заголовка, с частотой 22,05 кГц, моно)
Буду думать еще на эту тему. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Апр 06 2013, 14:59 | Сб Апр 06 2013, 14:59 | |
| Версия 1.05 Добавлены параметры командной строки для работы со стандартным потоком вывода (STDOUT), а также для показа параметров выбранного голоса.
-m Показать параметры выбранного голоса.
--raw Записать аудиоданные в формате RAW PCM; данные не содержат заголовок формата WAV (для голосов SAPI 5 и Microsoft Speech Platform). Параметр используется совместно с параметром -o.
--ignorelength Не записывать размер аудиоданных в заголовок формата WAV (для голосов SAPI 5 и Microsoft Speech Platform). Параметр используется совместно с параметром -o.
Пример использования приложения совместно с утилитой LAME.EXE: - Код:
-
balabolka_console.exe -f d:\book.txt -n Alyona -o --raw | lame.exe -r -s 22.05 -m m -h - d:\book.mp3 Пример использования приложения совместно с утилитой OGGENC2.EXE: - Код:
-
balabolka_console.exe -f d:\book.txt -n Alyona -o --ignorelength | oggenc2.exe --ignorelength - -o d:\book.ogg Пример использования приложения совместно с утилитой WMAENCODE.EXE: - Код:
-
balabolka_console.exe -f d:\book.txt -n Alyona -o --ignorelength | wmaencode.exe - d:\book.wma --ignorelength |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Июн 22 2013, 02:15 | Сб Июн 22 2013, 02:15 | |
| Версия 1.06 Исправлены мелкие ошибки.
Версия 1.07 Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Июл 21 2013, 15:32 | Вс Июл 21 2013, 15:32 | |
| Версия 1.08 Добавлены настройки для преобразования субтитров в звуковые файлы.
-sub Текст представляет собой субтитры и должен быть преобразован в звуковой файл с учетом заданных интервалов времени. Параметр может быть полезен в тех случаях, когда в командной строке заданы параметры -i или -c. Только для голосов SAPI 5 и Microsoft Speech Platform.
--sub-format текст Формат субтитров ("srt", "ssa", "ass" или "smi"). Если параметр не задан, формат будет определен по расширению имени файла субтитров.
--sub-fit Автоматически увеличивать скорость речи для того, чтобы уложиться в интервалы времени, заданные в субтитрах.
--sub-max число Установить максимальную скорость речи в диапазоне от -10 до 10 (для преобразования субтитров в звуковой файл).
- Код:
-
balabolka_console.exe -f d:\film.srt -w d:\film.wav --sub-fit --sub-max 2 |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Чт Авг 22 2013, 21:14 | Чт Авг 22 2013, 21:14 | |
| Версия 1.09 Добавлена настройка для кодировки текста из стандартного потока ввода.
--encoding кодировка Кодировка текста из стандартного потока ввода ("ansi", "utf8" или "unicode"). По умолчанию значение равно "ansi". |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Авг 25 2013, 19:26 | Вс Авг 25 2013, 19:26 | |
| Версия 1.10 Добавлены настройки для вставки пауз в начало и конец создаваемого звукового файла. Добавлена возможность вставки аудиоклипов в текст (аудиоклип - это внешний звуковой файл формата WAV).
--silence-begin число Установить длину паузы в начале звукового файла (в миллисекундах). По умолчанию значение равно 0.
--silence-end число Установить длину паузы в конце звукового файла (в миллисекундах). По умолчанию значение равно 0.
- Цитата :
- В дверь позвонили.{{Audio=d:\Звуковые файлы\ring.wav}} "Кто там?"
|
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Сен 22 2013, 19:57 | Вс Сен 22 2013, 19:57 | |
| Версия 1.11 В случае возникновения какой-либо ошибки (например, голос не инициализируется или не найден текстовый файл) программа будет возвращать код, равный "1" (в случае успешного выполнения работы - "0").
Добавлены параметры --sb и --se как короткие синонимы параметров --silence-begin и --silence-end. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Сен 24 2013, 15:20 | Вт Сен 24 2013, 15:20 | |
| Версия 1.12 Некоторые из параметров командной строки были переименованы.
--encoding кодировка или -enc кодировка Кодировка текста из стандартного потока ввода ("ansi", "utf8" или "unicode"). По умолчанию значение равно "ansi".
--silence-begin число или -sb число Установить длину паузы в начале звукового файла (в миллисекундах). По умолчанию значение равно 0.
--silence-end число или -se число Установить длину паузы в конце звукового файла (в миллисекундах). По умолчанию значение равно 0.
--sub-fit или -sf Автоматически увеличивать скорость речи для того, чтобы уложиться в интервалы времени, заданные в субтитрах.
--sub-max число или -sm число Установить максимальную скорость речи в диапазоне от -10 до 10 (для преобразования субтитров в звуковой файл). |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Ноя 02 2013, 16:40 | Сб Ноя 02 2013, 16:40 | |
| Версия 1.13 Добавлен новый параметр для выбора голоса.
-id число Выбрать голос при помощи кода языка (Locale ID). Такие коды присвоены языкам разработчиками из Microsoft (например, "1049" for русского языка, "1058" для украинского). Программа выберет из списка первый голос, код языка которого совпадает с заданным значением. Если параметр не задан, будет использоваться голос, заданный при помощи параметра -n, или голос, выбранный в панели управления Windows.
Список кодов для языков: http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Дек 15 2013, 23:38 | Вс Дек 15 2013, 23:38 | |
| Версия 1.14 Добавлен новый параметр для удаления текстового файла.
--deletefile или -df Удалить текстовый файл после завершения чтения вслух или сохранения звукового файла. Параметр используется совместно с параметром -f. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пт Янв 03 2014, 14:00 | Пт Янв 03 2014, 14:00 | |
| Версия 1.15 Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Янв 19 2014, 17:19 | Вс Янв 19 2014, 17:19 | |
| Версия 1.16 Добавлен параметр для показа иконки приложения в области уведомлений Windows.
Небольшие улучшения.
-tray Показать иконку программы в области уведомлений операционной системы. Это позволит пользователю следить за прогрессом выполнения операции, а также прервать процесс при помощи пункта контекстного меню "Стоп". |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Янв 26 2014, 20:50 | Вс Янв 26 2014, 20:50 | |
| Версия 1.17 Исправлены мелкие ошибки. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Фев 08 2014, 19:03 | Сб Фев 08 2014, 19:03 | |
| Версия 1.18 Добавлен параметр для закрытия только одного экземпляра консольного приложения.
Добавлены пункты "Пауза" и "Вперёд" в контекстное меню иконки программы.
-ka Остановить работу экземпляра консольного приложения, активного в данный момент. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Чт Апр 24 2014, 02:44 | Чт Апр 24 2014, 02:44 | |
| Версия 1.19 Небольшие улучшения. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Авг 30 2014, 23:36 | Сб Авг 30 2014, 23:36 | |
| Версия 1.20 Небольшие улучшения. |
|
|
| |
Lecron Посетитель
Сообщений : 28
Репутация : 17
| Lecron | :: Вт Сен 09 2014, 14:21 | Вт Сен 09 2014, 14:21 | |
| Нельзя ли ускорить инициализацию приложения при старте? На запуск уходит 5-6 секунд, даже с SSD и RAM дисков. При обработке 128кБ текстовых ANSI файлов, время увеличивается с 4:30 минут для 4 файлов, до 10:30 минут для 50 файлов, или на 133%. GUI версия дает лишь 25% увеличение времени. А средняя книга при разбиении на фрагменты, в соответствии с логической структурой, дает в среднем 120-150 файлов (от 50 до 350). |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Ср Сен 10 2014, 11:48 | Ср Сен 10 2014, 11:48 | |
| Lecron Ускорить не получится, там и так выполняется лишь необходимый минимум операций по получению списка голосов, установленных в системе, и инициализации выбранного голоса. Убирать просто-напросто нечего.
Не сталкивался с описанной Вами проблемой. Если и происходит какая-то задержка в полсекунды, то только при первом обращении к какому-то определенному голосу; можно предположить, что голос выполняет свои собственные действия при инициализации (например, проверяет лицензию). При втором и последующем обращениях к голосу задержек нет вообще. Проверял на разных машинах, с разными наборами голосов и различными версиями Windows.
Ищите корень проблемы в своем компьютере. Проверьте, что из программного обеспечения запущено в данный момент и не может ли это повлиять на запуск консольных приложений. Антивирус, файрвол, контроль учетных записей Windows и т.д. Может быть, какое-то приложение пытается подключиться куда-либо; проверить надо все возможности. У меня сейчас нет предположений, с чем связана такая большая задержка. |
|
|
| |
Lecron Посетитель
Сообщений : 28
Репутация : 17
| Lecron | :: Ср Сен 10 2014, 13:23 | Ср Сен 10 2014, 13:23 | |
| Проблема действительно оказалась на моей стороне. Виноват Outpost Security suite. Извиняюсь что хотел сделать вас крайним, просто такого ни с одной другой программой не случалось, все стартуют меньше чем за секунду, вот и... После его отключения, время обработки лишь на 6 секунд превысило результат GUI версии, что находится в пределах погрешности измерений. Осталось разобраться Кто виноват и Что теперь делать. Спасибо за ответ.
|
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Дек 14 2014, 20:15 | Вс Дек 14 2014, 20:15 | |
| Версия 1.21 Добавлены новые сообщения об ошибках. |
|
|
| |
kingdog Наблюдатель
Сообщений : 3
Репутация : 0
| kingdog | :: Сб Мар 07 2015, 00:07 | Сб Мар 07 2015, 00:07 | |
| Здравствуйте, пользуюсь консольным приложением уже больше года, очень удобно. Хочу предложить добавить возможность чтения строки под определенным номером из текстового файла. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Мар 07 2015, 15:19 | Сб Мар 07 2015, 15:19 | |
| kingdog Спасибо за идею, добавлю такой параметр командной строки в следующей версии утилиты. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пн Мар 09 2015, 13:39 | Пн Мар 09 2015, 13:39 | |
| Версия 1.22 Добавлен параметр командной строки для выбора строки из текстового файла по ее номеру. |
|
|
| |
kingdog Наблюдатель
Сообщений : 3
Репутация : 0
| kingdog | :: Вс Мар 15 2015, 00:46 | Вс Мар 15 2015, 00:46 | |
| Дааа! Спасибо огромное за возможность выбора строки для чтения из файлов!! А то какие хитрости только ни применял, и различные скрипты, строронние программы... В общем спасибо! Еще хотелось бы видеть возможность выставления уровня громкости прочтения для удобства. |
|
|
| |
kingdog Наблюдатель
Сообщений : 3
Репутация : 0
| kingdog | :: Вс Мар 15 2015, 00:58 | Вс Мар 15 2015, 00:58 | |
| И еще бы чтение не только определенной строки, но и определенных символов/слов в ней, заранее спасибо! |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Июн 07 2015, 19:41 | Вс Июн 07 2015, 19:41 | |
| Версия 1.23 Обновлено применение правил из словарей формата REX. |
|
|
| |
Felix Наблюдатель
Сообщений : 3
Репутация : 0
| Felix | :: Чт Июн 25 2015, 19:11 | Чт Июн 25 2015, 19:11 | |
| Спасибо за консольную версию. А можно ли попросить добавить паузу, часто нужно?
И еще у меня быстрая скорость кажется не регулируется(голос Elan Nikolai Digalo SAPI 4), Опция -s от 0 до 70 быстрая, но постоянно одна и та же, после 70 замедленная, с медленной все в порядке - она изменяется. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пт Июн 26 2015, 01:08 | Пт Июн 26 2015, 01:08 | |
| Felix Пожалуйста. Среди параметров командной строки есть паузы между предложениями и паузы между абзацами. Других пауз добавлять не планирую. Попробуйте вставлять в текст теги SAPI 5, если нужны еще паузы.
На скорость голоса "Николай" никак повлиять нельзя, это всё на совести разработчиков голоса. |
|
|
| |
Felix Наблюдатель
Сообщений : 3
Репутация : 0
| Felix | :: Пт Июн 26 2015, 17:22 | Пт Июн 26 2015, 17:22 | |
| balabolka Спасибо за ответ. Я имел в виду паузу в процессе чтения, чтоб потом с этого места на котором остановился можно было продолжить. Если нет, значит нет. )
|
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Пт Июн 26 2015, 17:48 | Пт Июн 26 2015, 17:48 | |
| Felix Поставить процесс чтения на паузу возможно, если запустить программу с параметром "-tray". В этом случае в системном трее появится иконка приложения; в меню этой иконки есть пункт "Пауза". |
|
|
| |
Felix Наблюдатель
Сообщений : 3
Репутация : 0
| Felix | :: Пт Июн 26 2015, 19:47 | Пт Июн 26 2015, 19:47 | |
| balabolka Спасибо). |
|
|
| |
Lecron Посетитель
Сообщений : 28
Репутация : 17
| Lecron | :: Пн Июн 29 2015, 16:58 | Пн Июн 29 2015, 16:58 | |
| balabolka, случайно нет расхождения по скорости между GUI и CLI версией? Именно в рамках задания параметров по умолчанию? Заметил, что фрагмент аудио от CLI версии немного короче. Когда в ней поставил скорость голоса (Loquendo Olga) на "-1", продолжительность совпала с GUI версией идеально.
Версии CLI - 1.23 (последняя), GUI - 2.7.0.545 portable (устаревшая) |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Июн 30 2015, 04:00 | Вт Июн 30 2015, 04:00 | |
| Lecron Действительно, в консольной версии по умолчанию при выборе голоса SAPI 5 не устанавливается значение скорости речи. Это значение задается в панели управления Windows ("Преобразование текста в речь" - "Скорость голоса"); видимо, на Вашем компьютере там установлено значение "-1".
Я так и не принял окончательного решения, каким должно быть значение скорости по умолчанию в консольной версии ("0" или значение из панели управления Windows). В "Балаболке" всё по-другому - там специально скорость речи задается самой программой, чтобы "Балаболка" никак не зависела от панели управления операционной системы. |
|
|
| |
Lecron Посетитель
Сообщений : 28
Репутация : 17
| Lecron | :: Вт Июн 30 2015, 09:21 | Вт Июн 30 2015, 09:21 | |
| Действительно, была установлена системная скорость выше средней. Спасибо.
Мне кажется, более прозрачно устанавливать принудительно, без оглядки на системную. Меньше зависимостей, тем более таких скрытых, меньше недопонимания. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Июл 05 2015, 14:16 | Вс Июл 05 2015, 14:16 | |
| Версия 1.24 Исправлены мелкие ошибки. |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вс Янв 03 2016, 15:17 | Вс Янв 03 2016, 15:17 | |
| Версия 1.26 Исправлены мелкие ошибки. |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Пт Мар 25 2016, 21:50 | Пт Мар 25 2016, 21:50 | |
| Можно как-нибудь заставить её работать в содружестве с экстрактором текста? То есть для чтения их других форматов, отличных от txt? Если можно, то только путём какого-нибдь бат файла с начальным извлечением в txt файл, его последующим чтением и удалением? Мало что знаю об stdin и stdout, поэтому вопрос может показаться глупым. Их использование может позволить пропускать пункт конвертанции в txt файл, а напрямую перенаправлять извлечённый текст на балаболку? |
|
|
| |
balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Сб Мар 26 2016, 17:15 | Сб Мар 26 2016, 17:15 | |
| Dimsok Поищите в интернете информацию про конвейеры командной строки. Если коротко, то две и более команд можно объединить в одной командной строке, поставив между ними символ "|". Это позволит направить выходные данные первой команды на вход второй команды.
Вот очень упрощенный пример конвертации документа MS Word в формат MP3, одной командной строкой: - Код:
-
balabolka_text.exe -f test.doc -o | balabolka_console.exe -i -n Alyona -o | lame.exe - test.mp3 Утилита для извлечения текста отправила данные на вход консольной "Балаболки", та преобразовала текст в речь в формате WAV и направила аудиоданные на вход утилиты LAME для преобразования WAV в MP3. Рекомендуется указывать кодировку текста для обоих утилит, на всякий случай. Если извлекается текст на иностранном языке, то кодировка должна быть "utf8". |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Сб Мар 26 2016, 17:59 | Сб Мар 26 2016, 17:59 | |
| - Цитата :
- Если извлекается текст на иностранном языке, то кодировка должна быть "utf8".
Ну это ведь смотря на каком иностранном. Для английского в большинстве случаев ansi хватает |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Пт Апр 22 2016, 15:07 | Пт Апр 22 2016, 15:07 | |
| balabolka_text.exe -f file.fb2 -o | balabolka_cp.exe -i Alyona
Читает не весь файл и чтение заканчивается минуты через 3, и в трее прогресс в процентах быстро меняется.
При остановке в трее вылазит ошибка balabolka_text.exe. Если просто закрыть консольное окно, ошибки нет. При чтении из utf8 ошибка при остановке через трей нет, но русский текст в этой кодировке не читает.
В чем причина, в балаболке или экстракторе текста? |
|
|
| |
Dimsok Участник
Сообщений : 55
Репутация : 1
| Dimsok | :: Пт Апр 22 2016, 15:33 | Пт Апр 22 2016, 15:33 | |
| Аудио по указанному вами примеру аналогично не сохраняется полностью из книги, только первые 5 мин |
|
|
| |
|
Консольное приложение |
---|