Тема: Общая тема

Общая тема

Автор: И Морозов

Сайт программы

mytts/download Установочная версия
mytts/download Portable-версия


Программа "Балаболка" предназначена для чтения вслух текстовых файлов. Для воспроизведения звуков человеческого голоса могут использоваться любые речевые синтезаторы, установленные на компьютере. Воспроизведение речи можно контролировать при помощи стандартных кнопок, подобных тем, что присутствуют в любой мультимедийной программе ("воспроизвести", "пауза", "стоп").

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

"Балаболка" предоставляет возможность удалить из текста все знаки переноса на концах строк; это позволит избежать запинок при чтении слов.
Поддерживаются форматы файлов: AZW, AZW3, CHM, DjVu, DOC, DOCX, EPUB, FB2, HTML, LIT, MOBI, ODT, PDB, PDF, PRC, RTF, TCR, WPD.

Текст может быть сохранен в виде аудиофайла (поддерживаются форматы WAV, MP3, MP4, OGG и WMA). Программа умеет работать с различными версиями пакета речевых функций Microsoft Speech API (SAPI). Он позволяет изменять скорость и тембр речи.

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

(2017-10-26 00:18:19 отредактировано tonio_k)

Re: Общая тема

Интересно, портабл версия принципиально отличается от основной?

29

Re: Общая тема

Ещё вопрос. Как в балаболке можно создать правило, что бы в конце каждой книги  добавлялась фраза"конец книги" или"конец произведения" и что бы это записывалась в mp3 ?

30

Re: Общая тема

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

Также, portable-версия не добавляет свои пункты меню в контекстное меню "Проводника" Windows. Если щелкнуть правой кнопкой мыши на имени текстового файла в "Проводнике", в меню не будет пункта "Открыть в Балаболке".

Re: Общая тема

tonio_k
Добавлять фразу "конец книги" в "Балаболке" не удастся.

Если текстовый файл сохраняется как несколько звуковых файлов, программа может произносить номер файла (текстового блока) в начале или конце звукового файла. Для этого можно воспользоваться кнопкой "Произносить номер блока" в окне "Разделить текст на части и преобразовать в аудиофайлы".

Если необходимо вставлять в начало или конец каждого звукового файла паузу (тишину) или проигрывать другой аудиофайл, можно воспользоваться вкладкой "Паузы" в окне "Общие настройки".

Re: Общая тема

А Планируется или, может, уже есть в балаболке такой функционал: в словаре *.dic создание правила по заменам, примерно, по такой схеме:

*ный, * *, берег=ный бЕрег

где * * это два любых слова через пробел

Что бы это правило нашло:

черный, усыпанный ракушками, берег

и исправило на:

черный, усыпанный ракушками, бЕрег

25

Re: Общая тема

tonio_k
Нет, не планируется.

(2017-11-23 16:18:16 отредактировано tonio_k)

Re: Общая тема

Ура нашел!   mytts/bo
это, оказывается, можно реализовать в словарях *.REX

(\w+)ный, (\w+) (\w+), берег=$1ный, $2 $3, бЕрег

сработает на:
черный, усыпанный ракушками, берег
Песчаный, покрытый мусором, берег

получаем в обоих случаях  замену на "бЕрег"

(\w+) - любое слово (или любая его часть)

$1, $2 $3, возвращает значение от первого, второго, третьего слова (части слова) в словосочетания, которое мы обозначили через (\w+)


Добавлено: 2017-11-24 14:10:27

Вопросы:
1) В какой последовательности идёт замена по списку файлов словарей (кто раньше) REX или DIC?
2) В какой последовательности идёт обработка файлов словарей REX между собой - по алфовиту?
3) В какой последовательности идёт обработка  файлов словарей DIC между собой - по алфовиту?
4) В какой последовательности идёт оброка строк правил внутри самого словаря? (REX / DIC) с первой строки и далее вниз?
5) какие словари по производительности быстрее работают? Какому отдать предпочтение для скорости обработки текста  REX или DIC ?
6) если отсортировать правила внутри словаря по алфовиту или по длине строки или ещё по какому признаку это как то влияет на ускорение процесса обработки словаря (REX / DIC)
7) большой размер файла DIC. Может его лучше разбить на несколько небольших? или можно смело объединять в один файл? Или нет разницы и на производительность не влияет?

21

Re: Общая тема

