balabolka в ABM SubtitlesReader есть два варианта чтения: - если не успевает прочитать то пропускает и начинает новый кусок - если не успевает то читает пока не дочитает первый кусок и только затем начинает читать следующий, получается как бы отставание которое потом нагоняется паузами между диалогами в фильме
как показала практика 2й режим лучше всего потому что сильно длинных фраз в фильме не так много а если и есть то при запаздывающем переводе они воспринимается субъективно лучше чем если с обрывами, и быстро привыкаешь
Цитата :
В общем, это идея на далекое-далекое будущее...
да, это для wishlist сейчас, скорее всего, помимо озвучивания книг, чтение субтитров для фильмов без звукового перевода занимает второе место по популярности
Уточню. Хорошо бы не считать комбинацию "точка пробел цифра" разрывом предложения, для механизмов коррекции. Это даже упростит алгоритм убрав кучу исключений. А точку, если она не будет откорректирована, синтезатор отработает в соответствии со своими правилами.
П о поводу субтитров. Для Ольги есть режим, задаваемый тегами, в котором она читает фрагмент за указанный промежток времени. Так,что путь свободен. Единственно, не уверен, что теги пройдут через SAPI.
lev55 "Быстрый" метод ищет в тексте отдельные слова; при этом символом-разделителем является ПРОБЕЛ. Слово, написанное через дефис, рассматривается "быстрым" методом как одно целое.
Буду думать, что тут можно сделать. Спасибо за информацию.
Так Получается, что стандартный режим работает неправильно. Его и править. Пробовал убирать дефис через ini. Убирается он хорошо. Но вот после этого начинаются огромные проблемы. Например студ^ента-сторожа после удаления дефиса движок норовит прочитать как студента-сторож^а и множество других ляпов. Огомная просьба, оставьте дефис пользователю с его словарями.Не вредите.
Спасибо Илья. Относительно субтитров, их обработка в Балаболке может происходить следующим образом. Файл субтитров при загрузке преобразуется во внутренний формат, примерно такого вида.
Алгоритм обработки будет следующий: 1. Следующий титр не читается, пока не подошло время. 2. Если чтение запущено со средины текста, время часов устанавливается по времени первого встретившегося тэга титра. Далее, пользователь может отредактировать титры, таким образом.
Тег <titre> может поддерживать атрибуты: start, pause, sapi, voice, volume, speed, timbre. Количество разных голосов растет… Таким образом можно будет озвучивать не только фильмы, но и диалоги.
llev55 Все сказаное безусловно было доступно для понимания и ранее. И безусловно просьба не вредить касалась именно обработки текста словарями, любыми методами
balabolka Такая просьба, если не сложно. При чтении внизу окошка появляется время (прочитанное/оставшееся). Нельзя ли в той же строчке (рядом с названием голоса, например), дополнительно ввести окошко с общим временем звучания книги (оно не меняется по мере прослушивания), как в программе mp3book. Иногда сложно сориентироваться в размерах книг, т.к. исходные текстовые файлы разных форматов.
Lev55 Проблема появляется после обработки словарем в большинстве абсолютно правильно читаемых словосочетаний той же Ольгой. Так, что для искоренения небольшого числа ошибок, сам алгоритм движка будет нарушен.
Субтитры: мне сейчас не до них; как уже написал, если до этого и дойдут руки, то в далеком будущем. Там слишком много "подводных камней". Так что не надо сейчас предлагать новые внутренние форматы субтитров; я так загружен на основной работе, что даже не смогу воспринять эти идеи.
Что касается слов с дефисами, то не собираюсь что-либо радикально менять в методах применения правил коррекции произношения. Также, много раз предупреждал, что "стандартный" и "быстрый" методы применения правил имеют свои особенности, так что различия в применении правил возможны; слова, написанные через дефис, - это как раз такой случай.
Изменить что-либо в "быстром" методе для игнорирования дефиса сейчас не получится, "фильтрация" дефиса и его последующее "доставание из памяти" потребуют существенной модификации алгоритма с непредсказуемым результатом. Пока могу предложить лишь добавлять слова с дефисом в словарь или использовать "звездочку":
lev55 Еще ни разу не воспользовался такой утомительной процедурой, как правка омографов в практически ручном режиме. И не собираюсь ей пользоваться. как IMXO и абсолютное большинство пользователей балаболки. Так, что здесь с Вами не соглашусь.
При чтении внизу окошка появляется время (прочитанное/оставшееся). Нельзя ли в той же строчке (рядом с названием голоса, например), дополнительно ввести окошко с общим временем звучания книги (оно не меняется по мере прослушивания), как в программе mp3book.
Нет, этого я делать не стану. В mp3book, как я понимаю, продолжительность звучания рассчитывается на основе средней скорости чтения русского текста русским голосом (конкретно голосом "Николай", скорее всего). "Балаболка" предназначена для чтения текстов на разных языках, самыми разными голосами, так что подобные рассчеты невозможны.
(Сегодня объяснял одному французу по электронной почте, как ему увидеть японские иероглифы в бета-версии "Балаболки"; подозреваю, что время звучания японского текста будет не совпадать со временем чтения вслух русского текста такой же длины...)
Нет, этого я делать не стану. В mp3book, как я понимаю, продолжительность звучания рассчитывается на основе средней скорости чтения русского текста русским голосом (конкретно голосом "Николай", скорее всего). "Балаболка" предназначена для чтения текстов на разных языках, самыми разными голосами, так что подобные рассчеты невозможны.
Спасибо за ответ, все понятно. Нет, в mp3book при выбранных разных голосах пишется разное время звучания. Но ведь в Балаболке каким-то образом рассчитывается время, оставшееся до конца книги при включенном чтении вслух.
Нет, в mp3book при выбранных разных голосах пишется разное время звучания.
Уверены?! Время звучания там всегда одинаковое для разных голосов; никогда не видел, чтобы этот показатель изменялся при смене голоса.
Время звучания в mp3book вычисляется просто: длина текста в символах (размер файла в байтах) делится на тысячу (или около того), получается количество минут. В принципе, для русского языка это верно; погрешность будет одна минута на один час. К тому же, текст в mp3book всегда ПРИНУДИТЕЛЬНО форматируется, все лишние символы и разрывы строк удаляются, что еще более упрощает вычисления.
Еще раз повторю: кроме русского есть еще множество других языков; и я не уверен, что скорость чтения всегда будет тысяча символов в минуту. К тому же, это не такой важный показатель, чтобы всегда показывать его на экране (мне так кажется).
Sylvia пишет:
Но ведь в Балаболке каким-то образом рассчитывается время, оставшееся до конца книги при включенном чтении вслух.
Это совсем другое. Меня попросили сделать так же, как в "Говорилке": чтобы в ходе чтения оставшееся время вычислялось автоматически (время, прошедшее с начала чтения, делится на количество прочитанных символов - получаем реальную скорость чтения). Опять же, сам я не считаю эту информацию необходимой, но раз уж добавил в программу, то пусть остается.
Да, верно, время звучания зависит от скорости речи в mp3book; но тогда это еще более затрудняет подсчеты, так как у разных голосов (даже русских) скорость меняется в разных диапазонах; это надо сидеть с секундомером в руках и отмерять количество прочитанных символов за минуту для каждого голоса для каждого значения скорости (от -10 до +10). Либо писать большие аудиофайлы и затем делить количество символов в тексте на время звучания аудиофайла...
А ведь есть еще теги: я видел тексты, где ВСЕ диалоги раскрашены тегами смены голоса (мужские реплики читает, например, Microsoft Mike, женские и детские реплики - Mary и т.д.). Текст тегов в этом случае будет учитываться при подсчете длины текста, но на самом деле теги не повлияют на продолжительность звучания; то есть для корректного вычисления продолжительности звучания текста надо игнорировать теги при подсчете количества символов в тексте.
(Все это я написал для того, чтобы объяснить, почему не хочу добавлять новую информацию в строку состояния окна программы. Хотя, нет ничего плохого и в том, чтобы показывать хотя бы приблизительную продолжительность звучания; это дело вкуса...)
А вот что касается принудительного форматирования, то это совсем даже не плохая вещь. Исходный файл остается в неприкосновенности, форматируем текст и автоматически сохраняем его в некоем "хранилище" подготовленных к чтению файлов/книг. Это позволяет избежать ОГРОМНОГО количества потенциальных проблем, а, значит, упрощает работу программы. Так что, подход, выбранный автором mp3book, очень даже логичен и разумен.
Я выбрал другой путь - то есть моя программа должна уметь читать любой текст безо всякого предварительного форматирования или обработки. Это удобно, это упрощает использование программы, но такой способ не застрахован от многих проблем.
Для поддержки чтения субтитров Несмотря на некоторое раздражение, я все-таки отвечу. Это предпроцессор (термин словарь здесь неуместен) для чтения .str файлов (файл: str.ini).
Возможно ли в режиме проверки правописания реализовать возможность копирования слов в буфер. Для оценки звучания вариантов написания, например. А то приходится постоянно выходить-заходить. Спасибо.
Я недавно открыл для себя Балаболку, и не знаю всех тонкостей настроек, поэтому прошу прощения, если, то что я пишу, уже реализовано. У меня есть такое пожелание: авторазбиение текста на аудиофайлы построчно, т.е. чтобы каждая новая строка текста записывалась в отдельный аудиофайл. Для чего мне это нужно? Для изучения иностранных языков. Есть немало хороших флэшкард программ, в которых не поддерживается функции TTS, но можно добавлять аудиофайлы. В каждой карточке у меня находится отдельное предложение, которое не может быть полностью озвучено с помощью mp3 файлов из словаря. Поэтому приходится прибегать к записи с использованием искусственных голосов. Вручную записывать по отдельности каждую карточку очень долго и муторно,но их можно все вместе экспортировать в текстовый файл, а затем открыть в MS Excell ( Open Office). Получится столбец значений всех экспортированных карточек. Если удалить колонку с переводом, то останутся только фразы(предложения) изучаемого языка. Вот их то и надо записать каждую в свой mp3(wav) файл. Если такое уже реализовано в Балаболке или других программах буду благодарен за подсказку. Я пока нашел что-то подобное в YazikRecorder http://www.yojik.eu/pmwiki.php?n=Yojik.LeYazikRecorder , но эта программа ,по всей вероятности, сделана только под Linux, а я же работаю с Windows. Мне кажется данное предложение могло бы еще больше поднять функционал и сферу применения Балаболки.
У меня есть такое пожелание: авторазбиение текста на аудиофайлы построчно, т.е. чтобы каждая новая строка текста записывалась в отдельный аудиофайл.
Нет, такую "экзотическую" опцию добавлять не стану. То, что Вам нужно, можно получить таким путем. Добавляете в Ваш текстовый файл по две пустых строки после каждой строки; это делается в MS Word - открываете файл в этом редакторе, открываете окно "Найти и заменить", в поле "Найти" пишите ^p, в поле "Заменить на" пишите ^p^p^p, нажимаете кнопку "Заменить все". Сохраняете текстовый файл.
Затем в программе "Балаболка" выбираете пункт главного меню "Файл|Сохранить как несколько аудиофайлов". В появившемся диалоговом окне выбираете способ деления текста: Искать две пустые строки подряд. Всё, можно начинать запись аудиофайлов.
То, что Вам нужно, можно получить таким путем. Добавляете в Ваш текстовый файл по две пустых строки после каждой строки; это делается в MS Word - открываете файл в этом редакторе, открываете окно "Найти и заменить", в поле "Найти" пишите ^p, в поле "Заменить на" пишите ^p^p^p, нажимаете кнопку "Заменить все". Сохраняете текстовый файл. Затем в программе "Балаболка" выбираете пункт главного меню "Файл|Сохранить как несколько аудиофайлов". В появившемся диалоговом окне выбираете способ деления текста: Искать две пустые строки подряд. Всё, можно начинать запись аудиофайлов.
balabolka, большое спасибо за инфу, все получилось "как в аптеке". И несколько тысяч моих карточек дружно обрели свою "звуковую половину"
А чтобы не оффтопить предлагаю еще в программу такое дополнение как автоматический захват и воспроизведение буфера обмена без участия пользователя, т.е. без нажатия на соответствующую кнопку как сейчас. Такая фича(включаемая/отключаемая) есть в Ivona Expressivo ( как в основном модуле, так и в выносном "clipboard monitor"), где она служит для воспроизведения текста из буфера обмена с помощью голосовых движков, в словаре Multitran( для автоматического перевода содержания буфера обмена), популярном текстовом редакторе Akelpad, ну и наверняка и в других прогах тоже . При частом использовании буфера обмена данная функция сократила бы затраты мускульной энергии и времени пользователя и послужила бы подспорьем для профилактики профзаболеваний (а именно травмоподверженности указательного пальца правой руки) .
prox Спасибо за идею, но пока в моих планах нет добавления функции мониторинга буфера обмена; эта опция не кажется мне такой уж полезной. Но обещаю подумать.
Добавьте пожалуйста настройку отображения курсора в текстовом окне. Или сделайте его более заметным. Очень напрягает его малозаметность, граничащая с невидимостью. Особенно чуствуется на небольших экранах с высоким разрешением. Приходиться выделять слова "наощупь", медленно подбираясь к нужному слову для отправки его в словарь.
Lexus В окне "Установки" есть пункт "Прятать курсор" в полноэкранном режиме; можеть быть, из-за этого Вы не видите курсор?
Каким-либо другим способ менять курсор не стану, сейчас программа показывает такой же курсор, как в любом другом текстовом редакторе. Если использовать в программе свои собственные варианты курсоров - могут быть проблемы с антивирусными программы; уже с подобным сталкивался на компьютерах с McAfee VirusScan.
Речь идет о малозаметности существующего курсора в текстовом окне. Может есть возможность сделать его толще, либо графическим в виде какой нибудь пиктограммы.
Вам придется добавить такие слова, написанные через дефис, в словарь омографов.
Так и добавляю. Просто таких слов достаточно много и сейчас их можно обнаружить только в процессе прослушивания. Можно, конечно, обойти это в три прохода, как изредка и приходится делать, когда в тексте много таких слов: вставить с обоих сторон каждого дефиса по пробелу; отловить омографы; убрать лишние пробелы. Просто казалось, в программе это реализовать несложно. Может, кто подскажет более легкий способ. Спасибо.
al2055 lev55 Речь шла об омографах, написанных через дефис; насколько я понимаю, их точно не восемь триллионов. Не верю, что это действительно такая серьезная проблема, что омографов, написанных через пробел, так много, что их невозможно перечислить все в словаре. Приведите примеры таких омографов.
Мне удобнее осуществлять поиск целых слов-омографов, а не делить каждое слово, написанное через дефис, на части и проверять каждую часть по отдельности - омограф это или нет. Так программа работает быстрее. Если бы омографов, написанных через дефис, действительно было бы очень много - тогда и можно было бы пересмотреть способ поиска омографов в тексте. Пока у меня нет доказательств того, что омографы, написанные через дефис, являются серьезной помехой.
balabolka Ну, насчет восьми триллионов утверждать не берусь, но их действительно ооооочень много. Практически каждый омограф (особенно имя существительное) может встретиться в текстах через дефис с другим словом. Не говоря уже о парных омографах через дефис. Если еще учитывать все их возможные словоформы, то словарь для них будет, как минимум, сопоставим по размеру с ныне существующими. Кстати, ведь и при проверке правописания в программе слова через дефис игнорируются. Т.е. и не добавляются в словарь, и не заменяются, и не пропускаются.
Цитата :
Мне удобнее осуществлять поиск целых слов-омографов, а не делить каждое слово, написанное через дефис, на части и проверять каждую часть по отдельности - омограф это или нет.
Просто мысли вслух: словом в тексте, по определению, является некая последовательность определенных символов, ограниченных некими управляющими символами, пробелами или знаками препинания. Что мешает исключить тот же дефис из этой определенной последовательности или же приравнять его к знакам препинания. Два омографа, написанных через ту же запятую или точку, даже и без пробела, различаются, через дефис - нет. Почему получается, что тот же дефис является символом, включенным в состав слова, а кавычка, например, нет. Нелогично.
lev55
Цитата :
Если бы было кому интересно, написал бы по кускам, саму суть, а потом вопросы.
Интересно, конечно. Может, что и склеим все вместе. Да и программисты найдутся, я думаю. Сам 100 лет не программировал, да и времени свободного не особо (тем более, что когда оно изредка появляется, Аленкин словарь подчищаю для себя - очень уж он захламлен), но... может и попробую тряхнуть стариной)))), если с кем-то скооперируемся.
Просто мысли вслух: словом в тексте, по определению, является некая последовательность определенных символов, ограниченных некими управляющими символами, пробелами или знаками препинания. Что мешает исключить тот же дефис из этой определенной последовательности или же приравнять его к знакам препинания. Два омографа, написанных через ту же запятую или точку, даже и без пробела, различаются, через дефис - нет. Почему получается, что тот же дефис является символом, включенным в состав слова, а кавычка, например, нет. Нелогично.
Почему же нелогично, очень даже логично: дефис входит в состав слова, наравне с буквами. "Кто-нибудь", "во-первых", "генерал-майор" - это все отдельные слова, а не наборы слов, не словосочетания.
Отсюда и проблема: да, можно просто игнорировать дефис, считать его разделителем слов; но тогда будут и игнорироваться омографы из словаря, написанные через дефис; либо придется каждое слово, написанное через дефис, проверять дважды - один раз целиком (с дефисом), второй раз по частям (где дефис - это разделитель).
Хорошо, спасибо, я понял суть проблемы. Буду еще думать, что тут можно сделать. (Если нет четких правил записи омографов в словаре, если неизвестно, какие омографы существуют в других мировых языках, - трудно выработать некий "стандарт" работы с омографами.)
Отсюда и проблема: да, можно просто игнорировать дефис, считать его разделителем слов; но тогда будут и игнорироваться омографы из словаря, написанные через дефис; либо придется каждое слово, написанное через дефис, проверять дважды - один раз целиком (с дефисом), второй раз по частям (где дефис - это разделитель).
Думаю, количеством омографов с дефисом в нынешних словарях по сравнению с общим количеством правил можно просто пренебречь. И потом, если уж принять его за обычный разделитель, или знак пунктуации, или нечто подобное, зачем нужно проверять дважды и зачем что-то будет игнорироваться? Не возникает же сейчас подобных проблем с любым другим знаком.
И потом, если уж принять его за обычный разделитель, или знак пунктуации, или нечто подобное, зачем нужно проверять дважды и зачем что-то будет игнорироваться?
Вот пример: слово "все-таки"; сначал надо проверить слово целиком ("все-таки") - вдруг оно есть в словаре омографов, затем по частям ("все", "таки"). Эти две проверки я и имел ввиду.
Хорошо, добавлю всё это в следующую версию программы; посмотрим, что получится.
al2055 пишет:
Не возникает же сейчас подобных проблем с любым другим знаком.
Не возникает, потому что никакие другие символы ВНУТРИ русских слов не встречаются. Хотя в иностранных словах и в других языках теоретически могут возникнуть проблемы (например, с такими французскими именами как "д'Артаньян").
По-моему, в новой версии с омографами все получилось хорошо, спасибо. А то же самое при проверке орфографии можно сделать? Или это уже будет перебор))) Довольно часто встречаются тексты с большим кол-вом ошибок и приходится предварительно их корректировать.
Хотелось бы, чтобы программа не запоминала номер первого файла (и в названии, и в звуковой метке), а при запуске программы автоматически ставила номер 1.
По-моему, в новой версии с омографами все получилось хорошо, спасибо. А то же самое при проверке орфографии можно сделать?
Нет, проверку орфографии изменить будет очень сложно. Там на самом деле три разных системы проверки орфографии (из MS Office 97/2000, Aspell и Ispell); в каждой свои "заморочки". Сейчас не возьмусь за то, чтобы что-то там менять.
Не теряю надежды, что когда-нибудь появится хорошая бесплатная система проверки орфографии, с гибкими настройками, с полной поддержкой Unicode, с бесплатными словарями под большинство языков мира. Такую систему могла бы создать фирма Microsoft, у нее для этого предостаточно ресурсов. Но она предпочитает внутри последних версий MS Office использовать "закрытую" систему проверки правописания, которую нельзя использовать из других программных продуктов. Очень жаль.
Хотелось бы, чтобы программа не запоминала номер первого файла (и в названии, и в звуковой метке), а при запуске программы автоматически ставила номер 1.
Простите, не понял, что именно Вы имеете ввиду. Поясните поподробнее, пожалуйста.
Нет, проверку орфографии изменить будет очень сложно. Там на самом деле три разных системы проверки орфографии (из MS Office 97/2000, Aspell и Ispell); в каждой свои "заморочки". Сейчас не возьмусь за то, чтобы что-то там менять.
Да, я Вас понимаю. На самом деле, на мой взгляд, лучше всего Aspell, но там абсолютно игнорируется дефис. Через MS Office он корректно обрабатывается, но хватает других сюрпризов. Может потому, что у меня релиз 2003, хотя при проверке непосредственно в Word они не проявляются. А Ispell - это вообще вне критики. Просто хотелось бы все делать в одном приложении. Ну что поделать, пока и так обойдемся. Спасибо.
слово с ошибкой, когда его добавляешь в словарь при проверке, его потом где искать если передумаешь?
можно ли как-то реализовать пользовательский словарь орфографии который бы подключался в балаболке и если встречается слово в тексте из такого словаря то оно больше не подсвечивается и не учитывается при построении "списка с ошибками", даже подсвечивать не обязательно лишь бы не включались больше в "список ошибок" а то одно и тоже по десять раз приходится проверять иногда например какой-то *.orf которым бы обрабатывался текст (ошибки) после обычной проверки
слово с ошибкой, когда его добавляешь в словарь при проверке, его потом где искать если передумаешь?
У трех разных систем проверки орфографии пользовательские словари хранятся в разных местах. У Microsoft - в файле C:\Program Files\Common Files\Microsoft Shared\Proof\custom.dic В системе Aspell - в файле C:\Program Files\Aspell\ru.pws, в кодировке KOI-8. В Ispell - в файле C:\Program Files\Common Files\ISpell\Russian\user
evilone_ пишет:
можно ли как-то реализовать пользовательский словарь орфографии который бы подключался в балаболке и если встречается слово в тексте из такого словаря то оно больше не подсвечивается и не учитывается при построении "списка с ошибками", даже подсвечивать не обязательно лишь бы не включались больше в "список ошибок" а то одно и тоже по десять раз приходится проверять иногда
Возможно ли добавить символ > для вставки кликом в окне редактирования словарей. Я использую его для Николая в SAPI 5 вместо <. Вполне успешно работает в большинстве случаев.
panalex Кнопку с символом ">" добавлю (всё равно такая кнопка нужна для тегов SAPI 5, пользователи об этом уже просили). Спасибо.
lev55 Я бы и рад реализовать некий "макрос", который бы вставлял в поле сразу несколько символов одним нажатием кнопки, но, боюсь, подавляющее большинство пользователей просто не поймет, как это настроить и использовать. А как им доступно объяснить это в своей программе (да еще и на разных языках мира) - просто не представляю. Поэтому простите, такая идея не для моей программы.
Хотелось бы, чтобы программа не запоминала номер первого файла (и в названии, и в звуковой метке), а при запуске программы автоматически ставила номер 1.
Простите, не понял, что именно Вы имеете ввиду. Поясните поподробнее, пожалуйста.
При сохранении как неск аудиофайлов можно присвоить произвольный номер для стартового (первого) файла. Аналогично и в проззнесении имени блока. Если задать номер, то программа его запомнит и в дальнейшем оставит его (если вручную не заменишь, ). Хотелось бы, чтобы при новом запуске программы этот номер по умолчанию ставился 1.
Здравствуйте. При редактировании произношения, если в Балаболке подключены словари *.ini и *.dic (или много дик словарей) в окне редактора словаря всегда выводится только верхний по списку (т. е. *.ini). В большинстве случаев это не нужно, так как обычно приходится редактировать словарь *.dic. Предлагаю добавить в диалоговом окне "Коррекция произношения" - закладки, по числу подключенных словарей, или хотя бы типов словарей... Собственно, что то подобное уже реализовано Вами в диалоге "Статистика замен" (вызывается Ctrl+Alt+J). На закладке для *.ini словаря можно было бы добавить кнопки специальных символов, а в всплывающей подсказке к ним - правила их использования (я пишу о символах типа *,+,\s и т.п.) Спасибо