Страница 1 из 2
Acapela (Elan) SpeechCube 5.1
Добавлено: 20 июн 2018 09:34
Fenix
Русский голосовой движок Николай
Версия: Мультимедиа 5.1
Разработчик: Acapela Elan
Платформа: Windows
Новая версия известного голосового движка Nikolaj от Digalo. Русский модуль голосового движка версии 5.1 от Acapela, это новый синтезатор речи TTS из серии "digalo". Голос тот же, «Николая» - Speech Cube Russian(Nicolai 16khz).
Качественно само произношение практически не изменилось, но излечился от некоторых старых болезней: теперь не сбоит на глючных словах и длинных паузах, позволяет записывать речь с ускорением, намного шире диапазон настраиваемых параметров речи.
Значительно расширен и частотный диапазон нового "
Николая": от голоса человека, перенесшего трахеотомию, до кастрированного в раннем детстве старика.
Возможность подключения других словарей.
Acapela (Elan) SpeechCube 5.1 (Николай)
Для открытия файла(ов) нужен пароль
Словари (Николай)
Отличие в восприятии в читаемом тексте символа
"<".
Мультимедийная версия воспринимает его как начало любого из управляющих SAPI-5 XML тэгов, вследствие чего следующая за этим символом часть текста проглатывается.
Телекомовская версия воспринимает его как ударение.
Соответственно, в программах-чтецах, использующих предварительную обработку текста своими собственными словарями лучше использовать Телекомовскую версию.
Мультимедийная версия подойдёт в случае, если программа-чтец не использует своих собственных словарей, и при чтении/записи используются только родные встроенные словари голосового движка (
exc_rus.txt, abb_rus.txt).
Acapela (Elan) SpeechCube 5.1
Добавлено: 26 апр 2019 16:22
vizaritm
Может кто выложить народный словарь с
www.mp3book2005.narod.ru для движка Николай, сайт увы умер. Там был exc_rus.txt для замены где то на 5к Кб, на рутрекере есть что то подобное прилепленное к балаболке, но это что то из старого. Этот файл как нибудь бы надо сохранить, что бы не терялся, на сайте наверное?
Еще надо бы в шапку добавить реферную ссылку на эту тему желательно
viewtopic.php?f=23&t=92, а то как то не очевидно, специально искать не найдешь. Тут словари на движок Николай, причем потестил, достаточно нормальные.
Acapela (Elan) SpeechCube 5.1
Добавлено: 27 апр 2019 12:46
MoppoH
127.000 выражений в нем, файл от 2013 года
Acapela (Elan) SpeechCube 5.1
Добавлено: 14 май 2019 02:06
EXEg
Вот какой то словарь у меня завалялся (exc_rus.txt 5,16 МБ) возможно тот самый "народный" не проверял.
Acapela (Elan) SpeechCube 5.1
Добавлено: 28 июн 2019 20:47
regacaty
Вот мой словарик, который не помню где взял, но от предыдущих отличается.
Acapela (Elan) SpeechCube 5.1
Добавлено: 05 мар 2020 23:00
balabolka
Возможно, стоит добавить в "шапку" темы ссылку на исправленный вариант библиотеки
MTSYC32.DLL. После установки голоса этот файл надо скопировать с заменой в папку C:\Program Files (x86)\Elan\
Acapela (Elan) SpeechCube 5.1
Добавлено: 06 мар 2020 07:06
GIS88
balabolka писал(а): ↑05 мар 2020 23:00
Возможно, стоит добавить в "шапку" темы ссылку на исправленный вариант библиотеки MTSYC32.DLL. После установки голоса этот файл надо скопировать с заменой в папку C:\Program Files (x86)\Elan\
А что за ошибку он исправляет?
Acapela (Elan) SpeechCube 5.1
Добавлено: 06 мар 2020 07:25
balabolka
GIS88 писал(а): ↑06 мар 2020 07:06
А что за ошибку он исправляет?
Насколько помню, голос перестает произносить
"пространство", когда в тексте встречается неразрывный пробел. Возможно, что-то еще было исправлено.
Это не мой файл; скачал его с какого-то сайта.
Acapela (Elan) SpeechCube 5.1
Добавлено: 06 мар 2020 20:40
levm
Возник вопрос при прослушивании переводов англоязычных книг. Как исправить словарь для чтения принятых обозначений времени в таких книгах? Примеры: чтобы "7:48" звучало как "семь часов и сорок восемь минут"; "19:05" - как "девятнадцать часов и пять минут".
Acapela (Elan) SpeechCube 5.1
Добавлено: 06 мар 2020 23:43
tonio_k
levm, попробуйте такой вариант замены для
*.rex словаря
Код: Выделить всё
(\d):(\d\d):(\d\d)=$1 часов и $2 минут и $3 секунд
(\d):(\d\d)=$1 часов и $2 минут
Acapela (Elan) SpeechCube 5.1
Добавлено: 07 мар 2020 13:16
levm
Спасибо, tonio_k!
Попробовал, и звучание "часов" и "минут" не появилось
.
Acapela (Elan) SpeechCube 5.1
Добавлено: 07 мар 2020 13:46
tonio_k
levm писал(а): ↑07 мар 2020 13:16
и звучание "часов" и "минут" не появилось
У меня замена работает.
Пробовал прослушать и Максимом и Николаем - озвучивают.
У вас вообще замена текста происходит? Может какой-то словарь у вас, например, скрыто меняет ":" на пробел? Тогда да, замена не сработает. Что у вас "там" со словарями к сожалению не видно
Выложите в архив свою сборку со словарями - посмотрим что там не так.
*вообще выше приведенный мной пример правил замен не совершенный. Надо его расписывать что бы правильно подбиралось:
3 час
а
13 час
ов
1 час
с минутами так же
Acapela (Elan) SpeechCube 5.1
Добавлено: 07 мар 2020 14:16
tonio_k
Можно через последующие корректирующие правила сделать:
Код: Выделить всё
(\D)(3|4|03|04|23|24) часов\b=$1$2 часа
(\D)(1|01) часов\b=$1$2 час
(\D)(3|4|03|04|23|24|33|34|43|44|53|54) минут\b=$1$2 минуты
(\D)(1|01|21|31|41|51) минут\b=$1$2 минута
тоже не идеально. Пример:
ЧЕРЕЗ 3 часа 21 минута
с 1 час до 3 часа
значит для таких случаев надо как-то прописывать/править в словарях..
Acapela (Elan) SpeechCube 5.1
Добавлено: 07 мар 2020 21:48
levm
Словари, в составе которых файл REX, скачал с
http://golosknigi.com/page3.html . К ним добавил словарь, полученный от друга с этого форума. Прилагаю его, а также файл REX с добавкой.
Пояснение. Речь идет не об отрезках времени ("через" или "от... до"), а об одномоментном времени - как на электронных часах с мигающим двоеточием. Типа "19:45".
К файлу REX добавил Ваши строки:
tonio_k писал(а): ↑07 мар 2020 14:16
(\D)(3|4|03|04|23|24) часов\b=$1$2 часа
(\D)(1|01) часов\b=$1$2 час
(\D)(3|4|03|04|23|24|33|34|43|44|53|54) минут\b=$1$2 минуты
(\D)(1|01|21|31|41|51) минут\b=$1$2 минута
Acapela (Elan) SpeechCube 5.1
Добавлено: 07 мар 2020 22:22
levm
Могу добавить, что двоеточие не введено у меня в настройках программы по списку игнорирования символов и замены на пробел.
Acapela (Elan) SpeechCube 5.1
Добавлено: 07 мар 2020 22:34
tonio_k
levm писал(а): ↑07 мар 2020 22:22
настройках программы
ещё уточняющий вопрос, какой программы? Балаболка/Демагог или ещё какая? Словари, архив которых выложили, все в папку со словарями программы разархивировали? Сделайте скриншот как у вас словари расположены в программе?
И вот ещё момент, сразу попробуйте мои правила разместить в самом первом словаре *.rex, или попробуйте создать свой пустой rex словарь, что бы он был первым по алфавиту и в него поместите правила.
К сожалению на этой неделе посмотреть ваши словарь скорее всего не смогу. Может кто другой раньше ответит?
Acapela (Elan) SpeechCube 5.1
Добавлено: 08 мар 2020 13:37
levm
tonio_k писал(а): ↑07 мар 2020 22:34
ещё уточняющий вопрос, какой программы? Балаболка/Демагог или ещё какая? Словари, архив которых выложили, все в папку со словарями программы разархивировали? Сделайте скриншот как у вас словари расположены в программе?
И вот ещё момент, сразу попробуйте мои правила разместить в самом первом словаре *.rex, или попробуйте создать свой пустой rex словарь, что бы он был первым по алфавиту и в него поместите правила.
Балаболка 2.15.0.711.
Скриншот приложен с примером предложения с обозначением времени в тексте.
Словарь *.rex имеется только один, и он на первом месте.
Словарь, содержащий только Ваши правила и находящийся первым по алфавиту, не изменил звучания.
Различие в действии этих словарей (если их включать отдельно) только в том, что с прежним словарем пауза между звучаниями
ЧИСЕЛ часов и минут была более длинной. Сами слова "...часов и ...минут" не звучали.
Спешного ответа не жду.
Acapela (Elan) SpeechCube 5.1
Добавлено: 08 мар 2020 23:15
tonio_k
Посмотрел я ваш словарь. Вы не поняли мою последовательность мысли.
Вам надо
сначала ввести правило из моего сообщения
#10, а затем корректирующее его правила из моего сообщения
#13 что бы у вас получилось :
► Показать
Код: Выделить всё
(\d):(\d\d):(\d\d)=$1 часов и $2 минут и $3 секунд
(\d):(\d\d)=$1 часов и $2 минут
(\D)(3|4|03|04|23|24) часов\b=$1$2 часа
(\D)(1|01) часов\b=$1$2 час
(\D)(3|4|03|04|23|24|33|34|43|44|53|54) минут\b=$1$2 минуты
(\D)(1|01|21|31|41|51) минут\b=$1$2 минута
И еще замечание, автор сайта, на который вы ссылались, настоятельно рекомендует не использовать другие словари кроме его. С чем я абсолютно согласен! Не стоит не понимая принципа построения словарей конкретной сборки вставлять другие словари из других сборок. Такое вмешательство может привести к непредвиденным результатам. Так что словарь
Digalo Russian Nicolai.dic удалите (либо галочку отключите).
Acapela (Elan) SpeechCube 5.1
Добавлено: 09 мар 2020 17:01
levm
tonio_k, Вы - настоящий мастер! Действительно, я неправильно понял. Ваши правила сразу же заработали. Даже независимо от удаления/отключения словаря Digalo Russian Nicolai (сравнил оба варианта)!
Единственное отклонение от точного чтения - дополнительно звучит неизвестно откуда появившаяся буква А.
Т. е. слышится так:
7:48 семь часов и сорок восемьА минут
19:05 девятнадцать часов и пятьА минут
19:45 девятнадцать часов и сорок пятьА минут
Но в принципе получилось почти идеально
Acapela (Elan) SpeechCube 5.1
Добавлено: 09 мар 2020 21:25
Manariel 64
Acapela (Elan) SpeechCube 5.1
Добавлено: 09 мар 2020 21:52
levm
Manariel 64 писал(а): ↑09 мар 2020 21:25
Числа.rar
А может такой поможет?
Спасибо, Manariel 64! Попробовал, выключив правила tonio_k. Файл Числа.rex, к сожалению, не поддержал идею добавления слов "часов" и "минут" к звучанию чисел времени.
Хотел бы дать Вам совет: когда архивируете, очень желательно добавлять в архив информацию для восстановления. Тогда никогда не будет трудностей разархивировать его.
Acapela (Elan) SpeechCube 5.1
Добавлено: 09 мар 2020 22:33
tonio_k
levm писал(а): ↑09 мар 2020 17:01
7:48 семь часов и сорок восемьА минут
Попробуйте в словаре
Sapi4_Elan_Nicolai_0.rex найти правило:
Код: Выделить всё
\b(\d{1,4}) \b(минута|минуты|минут|мин\.|мин)\b=$1 ъаъ $2
и поставьте перед ним знак решетки #
- это деактивирует выбранное правило без его удаления.
Acapela (Elan) SpeechCube 5.1
Добавлено: 09 мар 2020 23:51
tonio_k
а если в правиле:
Код: Выделить всё
\b(\d{0,3})(0|5|6|7|8|9) часов\b=$1$2, ъъчасо<въъ
удалить запятую, то исчезнет ненужная пауза между "7" и "часов"
Acapela (Elan) SpeechCube 5.1
Добавлено: 10 мар 2020 09:56
levm
tonio_k писал(а): ↑09 мар 2020 22:33
и поставьте перед ним знак решетки #
tonio_k писал(а): ↑09 мар 2020 23:51
удалить запятую
tonio_k, одно только можно сказать: Вы умеете достичь совершенства. Буква А исчезла
!
Acapela (Elan) SpeechCube 5.1
Добавлено: 10 мар 2020 10:05
Manariel 64
levm,
Странно, у меня говорит. Впрочем я сильно не заморачиваюсь. Мне достаточно и без "часов-минут". Просто пятнадцать:сорок пять, например. Кстати попробовал правило tonio_k, тоже получается.
Acapela (Elan) SpeechCube 5.1
Добавлено: 10 мар 2020 18:25
levm
Manariel 64 писал(а): ↑10 мар 2020 10:05
Странно, у меня говорит.
Manariel 64, это о букве А? У меня было так:
ВСЕ правила tonio_k добавил так, как он предложил:
tonio_k писал(а): ↑08 мар 2020 13:37
попробуйте создать свой пустой rex словарь, что бы он был первым по алфавиту и в него поместите правила
а потом - поправки в файле
tonio_k писал(а): ↑09 мар 2020 22:33
Попробуйте в словаре Sapi4_Elan_Nicolai_0.rex найти правило:
\b(\d{1,4}) \b(минута|минуты|минут|мин\.|мин)\b=$1 ъаъ $2
и поставьте перед ним знак решетки #
tonio_k писал(а): ↑09 мар 2020 23:51
а если в правиле:
\b(\d{0,3})(0|5|6|7|8|9) часов\b=$1$2, ъъчасо<въъ
удалить запятую, то исчезнет ненужная пауза между "7" и "часов"
Так сработало.
Acapela (Elan) SpeechCube 5.1
Добавлено: 14 мар 2020 12:55
levm
Непонятно, можно ли в Балаболке УМЕНЬШИТЬ паузу между словами. На форуме предлагается вставлять выражение типа {{Pause=2000}} в текст (тогда я добавил {{Pause=10}}), но оно только ДОБАВЛЯЕТ указанное время паузы к обычной (после остановки), т. е. пауза увеличивается. Обратил на это внимание, когда сочетание двух слов само по себе звучит с нормальной паузой между ними, но, находясь в середине предложения, неожиданно удлиняет эту паузу.
Acapela (Elan) SpeechCube 5.1
Добавлено: 14 мар 2020 16:26
balabolka
levm
Я сам не проверял, но есть теория, что если написать:
то можно переместиться во времени на 2 секунды в прошлое.
Если серьезно, то эта запись просто вставляет тег "Silence" для голосов SAPI 5:
Уменьшить паузу между словами таким способом нельзя.
Почему появляется пауза внутри предложения - не знаю. Если речь об онлайн-сервисах, то, возможно, программа разделила слишком длинное предложение на две части и каждую часть текста послала как отдельный запрос к серверу (на месте "стыка" появится пауза). Если речь о голосе "Николай", то у меня нет предположений.
Acapela (Elan) SpeechCube 5.1
Добавлено: 27 мар 2020 10:57
levm
В книгах с ссылками на исторические события характерны множественные римские числа веков или периодов веков. Словари не справляются с ударениями их правильного озвучивания, поэтому очень хороша была бы команда полуавтоматической обработки для таких чисел по аналогии с удачной "Заменить числа словами..." .
Acapela (Elan) SpeechCube 5.1
Добавлено: 27 мар 2020 11:18
tonio_k
levm писал(а): ↑27 мар 2020 10:57
Словари не справляются с ударениями их правильного озвучивания,
а можно несколько примеров?
Acapela (Elan) SpeechCube 5.1
Добавлено: 28 мар 2020 12:16
levm
Нашел решение: выделил сочетания таких чисел со словами в отдельный словарь и сместил его в начало списка словарей. Тогда начало срабатывать.
Acapela (Elan) SpeechCube 5.1
Добавлено: 28 мар 2020 13:26
balabolka
levm писал(а): ↑27 мар 2020 10:57
В книгах с ссылками на исторические события характерны множественные римские числа веков или периодов веков.
Добавлю "галочку" для поиска римских чисел в окно поиска и замены чисел в "Балаболке". Давно собирался это сделать, руки не доходили; спасибо за идею.
Но также согласен, что подобные случаи можно вынести в отдельный словарь, так будет эффективней. Диапазон римских чисел, который используется в книгах, - это обычно от 1 до 50, так что вполне можно перечислить в словаре все сочетания чисел с "веками", "тысячелетиями", именами монархов и т.д. Один раз подготовить такой словарь или взять готовый, и проблема будет решена.
Acapela (Elan) SpeechCube 5.1
Добавлено: 31 мар 2020 19:45
levm
Интересно, можно ли как-то вставлять КОРОТКИЕ паузы в концах стихотворных строк, если там, в концах, нет знаков препинания? Николай почти всегда не оставляет НИКАКИХ пауз в таких случаях. Например:
Зачем считать меня? Я был, и есть, и буду.
Жизнь — чудо из чудес, и на ладони чуду
Один, как сирота, я сам себя кладу,
Один среди зеркал в ограде отражений
Морей и городов, лучащихся в чаду.
Acapela (Elan) SpeechCube 5.1
Добавлено: 31 мар 2020 20:00
tonio_k
levm писал(а): ↑31 мар 2020 19:45
можно ли как-то вставлять КОРОТКИЕ паузы в концах стихотворных строк, если там, в концах, нет знаков препинания?
Acapela (Elan) SpeechCube 5.1
Добавлено: 31 мар 2020 20:27
levm
Вот это скоростная реакция профессионала! Спасибо, всё отлично, tonio_k
Acapela (Elan) SpeechCube 5.1
Добавлено: 31 мар 2020 20:45
tonio_k
более усложнённое правило:
Код: Выделить всё
@([а-яё]+)\b( *)([\r\n]{1,2})( *[А-ЯЁ])=$1,$3$4
должно сработать
только на стихах или на что-то очень на них похожее, а именно: - если строка заканчивается на любую маленькую букву (допускается пробел на конце), а следующая строка "не пустая" и начинается с Большой буквы (допустимы пробелы перед большой буквой), то вставить запятую.
Я бы вообще такую последовательность рекомендовал:
Код: Выделить всё
@([а-яё]+)\b( *)([\r\n]{1,2})( *[А-ЯЁ])=$1,$3$4
(\w+)(\s*)$=$1...$2
первое правило будет искать стихи,
а второе будет искать что то вроде:
Пролог
Глава 1
1
2
и вставлять многоточие на конце каждой строки получая на выходе:
Пролог...
Глава 1...
1...
2..
тем самым заставляя Николая выделять "удлиненными паузами" нумерацию глав
Acapela (Elan) SpeechCube 5.1
Добавлено: 31 мар 2020 21:10
levm
1.
tonio_k писал(а): ↑31 мар 2020 20:45
такую последовательность
Красиво.
2.
tonio_k писал(а): ↑31 мар 2020 20:45
вставлять многоточие на конце каждой строки
Будет удобно сначала вставлять многоточия, а потом заменять числа порядковыми числительными
.
Acapela (Elan) SpeechCube 5.1
Добавлено: 31 мар 2020 21:30
levm
Можно и точки вставлять вместо многоточия - звучит достаточно хорошо.
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 18:56
levm
tonio_k, появился новый вопрос, когда у Вас найдется время
.
Как удлинить паузу (уже не в стихах, а в любом прозаическом тексте) для 2 знаков препинания
: и
; Николай их отмечает при звучании сильно укороченными паузами, хотя по смыслу требуется хорошо выраженные паузы
.
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 19:15
tonio_k
Как удлинить паузу
попробуйте замените их на точки.
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 19:22
levm
Через словарь DIC строками типа :=. и ;=. ?
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 19:24
tonio_k
Если в словаре dic, то вот так:
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 19:33
levm
Попробовал, не удлинение пауз не ощутил. Может, как-то через REX будет лучше?
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 19:42
tonio_k
Попробуйте сначала вручную заменить на точки в самом тексте и Просмотрите, есть ли разница?
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 19:45
levm
Да, разница - существенная.
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 19:52
tonio_k
В словаре rex можно попробовать такую замену:
Acapela (Elan) SpeechCube 5.1
Добавлено: 04 апр 2020 20:08
levm
Да, так лучше. По крайней мере особенно заметно по отношению к
";" и меньше для
":". Интересный случай: я для эксперимента поменял местами символы, т. е. получилось вместо
tonio_k писал(а): ↑04 апр 2020 19:52
[:;]+=.
[;:]+=. , и тогда сработало ВСЁ ОДИНАКОВО. Большое спасибо, tonio_k.
Acapela (Elan) SpeechCube 5.1
Добавлено: 10 апр 2020 12:12
levm
Интересно, какие трудности стоят перед программистами, составляющими словари ударений. Профанам непонятно, почему не удается автоматизировать их составление по текстам художественных произведений. Каждый такой текст, наверное, легко разделить на отдельные слова, а потом? Ведь одна часть словарей, более понятная, составляется по множеству слов с добавляемым единственным вариантом ударения. Другая - по сочетаниям омографов с примыкающими к ним спереди или сзади словами. Невозможен алгоритм поиска сочетаний с омографами?
Acapela (Elan) SpeechCube 5.1
Добавлено: 10 апр 2020 13:41
tonio_k
levm писал(а): ↑10 апр 2020 12:12
какие трудности стоят перед программистами,
не программистами, а перед составителями словарей. Им может стать любой, а вот программистом далеко не каждый
почему не удается автоматизировать их составление по текстам художественных произведений.
этим как раз пытаются заниматься нейросети. Обычному пользователю остаётся заносить правила в словарях по старинке
levm писал(а): ↑10 апр 2020 12:12
Невозможен алгоритм поиска сочетаний с омографами?
в Балаболке и Демагоге есть полуавтоматический ручной поиск омографов. В контексте сразу видно, какие слова находятся вокруг найденого омографа. Остаётся только подставить правильный. Количество слов, отображаемых вокруг найденого омографа можно настраивать. Или другой вариант: подсвечивать омографы и по ходу пролистывания текста и исправлять на нужный.
Acapela (Elan) SpeechCube 5.1
Добавлено: 19 апр 2020 20:39
levm
tonio_k писал(а): ↑10 апр 2020 13:41
пытаются заниматься нейросети
Вот на них-то и остается надежда, потому что
tonio_k писал(а): ↑10 апр 2020 13:41
остаётся заносить правила в словарях по старинке
само занесение слов вручную упомянутыми вариантами лишает удовольствия от прослушивания желаемой книги. Любой предварительный поиск требует чтения предложений с омонимами, а поскольку последние встречаются очень часто, в процессе приходится читать многие предложения. Так мы узнаем много ПОДРОБНОСТЕЙ сюжета, поэтому при прослушивании уже не ощущается новизна восприятия. Многое уже хорошо известно, и интерес теряется.