tonio_k

  1. Сначала применяются правила из словарей REX, затем из словарей DIC.

  2. Правила из словарей REX применяются к тексту в том же порядку, в каком они хранятся в файле. Сами файлы REX считываются в алфавитном порядке. Дополнительная сортировка не применяется. (Так было в одной старой немецкой программе для чтения вслух; немецкие пользователи попросили реализовать тот же принцип в моем программном продукте.)

  3. Программа считывает данные из всех словарей DIC и объединяет правила в один общий список. Затем сортирует данные по длине шаблона правила (то есть по длине того текста, который будет найден и заменен в тексте): длинные правила - в начале списка, короткие правила - в конце. Если у двух правил одинаковая длина шаблона, первым применяется правило, чувствительное к регистру букв. Если и эти характеристики у двух правил совпадают, тогда учитывается порядковый номер правила в исходном списке. (Такая сортировка применялась в программе "Говорилка"; так как в сети были готовые словари для этой программы, я не стал менять способ сортировки.)

  4. Когда внутри программы сформированы общий список правил REX и общий список правил DIC, правила применяются к тексты по порядку, от первого из списка до последнего.

  5. Быстрее будут применяться правила из словарей DIC. Регулярные выражения, хранящиеся в словарях REX, обладают мощными возможностями, но за это приходится жертвовать скоростью работы. (Хотя тут есть свои нюансы. Например, одно хорошо составленное регулярное выражение может заменить несколько десятков правил DIC; такое правило будет работать относительно медленно, но оно сработает только один раз.)

  6. Сортировка правил внутри словарей никак не повлияет на скорость работы программы. Но важно помнить, что порядок сортировки правил влияет на конечный результат их применения. Каждое правило меняет текст: результатом применения первого правила будет текст, к которому будет применено второе правило.

  7. Неважно, используется ли один большой словарь или несколько маленьких: разница в скорости загрузки словарей будет ничтожной. Даже если программа загружает один словарь DIC, список правил будет отсортирован заново.

(2017-11-24 17:05:55 отредактировано wasyaka)

Re: Общая тема

tonio_k пишет:

Ура нашел!   mytts/bo
это, оказывается, можно реализовать в словарях *.REX

