|
| |
Автор | Сообщение | Извещения об ошибках |
---|
evilone_ Участник «online словари»
Сообщений : 859
| evilone_ | :: Пн Янв 20 2014, 23:11 | Пн Янв 20 2014, 23:11 | |
| - flegont пишет:
- А какие аргументы "за"?
ну так чтобы чего-то очень не хватало то нет, наверно только поддержка других языков которые не поддерживает ASCII - но оно и не так часто надо... словари - наше все это главное |
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Янв 21 2014, 01:59 | Вт Янв 21 2014, 01:59 | |
| - evilone_ пишет:
- наверно лучше всего просто добавить поддержку \xXX для ASCII и \uХХХХ для Unicode в замене
В последней версии "Балаболки" добавлена такая возможность (так как это несложно реализовать - простой заменой этих символов в строке непосредственно перед выполнение TRegExpr.Replace).
Что касается смены регистра, то это будет довольно непросто воплотить в жизнь. Надо разбираться в исходниках модуля Андрея Сорокина, пока такого желания нет.
Кстати, этот модуль позволяет использовать в регулярных выражениях формат \x{nnnn} для символов в формате Юникод (Синтаксис регулярных выражений). |
|
| | | Лёва V.I.P.
Сообщений : 134
Репутация : 173
| Лёва | :: Вт Янв 21 2014, 11:45 | Вт Янв 21 2014, 11:45 | |
| Скажите, существует-ли какой-то устаканившейся стандарт для регулярных выражений в рамках этого сайта, или пока всё в процессе? Я сейчас делаю программку и как раз пишу кусок с регулярными выражениями, поэтому этот вопрос чрезвычайно интересен для меня. Я ориентировался на balabolk`у, т.е. тексты обработанные регулярными выражениями в Балаболке и в моей программке идентичны. Выходит этого не достаточно. Тогда это может являться стандартом? |
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Янв 21 2014, 12:14 | Вт Янв 21 2014, 12:14 | |
| Лёва По факту, да, это сейчас является своего рода стандартом, так как и "Демагог", и "Балаболка" используют один и тот же компонент.
Эти программы создаются при помощи достаточно старых версий Delphi, где не было собственной поддержки регулярных выражений. В новых версиях Delphi используется вот эта библиотека: http://www.pcre.org http://ru.wikipedia.org/wiki/PCRE "PCRE (Perl Compatible Regular Expressions) — библиотека, реализующая работу регулярных выражений в стиле Perl." (Wiki)
Документация по синтаксису регулярных выражений в PCRE: http://pcre.org/pcre.txt (на английском) http://ru2.php.net/manual/ru/reference.pcre.pattern.syntax.php
Не исключено, что в будущем программные продукты перейдут на поддержку этой библиотеки (у меня пока таких планов нет). |
|
| | | Лёва V.I.P.
Сообщений : 134
Репутация : 173
| Лёва | :: Вт Янв 21 2014, 12:59 | Вт Янв 21 2014, 12:59 | |
| Благодарю! balabolka пишет: - Цитата :
- Эти программы создаются при помощи достаточно старых версий Delphi, где не было собственной поддержки регулярных выражений.
Честно говоря, я делаю программы в среде, где компилятор Delphi 4 и используется библиотека KOL, конечно можно подключить и компилятор Delphi 7, но тогда некоторые компоненты дают ошибку. (надо переходить на нормальный Delphi 7) Поэтому я синтаксис регулярных выражений описывал "вручную", без библиотек. balabolka пишет: - Цитата :
- В новых версиях Delphi используется вот эта библиотека:
http://www.pcre.org http://ru.wikipedia.org/wiki/PCRE Я там увидел только "C". Или это портируется через OBJ, или еще как-то?
|
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вт Янв 21 2014, 13:57 | Вт Янв 21 2014, 13:57 | |
| Я согласен с balabolka что код А.Сорокина лучше не трогать. Работает правильно, проверен временем и ладно. Он использунтся и в "Балаболке" и в Demagog'e, что обеспечивает совместимость rex-словарей в обеих программах.
Кроме того. После некоторого анализа, у меня создалось впечатление, что добавление операции смены регистра в вычисленном регулярном выражении, приведет к заметному замедлению работы. Поэтому я решил не включать в Demagog ничего подобного.
Что касается простой подстановки символов вместо стандартных кодов \xnn, то в следующей версии Demagog'a - это уже есть, я пока версию не выкладываю, решил немного с ней поиграться, потестировать
|
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| balabolka | :: Вт Янв 21 2014, 14:42 | Вт Янв 21 2014, 14:42 | |
| - Лёва пишет:
- Поэтому я синтаксис регулярных выражений описывал "вручную", без библиотек.
Зачем?! Существует множество готовых реализаций поддержки регулярных выражений, для самых разных языков. Они могут отличаться какими-то мелкими нюансами, могут иметь какие-то свои дополнительные опции, но, в целом, все они работают одинаково и поддерживают основные элементы синтаксиса регулярных выражений. Использование таких компонентов или библиотек значительно упрощает работу с регулярными выражениями. По сути, она сводится к вызову 3-4 команд и настройке нескольких параметров.
Компонент Андрея Сорокина - один из многих подобных модулей. Возможно, он не идеален, но, действительно, проверен временем и работает превосходно; поэтому не вижу необходимости переходить на что-то другое. Не тестировал его на Delphi 4 (только на Delphi 5), но должен компилироваться нормально.
- Лёва пишет:
- Я там увидел только "C". Или это портируется через OBJ, или еще как-то?
Есть готовые "обёртки" (wrapper) для библиотеки PCRE. Вот, например, одна из них: PCRE Wrapper for Delphi Архив содержит и файл DLL библиотеки PCRE, и модуль на языке Pascal для доступа к функциям данной версии библиотеки.
Еще можно посоветовать обратить внимание на эту реализацию компонента для регулярных выражений: http://www.regular-expressions.info/delphi.html Скачать TPerlRegEx Для него DLL не требуется, вся библиотека PCRE будет включена в состав программы при помощи файлов OBJ.
---
А если нужны реализации поддержки регулярных выражения для других языков, загляните сюда: http://www.regular-expressions.info/tools.html |
|
| | | Лёва V.I.P.
Сообщений : 134
Репутация : 173
| Лёва | :: Вт Янв 21 2014, 16:02 | Вт Янв 21 2014, 16:02 | |
| flegont пишет: - Цитата :
- Я согласен с balabolka что код А.Сорокина лучше не трогать.
- Цитата :
- Поэтому я решил не включать в Demagog ничего подобного.
- Цитата :
- Что касается простой подстановки символов вместо стандартных кодов \xnn, то в следующей версии Demagog'a - это уже есть,
Вот и чудненько, со стандартами есть ясность. balabolka пишет: - Цитата :
- Они могут отличаться какими-то мелкими нюансами, могут иметь какие-то свои дополнительные опции,
В том то и дело, компоненты для написания регулярных выражений, которые есть в среде где я начал писать программу, "не того калибра", поэтому и переделывал компоненты. Теперь я понял, что сморозил большую глупость начав программировать в среде http://www.hiasm.com/ . Благо есть возможность делать вставки кода на Delphi и других языках. Компоненты там то-же написаны на Delphi + сделал декомпиляторы с некоторых языков в basm и вставляю в паскаль-код. balabolka пишет: - Цитата :
- Вот, например, одна из них:
PCRE Wrapper for Delphi Архив содержит и файл DLL библиотеки PCRE, и модуль на языке Pascal для доступа к функциям данной версии библиотеки. Спасибо! Знал бы я про это в новогодние праздники... - Цитата :
- Для него DLL не требуется, вся библиотека PCRE будет включена в состав программы при помощи файлов OBJ.
Я пользуюсь DLLLoader. Почти подобным образом я встраиваю код на прологе в паскалевский код.
Спасибо всем за разъяснения! |
|
| | | apokrif V.I.P.
Сообщений : 304
Репутация : 85
| apokrif | :: Вт Янв 21 2014, 18:30 | Вт Янв 21 2014, 18:30 | |
| - Лёва пишет:
- Delphi
Во, даже и не знал что Delphi и сейчас живее всех живых. Думал, уже никто на нем и не программирует... Посему вопрос - новая версия поддерживает iPhone, iPad & Android. Можно ли ожидать от уважаемой публики новых творений для платформ на мобильной подошве? Или этот гемморой не стоит свеч? |
|
| | | balabolka V.I.P.
Сообщений : 1228
Репутация : 986
| | | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вт Янв 21 2014, 21:18 | Вт Янв 21 2014, 21:18 | |
| - Цитата :
- Во, даже и не знал что Delphi и сейчас живее всех живых. Думал, уже никто на нем и не программирует...
Вот именно, что живее всех живых и помирать в обозримом будущем не собирается Насчет iPhone, iPad & Android... лично я пока не планирую программировать для какой-либо из названных платформ.
- Цитата :
- flegont пишет:
А какие аргументы "за"? ну так чтобы чего-то очень не хватало то нет, наверно только поддержка других языков которые не поддерживает ASCII - но оно и не так часто надо... словари - наше все Smile это главное Можно сказать, что в Demagog'e есть ограниченная поддержка Unicode, а именно, самой распространенной его разновидности: UTF-8. Для того, чтобы Demagog открыл такой файл, надо выполнить: "Файл - Открыть как RTF..." |
|
| | | igogo Интересующийся
Сообщений : 9
Репутация : 0
| igogo | :: Пт Мар 21 2014, 19:46 | Пт Мар 21 2014, 19:46 | |
| Не выходит озвучить тект в МР3. Файлы выходят 0 размера. WAW файл криейтается нормально, размер увеличивается но при конвертации выходит пустой МР3. Пробовал конвертацию в mp4, работает без замечаний. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | igogo Интересующийся
Сообщений : 9
Репутация : 0
| igogo | :: Вт Мар 25 2014, 01:00 | Вт Мар 25 2014, 01:00 | |
| Решил я проблему. Всетаки проблема в Демагоге. Брал отсюда http://aloys.narod.ru/Demagog.zip версия последняя. В дистрибутиве стоит LAME 32bits version 3.97 (http://www.mp3dev.org/) и она не работает. Я скачал отсюда http://www.rarewares.org/mp3-lame-bundle.php 3.99.5 версию http://www.rarewares.org/files/mp3/lame3.99.5.zip Скопировал два файла (exe, dll) в демагог и все заработало. |
|
| | | igogo Интересующийся
Сообщений : 9
Репутация : 0
| igogo | :: Вт Мар 25 2014, 01:53 | Вт Мар 25 2014, 01:53 | |
| От какого же года версия в дистрибутиве, если 3.99 от 2011? Кстати, железо у меня 2007 года сборки Intel и WIN XP SP2 32бита. Что то не совсем лаймится этот Lame. Перекодировка очень медленная и размер в два раза больший нежели в Балаболке выходит. В догонку вопрос. В начале каждого файла идет какое то Н миллонов Н тисяч долларов, хотя в самом файле txt такого текста нет? |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Вт Мар 25 2014, 19:16 | Вт Мар 25 2014, 19:16 | |
| Все-таки проблема в Lame Я давно не менял версию lame в дистрибутиве, похоже, пора... В следующей билде обновлю на более свежую, которой пользуюсь сам
Размер файла MP3 и скорость конвертации зависит от выбранных настроек Lame: высокий битрейд требует больше времени и размер файла будет больше. "Сервис - Общие настройки - Аудио".
Кстати, мне вместо lame недавно порекомендовали fastencc.exe - более шустрый конвертер в MP3. Когда выпущу следующий билд Демагога, то на сайте выложу и этот конвертер. Его можно будет использовать, прописав в "Сервис - Общие настройки - Аудио" как "User Encoder" и поместив в каталог Демагога.
Что касается постороннего "бла-бла" в начале чтения... Это может быть, только если подключен какой-то словарь, вставляющий нечто постороннее в текст.
1. Какие словари подключены? 2. Используется режим SAPI4 или SAPI5?
|
|
| | | igogo Интересующийся
Сообщений : 9
Репутация : 0
| igogo | :: Ср Мар 26 2014, 02:03 | Ср Мар 26 2014, 02:03 | |
| - flegont пишет:
- Что касается постороннего "бла-бла" в начале чтения... Это может быть, только если подключен какой-то словарь, вставляющий нечто постороннее в текст.
1. Какие словари подключены? 2. Используется режим SAPI4 или SAPI5? Используется SAPI5. Голос Николай. Подключены (галочка) !!RU, !English, !Ru Nicolai, DemagogDigaloRules(SAPI5), DemagogRules(SAPI5), Digalo.Michelangelo v35.1. Галка "Игнорировать управляющие теги SAPI5" стоит. "бла-бла" идет не только в начале а каждая . - и т.п. заменяется этим ’бла-бла’, что достает. Пробовал отключить Digalo.Michelangelo v35.1, не помогает. Относительно МР3. Балаболка с такими же настройками конвертирует в 2-3 раза быстрее и файл в 1.5 раза меньше. В характеристиках файла те же параметры. Кстати, есть ли возможность менять громкость записаного голоса гдето в настройках? |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| flegont | :: Ср Мар 26 2014, 10:38 | Ср Мар 26 2014, 10:38 | |
| Спасибо за информацию.
Значит так. Словари: DemagogDigaloRules(SAPI5).dic и DemagogRules(SAPI5).dic используются для вставки в текст управляющих тегов, чтобы выделять громкостью и скоростью чтения прямую речь персонажей. Т.н. "стильная речь", см. Справку. Вставка тегов правильно работает только для хорошо отформатированного текста, оформленного по всем правилам пунктуации.
1. Оба этих словаря нельзя подключать одновременно. DemagogDigaloRules(SAPI5).dic - вставляет в текст теги управления чтением, имеющиеся у самогО движка Николай. Они работают только для голоса Николай, другие голоса их не воспримут, а просто прочтут вслух DemagogRules(SAPI5).dic - использует теги управления чтением, имеющиеся в SAPI5 - они годятся для любого голосового движка, способного работать под SAPI5
Если подключены оба словарика, то получается настоящая каша из вставленных разнородных управляющих тегов...
2. В Справке к Демагогу отмечен ужасный недостаток тегов SAPI5. Они все, согласно правилам SAPI5 выделяются угловыми скобками (знаками "меньше" "больше"), вот так: <...> НО... знаки < > это знаки постановки ударения для движка Николай! И каждое слово, в которое словарь, например Michelangelo.dic вставил знак ударения < или > будет воспринято, как ошибочный тег SAPI5 Попробуйте-ка запустить чтение Николаем под SAPI5 в Балаболке любого текста с подключенным словарем Michelangelo.dic
3. Именно для этого предусмотрен флажок в Настройках: "Игнорировать теги SAPI5" см. Справку. Тогда словари *.dic для Николая будут нормально работать под SAPI5, так же как они работали под SAPI4. В Вашем случае, теги SAPI5 для управления "стильной речью" вставлены в текст, но не воспринимаются движком как команды, и читаются вслух как часть текста.
Вывод. 1. Поскольку Вы используете движок Николай, то словари, выполняющие любую вставку тегов SAPI5 в текст - категорически противопоказаны. Отключите DemagogRules(SAPI5).dic 2. Если текст хорошо отформатирован, то можете оставить DemagogDigaloRules(SAPI5).dic Лично я в нем закомментировал все правила, кроме $~E~=\pause{300ms} $~S~=\pause{150ms} Т.е. Николай будет делать выразительные паузы на пустых строках и кратных знаках препинания (... ?.. ?? !!! и т.п) Мне этого достаточно. А выделять громкостью и скоростью прямую речь - на практике оказалось проблематично. Если в тексте хоть один раз будет пропущено тире перед началом прямой речи, то вся "стильность и красивость" пойдет насмарку... Конечно, если мы делаем аудио-книгу и текст предварительно тщательно вычитан и поправлен, то - другое дело
Т.о. Вам достаточно следующих словарей:
!!RU.orfo - чтобы иметь возможность проверять орфографию русского текста !English.orfo - ...орфографию английского текста (словарь не обязателен, т.к. Николай всё равно НЕ читает по английски) !Ru Nicolai.hmg - для обнаружения омографов в тексте DemagogDigaloRules(SAPI5).dic - оставить только 2 упомянутых правила для пауз! Digalo.Michelangelo v35.1.dic - популярный словарь для Николая
Еще одно замечание. После установки Николая в каталоге ELAN образуются 2 файла: exc_rus.txt abb_rus.txt Их необходимо либо удалить, либо переименовать! См. Справку Это "родные" словари движка Николай, и они подключены всегда, если только не сделать так, как сказано выше. Иначе, в сочетании с подключенным Michelandgelo.dic образуется такая каша из словарных замен, что ни в сказке сказать, ни пером описать. Кроме того, хакеры, делавшие сборку последней версии Николая, набили эти словари таким мусором... что см.выше.
И последнее. Прогресс неумолим. Более современные, чем Николай, движки, например, Алена, Ольга, Дмитрий... не нуждаются в словарике "стильной речи" DemagogRules(SAPI5).dic и ни в каком другом вновь изобретенном велосипеде. Они самостоятельно анализируют пунктуацию в тексте и читают с соответствующей интонацией. |
|
| | | flegont V.I.P.
Сообщений : 355
Репутация : 476
| | | | | Извещения об ошибках |
---|
| |