[Homeros] Обновление синтезатора речи "ru_tts"

Maxim Bilak heavy92 на meta.ua
Сб Дек 19 01:41:59 MSK 2015


Инструкция должна подойти для всех дистрибутивов.
Для начала - вступление: у игоря порецкого, есть сайт:

http://poretsky.homelinux.net/

А так же - ftp-сервер:

ftp://poretsky.homelinux.net/

Все пакеты, нужно скачивать именно оттуда, и все ссылки, которые я буду 
давать ниже, ведут в каталоги на ftp-сервере игоря борисовича. Ссылки 
актуальны на текущий момент, но при обновлении рулекса или синтезатора, 
названия файлов, естественно, могут поменятся, так что надо будет уже 
самостоятельно зайти на сервер, найти нужные файлы, и скачать.
Данную инструкцию, не следует рассматривать как некий алгоритм, 
предназначеный для "тупого" выполнения, а следует воспринимать как 
пример общих принципов того, где искать нужное на сервере игоря 
порецкого, а так же - как установить словарь произношений "rulex", и 
синтезатор "ru_tts". Сейчас этот алгоритм прокатит; Однако в дальнейшем, 
как я уже написал, ссылки могут быть недействительными.

Последовательность установки компонентов не важна (да и синтезатор без 
словаря можно использовать), поэтому начнём с "rulex". Нужно скачать 
исходники по ссылке:

ftp://poretsky.homelinux.net/ubuntu/pool/free/r/rulex/rulex_3.3.5precise1.tar.gz

Если зайти на сервер, о котором я написал выше, то можно найти похожие 
версии файлов, но с упоминанием не "precise", а, скажем, "lucid". Эти 
приставки, указывают на имя, или часть имени версии "ubuntu". В данном 
случае, я дал ссылку на закачку исходников "rulex", для ubuntu 12.04, 
хотя если пакеты одной версии, а разные лишь приставки, то это значит 
лишь то, что в исходниках учтены зависимости для конкретной версии 
"ubuntu". В остальном же, если версии пакетов одинаковые, то ничем 
другим они не отличаются.
Аналогично и с другими файлами.

Скачаный файл, нужно разархивировать, затем перейти в получившийся 
каталог в терминале. После этого, нужно вызвать

make

И внимательно смотреть на процесс сборки. Если чего-то не хватает, 
система об этом сообщит.

Когда все нужные пакеты для сборки установлены, то нужно выполнить команду:

sudo make install

Во многих дистрибутивах зделано так, что если префикс пользователем не 
указан, то собираемые из исходных кодов программы, ставятся  по путям, 
включающим в себя "/usr/local". Если же нужно поставить программу не в 
локалку, то соответственно, надо поменять префикс на "/usr".
На мой взгляд, подобные программы, лучше всё-таки хранить в локалке.
Когда "rulex" установится, его база будет доступна по пути:

/usr/local/share/freespeech/rulex.db

Этот путь, нужно указывать синтезатору, если нужно использовать словарь 
произношений. Ну а если префикс всё-таки "/usr", то естественно, "local" 
можно выбросить из пути.

Далее - собственно "ru_tts". Нужно скачать как деб-пакет самого 
синтезатора "ru_tts", так и деб-пакет библиотеки, без которой "ru_tts" 
не заработает.

Ссылки на пакет с разделяемой библиотекой: если 32-битная архитектура:

ftp://poretsky.homelinux.net/ubuntu/pool/non-free/r/ru-tts/librutts1_3.9.0precise1_i386.deb

Если 64-битная:

ftp://poretsky.homelinux.net/ubuntu/pool/non-free/r/ru-tts/librutts1_3.9.0precise1_amd64.deb

Скачаный деб-пакет, нужно разархивировать. В получившемся каталоге, 
можно обнаружить два архива, нас будет интересовать файл "data.tar.gz". 
Вот этот файл, нужно разархивировать.
После разархивирования, появится каталог "usr". Собственно, в файле 
"data.tar.gz", содержится структура каталогов и файлов в том виде, в 
каком файлы копируются в систему, когда с кажем "ubuntu" или "debian", 
устанавливает пакет.
В каталоге "usr", нас будет интересовать каталог "lib". В нём находится 
два файла:"librutts.so.1" - это символическая ссылка, она нам не нужна, 
а так же файл "librutts.so.1.2.0", который является разделяемой 
библиотекой. Вот этот файл, как раз нам и нужен. Копируем его либо в 
"/usr/lib", либо в "/usr/local/lib".
Некоторые дистрибутивы, по умолчанию, настроены так, что в 
"/usr/local/lib" библиотеки не ищутся. Поэтому, нужно указать системе, 
что бы она их там искала. В разных дистрибутивах, это может делатся 
по-разному.
В дистрибутиве "sonar" (как и скорее всего в "arch-linux" и в 
"manjaro-linux"), нужно создать файл, в каталоге "/etc/ld.so.conf.d", с 
каким-нибудь именем, и с расширением "conf", и вписать туда строку:

/usr/local/lib

После чего, нужно сохранить этот файл. Затем можно выполнить

sudo ldconfig

для того, что бы система обновила свои сведения о существующих в системе 
библиотеках, в том числе и включила в поиск уже упомянутый каталог 
"/usr/local/lib".

Ну и последний, у нас "ru_tts". Ссылка на 32-битный деб-пакет:

ftp://poretsky.homelinux.net/ubuntu/pool/non-free/r/ru-tts/ru-tts_3.9.0precise1_i386.deb

64-битный пакет:

ftp://poretsky.homelinux.net/ubuntu/pool/non-free/r/ru-tts/ru-tts_3.9.0precise1_amd64.deb

Как и в случае с разделяемой библиотекой, нужно разархивировать скачаный 
деб-пакет. В нём найти файл "data.tar.gz", и его тоже нужно 
разархивировать. Так же появится каталог "usr". Внутри, в каталоге 
"bin", есть файл "ru_tts". Его нужно, соответственно, скопировать туда, 
где система ищет бинарники. Тоесть либо в "/usr/local/bin", либо в 
"/usr/bin", либо и вовсе в каталог "bin", находящийся в домашнем 
каталоге. Я рекомендую всё-таки в "/usr/local/bin".
И вот здесь, выплывают некоторые особенности альта. Дело в том, что 
когда я устанавливал "ru_tts" в "homeros", то столкнулся с тем, что в 
альтах, приоритетный каталог не "/usr/local" как во многих 
дистрибутивах, а "/usr". Поэтому, если старый пакет "ru_tts" удалять 
неохота, то лучше во всех программах и командах, где используется 
"ru_tts", указывать путь именно к новому бинарнику "ru_tts".
Тоесть скажем не ru_tts -h, а /usr/local/bin/ru_tts -h.
Впрочем, можно и дистрибутив перенастроить так, что бы локалка была в 
приоритете, но я этим не занимался.

Вот, собственно, и всё. Если обновления кеша библиотек ещё не выполнено, 
то нужно зделать sudo ldconfig, и можно пользоваться синтезатором. Для 
проверки, можно вызвать справку (пример этой команды был приведён выше).
Ну и обязательно, нужно дать как разделяемой библиотеке, так и бинарнику 
"ru_tts", соответствующие права. На этом я подробно останавливатся не 
буду, поскольку в интернете полно статей, где о правах доступа 
рассказывается в разы лучше, чем это мог бы рассказать я.



andrey macsimenco пишет:
> Хорошо, давайте. Попробую.
>
> 18.12.15, Maxim Bilak<heavy92 на meta.ua> написал(а):
>> Насколько я знаю, вы пользуетесь уж очень старыми версиями софта.
>> Поэтому считаю нужным предупредить о следующем:
>>
>> 1. С каких-то пор, изменился формат словая произношений "rulex", т.е. он
>> совершенно нетакой, какой сейчас в репозиториях альта. Иными словами -
>> если вы хотите использовать словарь произношений (а он очень хороший,
>> лучшего я не у одного синтезатора не видел), то вам прийдётся его
>> собрать из исходников, и соответственно разбиратся с теми пакетами для
>> сборки, которые у вас не установлены.
>>
>> 2. Возможно, вам как-то прийдётся перенастроить "voiceman", для более
>> лучшей работы с "ru_tts". Я точно что-то перенастраивал, то ли путь к
>> бинарнику менял, то ли ещё что-то делал.
>>
>> 3. Конкретных рекомендаций по настройке под особенности "homeros" я тоже
>> не смогу дать, а лишь могу рассказать, как установить синтезатор, и,
>> если нужно - рулекс. Связано это с тем, что я сейчас не использую
>> "homeros", а заметок для себя о "ru_tts", просто не делал.
>>
>> Если всё выше изложеное вас не пугает, то я там конкретные инструкции,
>> где что скачать, и куда положить.
>>
>>
>> andrey macsimenco пишет:
>>> 18.12.15, Maxim Bilak<heavy92 на meta.ua> написал(а):
>>>> Приветствую всех.
>>>>
>>>> За последнее время, пару раз обновился синтезатор речи "ru_tts". Игорь
>>>> борисович активно выявляет нестабильности "ru_tts", а так же улучшает
>>>> его произношение.
>>>> За последнее время - исправлены ситуации, когда "ru_tts", произносил
>>>> числа нетак, как нужно. Теперь, синтезатор правильно обрабатывает числа,
>>>> даже без вмешательства какого-либо речевого сервера.
>>>> Так же, исправлена ошибка, когда синтезатор недочитывал некоторые
>>>> предложения до конца (по крайней мере одна такая ситуация исправлена, но
>>>> надеюсь, она единственной и была).
>>>> Все, кто использует этот синтезатор скажем в "homeros", могут обновить
>>>> его, скачав пакет синтезатора под свою архитектуру, а так же пакет
>>>> библиотеки; Распаковать это всё, и положить в нужные директории. Если
>>>> будут нужны подробности, то я опишу, как это зделать.
>>>>
>>> Опишите.
>>> И, заодно, откуда качать эти пакеты.
>>> Буду весьма признателен :)  Пользователи же "ubuntu" 12.04, получат
>>> обновление, или уже получили,
>>>> как обычно.
>>>> Так же, обновился словарь произношений для синтезатора "ru_tts"
>>>> ("rulex").
>>>> _______________________________________________
>>>> Homeros mailing list
>>>> Homeros на lists.altlinux.org
>>>> https://lists.altlinux.org/mailman/listinfo/homeros
>>>>
>>> _______________________________________________
>>> Homeros mailing list
>>> Homeros на lists.altlinux.org
>>> https://lists.altlinux.org/mailman/listinfo/homeros
>>>
>> _______________________________________________
>> Homeros mailing list
>> Homeros на lists.altlinux.org
>> https://lists.altlinux.org/mailman/listinfo/homeros
>>
> _______________________________________________
> Homeros mailing list
> Homeros на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/homeros
>


Подробная информация о списке рассылки Homeros