Правильнее так:
(([А-Яа-яёЁ]+)(ный\b|кий\b)\,)\s([А-Яа-яёЁ]+)\s(([А-Яа-яёЁ]+)\,)\s\bберег\b=$1 $4 $5 бЕрег
| - знак или(добавляй и добавляй окончания
([А-Яа-яёЁ]+) - можно заменить на слово или через | слова
или так:
((([А-Яа-яёЁ]+)(ный\b|кий\b)\,)[^\.,!?-]{0,30})\b, берег\b=$1, бЕрег
или так
(([\S]+(ный\b|кий\b)\,)[^\.,!?-]{0,30})\b, берег\b=$1, бЕрег
Здесь

омографы в рег. выражениях в rex.(как раз там слова с окончаниями не доделанные:
(((а|е|и|о|я)[бнтц]и(е|и|й|ю|я)|\bиз|тви[еию]|дины|\Bего|кожу|лась|нием|ого|шись)\b[^\.,!?-]{0,2})\bбедра\b=$1 бедрА
надо просто добавить в начало после первой скобки [\S]+ или из  вышеперечисленного
([\S]+((а|е|и|о|я)[бнтц]и(е|и|й|ю|я)|\bиз|тви[еию]|дины|\Bего|кожу|лась|нием|ого|шись)\b[^\.,!?-]{0,2})\bбедра\b=$1 бедрА
и т. д.
Дерзай. mytts/hammerdrill  mytts/hammerdrill

Добавлено: 2017-11-24 17:16:34

ПыСы
(((а|е|и|о|я)[бнтц]и(е|и|й|ю|я)|\bиз|тви[еию]|дины|\Bего|кожу|лась|нием|ого|шись)\b[^\.,!?-]{0,2})\bбедра\b=$1 бедрА
надо просто добавить в начало после первой скобки [\S]+ или из  вышеперечисленного
([\S]+((а|е|и|о|я)[бнтц]и(е|и|й|ю|я)|\bиз|тви[еию]|дины|\Bего|кожу|лась|нием|ого|шись)\b[^\.,!?-]{0,2})\bбедра\b=$1 бедрА
и т. д.

Это не обязательно. за год подзабыл...

25

Re: Общая тема

wasyaka пишет:

[^\.,!?-]{0,2})

как это трактовать?
и почему в некоторых местах {0,2} ставят , где то {1,4}

Переведите мне, пожалуйста, эту короткую строку кода смысловой алгоритм (что это и почему используется):

(\bстрелку\b)([^\.,!?-]{0,30}(на рельсы|отнесла))=стрЕлку $2



Почему, например, такой (для меня более простой и понятный) вариант неприемлим?

(\bстрелку\b) (на рельсы|отнесла)=стрЕлку $2

21

Re: Общая тема

tonio_k пишет:

как это трактовать?
и почему в некоторых местах {0,2} ставят , где то {1,4}

(\bстрелку\b)([^\.,!?-]{0,30}(на рельсы|отнесла))=стрЕлку $2
[^\.,!?-]{0,25} обозначает что между стрелку и на рельсы или отнесла  ^ - знак запрета, нет знаков препинания (перечень); и {0,25} - между ними до 25-ти текстовых знаков (буква и пробел знак)
то есть может быть несколько слов.

меня[лютьи]{1,2} - в квадратных скобках - окончания к слову - комбинация любая,  в фигурных сколько  эти знаки могут раз применятся

1,- от одного и  больше
1,2 -от одного до двух и т. д.


Общая тема

И брость ты эти реги в rex, я это понял ещё год назад -что долго - не критично. а вот что найти ошибку очень сложно - этт-да. минусов больше чем плюсов.

Специально для тебя эксклюзив

  mytts/welcome

Добавлено: 2017-11-28 14:19:04

чтото ссылка неоткрывается из под спойлера и не редактируется.

22

Re: Общая тема

Спасибо обязательно посмотрю и возьму на вооружение. Но все равно по своему сделаю  mytts/ag !
словарем rex не стану злоупотреблять. Его прелесть только в возможности предугадывать варианты путем добавления много вариантов слов в одно правило, а в в dic одно слово - одно правило и следовательно куча строк куча правил. Найти в какой строке ошибка - очень легко. в Балаболке выделяешь правило смотришь статистику замен и тебе покажет какое правило на этом предложении сработало

В Demagog расширеные возможности - есть возможность немного разгрузить rex словарь. Но вот работа с текстом в Demagog ... Проще в балаболке все подготовить, а обрабатывать уже в Demagog

у тебя в словаре 2.2. Омографы.dic - тот что для KoobAudio
рекомендую везде поменять

из (за|под)

на

из(-за| за| под)


вариант написания "из-за" игнорит

в личку тебе отправлял еще замечания, но, похоже ты мне старый словарь тогда кинул. и некоторые замечания уже неактуальны.
P.S. спойлеры тоже не открываются, у меня, в гугл хроме. А вот Avast SafeZone Browser - все открыл

21

Re: Общая тема

tonio_k, в сооб. за сегодня 00:05:00  Вы разместили в самом начале закрывающий тег цитаты Перед открывающим - и страница зависла!
Последнее предупреждение, будьте внимательны.

И вообще господа, вы ведёте последовательный разговор... к чему цитаты? Никто склерозом не страдает.
В следующий раз будем бить по рукам.

(2017-11-28 20:25:12 отредактировано wasyaka)

Re: Общая тема

tonio_k  У меня дефис нигде не используется, словарь  corector трудится mytts/hammerdrill
#([А-яЁё])\-([А-яЁё])=$1 $2

23

Re: Общая тема

P.S
Омографы - вначале дик, а после рекс - меньше ошибок, и учитывай,что правильно проставленное ударение в дик может "исправить"  mytts/bp   словарь рекс.

Добавлено: 2017-11-28 20:52:47

good_cat так проще, кстати слушал вчера книгу -  через OpenPLS х 64 с одним 25-ти тысячником - ещё находу, MP3book2005 это позволяет - добовлял новые слова, проблем нет. mytts/up

24

Re: Общая тема

wasyaka, мы говорим о разных вещах, Вы о прослушивании книги совмещенном с интерактивной правкой словаря, я о прослушивании MP3-файлов. Ну скажите зачем зачем Вам загруженный 25-тысячник, пополняемый в интерактивном режиме? Вот поэтому у Вас много орфографических ошибок к словарях. Пополняйте пустой словарь - от сбоев никто не застрахован, и сохраняйте сотворенное - автосохранения в программе нет.
Потом будете переносить в основные словари.

Если Вас интересуют вопросы о программах давайте будем их обсуждать в профильных ветках, там это будет удобнее. Мы можем подискутировать по многим вопросам. Спокойно.

25

(2017-12-01 22:56:14 отредактировано zorutan)

Re: Общая тема

Здравствуйте, я не могу понять как в саму балаболку прикрутить pls словари. Именно в программу а не в голос. Чтобы потом можно было к любому голосу через балаболку применить их.
Или балаболка такого не умеет? Какое ПО тогда умеет?

23

Re: Общая тема

zorutan, попробую по простому ответить (как я сам это понимаю)
"как в саму балаболку прикрутить pls словари" - никак. сами файлы pls имеют другую структуру непонятную для балаболки. Балаболка работает только с самим текстом книги и не более, а после отправляет измененный (на основании своих словарей замен (файлы dic, rex)) текст  на вход голосового движка. А он, в свою очередь, на основании своих правил, записнанных в словаре pls - озвучивает его.
в словаре pls записаны правила по переводу обычного текста (исправленного балаболкой) в понятный для самого голосового движка язык. при этом, если вы вставите в балаболку напрямую это "понятное для голосового движка" слово - то движок его прочитает как абракадабру. (есть приближенный к вашей идее путь , но, тогда, все вопросы к автору)
"Чтобы потом можно было к любому голосу через балаболку применить их." - а балаболка именно это и делает - подготавливает текст (а именно - меняет сам текст проставляя ударения путем замены текста по правилам, записаным в  файлах dic, rex) для дальнейшего прочтения его голосовым движком. А вот как обьяснить голосовому движку, что пОтом отличается от потОм - голосовой движок не знает. Поэтому в словаре pls и прописывают, что пОтом надо читать как  <phoneme>pˈotəm</phoneme>, а потОм как  <phoneme>pɐtˈom</phoneme>. Т.Е. балаболка готовит текст к большинству популярных движков, но вот как им обьяснить, чем отличается пОтом от потОм - это уже индивидуальная задача к словарям самих голосовых движков.
Поправте меня, если где-то по смыслу ошибся. mytts/bk

25

Re: Общая тема

zorutan
Файлы PLS - это файлы для голосов от фирмы IVONA. "Балаболка" с этими файлами не работает.

Спецификация PLS (Pronunciation Lexicon Specification) была разработана консорциумом W3C как стандарт словарей для распознавания речи и для синтеза речи. Эти словари определяют транскрипции (произношения) слов для применения в компьютерных голосах. Теоретически для разных речевых движков можно создавать свои словари формата PLS, но только голоса IVONA позволяют пользователям легко и просто подключать свои словари (с помощью панели управления голосами IVONA в панели управления Windows). Формат PLS - это только рекомендация от консорциума W3C, так что разработчики компьютерных голосов не обязаны его использовать.

Полезные ссылки по теме:
Pronunciation Lexicon Specification (статья в Википедии)
Pronunciation Lexicon Specification (спецификация на сайте консорциума W3C)

Re: Общая тема

skreb пишет:

Спасибо за программу! Для меня лучшая среди родственных программ  mytts/ay  Один нюанс. Более ранние версии Балаболки запускаются намного скорее. Например, Балаболка 2.11.0.620 запускается ~5 секунд, а последняя версия 2.11.0.641 – уже ~30 секунд. Сравнивались обе портабельные версии, со  словарями по умолчанию. Это, конечно, не критично, и нет в этом никакой проблемы, но последние версии отчего-то стали грузиться долго, как тяжеловесные графические редакторы, типа 3ds Max и т.п.

23

Re: Общая тема

skreb
Что-то многовато - 30 секунд. Пришлите, пожалуйста, файл конфигурации balabolka.pcfg на электронную почту (сообщите также версию операционной системы и название антивируса, если установлен).

Re: Общая тема

ОК! Отправил.

25

Re: Общая тема

В Балаболке в случае сбоя или прерывания записи в MP3 из 49 файлов записалось только 33.
Какие способы можете порекомендовать, что бы "продолжить" запись с места прерывания?

20

Re: Общая тема

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

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

Если "вылетает" кодек LAME, то попробуйте либо заменить файл LAME_ENC.DLL на другую версию, либо использовать другой аудиокодек. (Для начала попробуйте сохранять звуковые файлы в формате WAV: если запись будет прерываться, проблема в голосе; если запись будет проходить нормально, проблема в кодеке.)