Я безумен

2010-08-1

Samba и симлинки

Filed under: Linux — thekillerfox @ 2:00 пп

Проблема и решение

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

Необходимо добавить в [global] секцию файла smb.conf (для убунты он лежит в /etc/samba/smb.conf) три строки:

  follow symlinks = yes
  wide links = yes
  unix extensions = no

После этого перезапускаем samba /etc/init.d/samba restart и вуаля симлинки теперь отображаются и доступны.

Источник

Обсуждение на форуме Ubuntu

2009-07-9

Синтез русской речи в Linux

Filed under: Linux — thekillerfox @ 10:48 дп

Кросспост моей статьи с хабра
Прочитал статью про SAPI и Powershell (Учим PowerShell разговаривать), и мне стало интересно как же с синтезом русскоязычной речи в родной для меня операционке, Linux’e. Как выяснилось все далеко не так радужно, да и качество синтеза далеко до голоса Алены, но все же.

Для синтеза речи в linux’e по традиции используется Festival последняя стабильная версия 1.95, но в поставке нет русского голоса, немного порыскав я набрел на проект по синтезу русской речи посредством Festival, где написано что для работы с русским языком понадобится как минимум версия 1.96 бета. Ну ничего в Ubuntu 9.04 как раз такая и стоит. Дальше есть два варианта, либо собрать пакет самостоятельно, либо для пользователей Debian’a или Ubuntu поставить отдельный пакет, весит данное чудо ~190 метров, не хило так я бы сказал. Так как у меня Ubuntu решил поставить пакет.
Пакет называется Festvox-ru, и будет доступен в ubuntu начиная с версии 9.10, так как на руках 9.04, то скачиваем пакет и устанавливаем его в ручную. И тут вскрылась маленькая проблема.
При попытке попросить festival произнести что то по русски он просто молчал, если же указывался язык
echo "Проверка" | festival --tts --language russian, то вываливался c ошибкой:
«Unsupported language, using English»
SIOD ERROR: unbound variable: voice_rab_diphone
festival: fatal error exiting.

Дамс, попробуем сделать так как в мануале, запускаем festival в интерактивном режиме, указываем голос принудительно (voice_msu_ru_nsh_clunits) и просим сказать что нибудь (SayText “Проверка”), вуаля все нормально работает, оформляем это в виде bash script’a и получаем

#!/bin/sh
festival -b "(begin (voice_msu_ru_nsh_clunits) (SayText \"$1\" nil))"

Теперь сохраняем это в файл sayit.sh, назначаем права на запуск chmod a+x sayit.sh и проверяем
./sayit.sh «Проверка»
Ура! все работает.
Если хотим прочить файл используем:

#!/bin/sh
festival -b "(begin (voice_msu_ru_nsh_clunits) (tts_file \"$1\" nil))"

Но все же почему же у нас не заработал русский язык по умолчанию, копаем дальше.
Немного гугления и мы находим багрепорт к debian’овцам от Сергея Кирпичева, вот этот багрепорт. Похоже нам нужно подправить файл languages.scm/
Так что идем в каталог /usr/share/festival где находим этот файл и вносим изменения.
Дописываем вначале:

(define (language_russian)
"(language_russian)
Set up language parameters for Russian."
(set! male1 voice_msu_ru_nsh_clunits)
(male1)
(Parameter.set 'Language 'russian)
)

и в define(select_language language). добавляем пару строчек

((equal? language 'russian)
(language_russian))

Все теперь русский язык поддерживается.
Пробуем прочитать файл.
festival —language russian -tts festival.txt
Ну что же все даже не так уж и плохо, единтвенное «но» это то что Festival достаточно заметно думает перед тем как начать произносить, и иногда ему не нравиться текст, например вместо того чтобы пропускать то что он не может произнести он вываливается с сообщением о
LTS_Ruleset russian_downcase: no rule matches:
LTS_Ruleset: # *here* <a #
Ну что же значит надо поубивать из текст ссылки.
Пока что результат меня не особо радует, в принципе синтез русской речи под Linux с одной стороны возможен, с другой качество этого синтеза оставляет желать лучшего. А у меня появилось два новых шелл скрипта. sayit.sh и readit.sh ^_^
Примеры озвучивания можно посмотреть в статье Учим iPod Shuffle G3 говорить по-русски

Используемые источники:

Искусство программирования на языке сценариев командной оболочки
Русский в Festival
Новая база для синтеза речи, и голос для festival
Debian Bug report logs — #516262 festival: Please add support for —language russian
P.S. по совету rengel_system лучше вместо установки пакета ручками подключить этот репозиторий
P.P.S по совету eugenex15 решил попробовать espeak. устанавливается очень просто, русский язык сразу из коробки, для сохранения образца голоса можно всего лишь добавить один параметр, но вот качество мне показалось просто ужасным. Наверно можно под строить произношение чтобы получить более менее цивильный результат, но у меня не получилось.
P.P.P.S выложил два примера синтезируемой фразы при дефолтных параметрах в espeak и в festival
espeak
festival
(если кто может предложить другое место куда будет удобней положить wav’ки с удовольствием воспользуюсь)
UPD: Ответ от хабраюзера vk2 голос Алены

2008-11-1

Размер директорий в меню mc

Filed under: Linux — thekillerfox @ 8:27 дп
Tags: , , ,

После перехода на Linux мне очень не хватало возможности тотала быстро посчитать размер папки. Krusader меня не устраивал, а в mc такой возможности не было либо я плохо искал. Поэтому я решил добавить в меню MC вызываемое по F2 функцию подсчета размера директории.
В ubuntu и debian настройки меню храняться в /etc/mc/mc.menu
Открываем этот файл и дописываем

= t d
s       Calculate directory size
Pwd=`basename "%f" /`
du -hs "$Pwd"

Теперь вместо того чтобы вводить du -hs и имя каталога можно просто нажать F2, а затем s.
Но есть минус решения чтобы посмотреть результат надо нажимать Ctrl+o, пока не придумал как это обойти.

Вот нашел ссылку на небольшое описание как делать меню для mc
Встроенные меню Midnight Commander

Создайте бесплатный сайт или блог на WordPress.com.