Синтезируем речь в Убунту

Можно заставить ноутбук разговаривать при открытии и закрытии крышки, это поднимет настроение вам и повеселит ваших друзей.

Выглядеть это будет примерно так: видео на youtube.

Причем речь мы будем синтезировать, то есть, вы пишите текст, а ноутбук будет это произносить. Естественно, таким образом вы сможете настроить, что именно будет произносить ваш ноутбук, когда вы закрываете крышку.

Приступим:

ноль. Для начала установим программу, которая синтезирует речь, то есть преобразует введённый текст в голос. Программа эта называется festival.

Примечание: В Ubuntu 8.04.1 уже установлена программа espeak для синтеза речи, но её качество произношения оставляет желать лучшего. Чтобы послушать как она синтезирует речь, наберите в терминале:
espeak «hello»
Если вас удовлетворяет и такое качество звучания, то можете не устанавливать festival. В этом случае просто замените строки в последующем скрипте:
echo «closed» | festival –tts;
echo «opened» | festival –tts;
на свои:
espeak «closed»;
espeak «opened»;

Программа festival есть в официальном репозитории Ubuntu, для её установки, выполните в терминале следующие команды поочерёдно:
sudo apt-get install festival
sudo apt-get install speech-tools

После того как программа festival установлена, необходимо установить голоса, которыми она сможет говорить. Установим британский английский язык (мужской голос), для этого в терминале набираем:
sudo apt-get install festvox-rablpc16k

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

Теперь можно проверить, работает ли синтез речи, для этого в терминале набираем:
echo «hello» | festival –tts
После этого вы должны услышать голос, который произносит «hello».

Если возникли какие-либо ошибки, то действуйте по обстоятельствам, чтобы их исправить. Например, у меня возникла следующая проблема Linux: can’t open /dev/dsp, для исправления этого нужно набрать в терминале (из домашней директории):
printf «; use ALSA\n(Parameter.set ‘Audio_Method ‘Audio_Command)\n(Parameter.set ‘Audio_Command \»aplay -q -c 1 -t raw -f s16 -r \$SR \$FILE\«)\n» > .festivalrc
(Решение проблемы взято отсюда)

Приступайте к следующему шагу только после того, как у вас получится синтезировать речь.

1. Открываем для редактирования файл /etc/acpi/lid.sh, для этого набираем в терминале:
sudo gedit /etc/acpi/lid.sh

2. Добавляем в этот файл после строки #!/bin/bash следующий текст:
grep -q closed /proc/acpi/button/lid/LID/state
if [ $? = 0 ]
then
echo “closed” | festival –tts;
else
echo “opened” | festival –tts;
fi
Выделенный жирным текст как раз и будет произноситься. Естественно вы вольны вписать туда любой свой текст, например, при закрытии: “What are you doing, idiot?” =).
Сохраните и закройте файл.
Всё готово, теперь ноутбук будет радовать вас своим ангельским пением каждый раз, когда вы открываете или закрываете его крышку.

Примечание для тех, кто хоть чуть чуть разбирается в скриптах: естественно вы вольны запускать любую программу после закрытия/открытия крышки, например в оригинале статьи предлагается проигрывать wav файлы с помощью программы mplayer.

PS: Пост решил опубликовать чтобы разбавить тематику «Юмор на Хабрахабре», а то народ жалуется что Хабр на себя последнее время не похож. Я сам относительно недавно зарегистрировавшийся, надеюсь у меня получилось. Также немного пропиарю свой блог, посвященный в основном тематике Linux Ubuntu. Добро пожаловать!

Источник

free-templates.ru