Пожалуйста, укажите причину жалобы на комментарий пользователя и ваши контактные данные, по которым мы могли бы связаться с Вами для уточнения информации или уведомления о предпринятых действиях со стороны администрации сайта!
Отмена Отправить
X

E-mail:

Пароль:

| Забыли пароль?


Синтез речи в Ubuntu: несколько примеров

Синтез речи в Ubuntu: несколько примеров

В прошлой статье на эту тему я рассказал о том, как установить, настроить и заставить говорить на русском языке пакет festival. Теперь, по просьбе одного из читателей хочу привести несколько примеров: каким же образом это можно использовать на практике?

Внимание: Подразумевается, что вами прочитана статья "Говорящая Ubuntu", все настроено как описано в ней и работает!

Скрипт приветствия (по всем нормам этикета)

Итак, открываем терминал, выполняем:

sudo gedit /usr/bin/salut

Вставляем в появившемся редакторе такой скрипт:

#!/bin/bash
var4=`date +%H`
var4=${var4#0}
var_priv=""
if [[ "$var4" -ge 0 && "$var4" -le 5 ]]; then
var_priv="Доброй ночи"
elif [[ "$var4" -ge 6 && "$var4" -le 11 ]]; then
var_priv="Доброе утро"
elif [[ "$var4" -ge 12 && "$var4" -le 17 ]]; then
var_priv="Добрый день"
elif [[ "$var4" -ge 18 && "$var4" -le 23 ]]; then
var_priv="Добрый вечер"
fi
echo "$var_priv"
exit 0

Сохраняем, закрываем редактор. Выставляем нужные права доступа к получившемуся файлу:

sudo chmod 755 /usr/bin/salut

И пробуем:

salut

Эту команду можно добавить в автозапуск компьютера (Система - Параметры - Запускаемые приложения). Здорово, правда? Теперь и приличных людей в гости пригласить не стыдно =).

Чтение свежих новостей

Для начала поставим пакет curl:

sudo apt-get install curl

Создадим новый скрипт:

sudo gedit /usr/bin/read_news

Вот такого содержания : Текст скрипта удален со страницы. Скачайте скрипт по ссылке: http://startubuntu.ru/files/read_news.txt

Сохраняем, закрываем редактор. Выставляем нужные права доступа к получившемуся файлу:

sudo chmod 755 /usr/bin/read_news

Пробуем:

read_news

Скрипт читает новости с RSS-ленты Яндекса. Я постарался максимально адаптировать его для форматирования новостей таким образом, чтобы festival смог его прочитать, однако от совершенства он далека. Если процесс чтения новостей прерывается, можете попробовать запустить команду read_news в терминале и посмотреть на каком слове или символе происходит сбой и внести дополнения в скрипт. Свои дополнения оставляйте в комментариях - может быть все вместе доведем его до стабильного состояния =).

О проблемах пишите в комментариях – буду дополнять и исправлять.

Автор:

Раскажи всем:

Комментарии (34)

Аватар Ivan17.03.2010 в 17:08#170
Выдает:
[email protected]:~$ ./read_news
sed: -e вираз #4, літера 0: no previous regular expression
Аватар Brullworfel18.03.2010 в 23:50#175
Мда уж.. код на странице постоянно искажается. Сейчас сделаю скрипт в файле, чтобы можно было скачать.
Аватар Brullworfel19.03.2010 в 00:13#177
Кстати, будьте внимательны - файл в UTF8!! Если вы в этом не бум бум, то желательно скачивать и открывать только в Linux =).
Аватар Алексей30.03.2010 в 14:46#266
Первый скрипт у меня не заработал. Пришлось везде – на -- и « на " менять. После нормально.
Аватар соник18.05.2010 в 18:47#761
Первый скрипт не работает, пишет SIOD ERROR: could not open file –tts
Аватар iLi0ni11.06.2010 в 10:38#916
Решил подправить...может быть кому то поможет=)
Во первых, посмотрите вот эту статью:
http://startubuntu.ru/?p=148
и обратите внимание на то, в каких кавычках произносимые слова + написание команд
--tts --language
Во вторых, в той же статье автор добавляет (цитата):
Если копировании с сайта получается ошибка, попробуйте перепечатать ручками.

Попробую вставить правленый скрипт:
#!/bin/bash

dat=`date +%H`
morning=12
afternoon=15
evening=24

if [ $dat -le $morning ]
then
echo "Доброе утро" |festival --tts --language russian

elif [ $dat -gt $morning ] && [ $dat -le $afternoon ]
then
echo "Добрый день"|festival --tts --language russian

elif [ $dat -gt $afternoon ] && [ $dat -le $evening ]
then
echo "Добрый вечер"|festival --tts --language russian
fi
Аватар iLi0ni11.06.2010 в 10:50#917
Всё таки не зря я словесно попытался обратить внимание на написание кавычек ^_^
Аватар Ич16.06.2010 в 21:32#948
Люди, выложите пожалуйста скрипт файлом для первого и второго случаев. Для первого он мне выдает ошибки:
/usr/bin/salut: строка 6: [: -le: ожидается использование унарного оператора
/usr/bin/salut: строка 10: [: -gt: ожидается использование унарного оператора
/usr/bin/salut: строка 14: [: -gt: ожидается использование унарного оператора
А второй вообще не скачивается!
Аватар PJ24.06.2010 в 18:40#1037
Скачайте скрипт по ссылке: http://startubuntu.ru/files/read_news.txt

а по ссылке:
Ошибка 404: Страница не найдена

Если не сложно, дайте рабочую ссылочку. Уж очень хочу попробовать. Заранее благодарю.
Аватар Brullworfel26.06.2010 в 16:28#1042 ответ на #1037
Прошу прощения, наверное файл потерялся при переезде на новый сервер. Постараюсь найти и перезалить в ближайшее время.
Аватар Brullworfel26.06.2010 в 16:46#1045
Если кто успел скачать файл http://startubuntu.ru/files/read_news.txt - просьба прислать на brullworfel_собака_gmail.com

Очень неприятная ситуация получилось =)
Аватар Ич04.07.2010 в 21:50#1079
Ну блин, ребят, это такая статья важная, еще один понт чтобы друзья убедились в крутости убунты, а я не могу никак это сделать без этого скрипта :(
Аватар Денис27.07.2010 в 00:32#1149
Люди!!! Дайте пожалуйста, нормальный скрипт для приветствия,ну ни как не могу заставит его работать... :( мыло: [email protected]
Аватар Дэн06.08.2010 в 07:59#1168
Всё просто.
Исправьте в редакторе окончания строк команд:

| festival --tts --language russian

Разница - в написании дефисов.
Аватар Дэн06.08.2010 в 08:02#1169
Чёрт, правка съедает... Короче, просто замените одинарный дефис на двойной. Как здесь:
echo "Раз, раз, раз" | festival --tts --language russian
Аватар Ич11.08.2010 в 13:07#1182
Я вот поменял эти дефисы- догадался, все ровно блин не работает! Если вдруг кому не сложно киньте на [email protected]
Аватар vpupkinn17.08.2010 в 22:17#1205
WARNING
No default voice found in ("/usr/share/festival/voices/")
either no voices unpacked or voice-path is wrong
Scheme interpreter will work, but there is no voice to speak with.
WARNING

LTS_Ruleset russian_downcase: no rule matches:
LTS_Ruleset: # *here* « Д о б р ы й #
Аватар Стас19.09.2010 в 02:10#1311
вот код:
#!/bin/bash


dat=`date +%H`
morning=12
afternoon=15
evening=24

if [ $dat -le $morning ]
then
echo "Доброе утро" |festival --tts --language russian

elif [ $dat -gt $morning ] && [ $dat -le $afternoon ]
then
echo "Добрый день"|festival --tts --language russian

elif [ $dat -gt $afternoon ] && [ $dat -le $evening ]
then
echo "Добрый вечер"|festival --tts --language russian
fi
Аватар Стас19.09.2010 в 02:13#1312
Обратите внимание на кавычки! Должны быть такие - "
Аватар Стас19.09.2010 в 02:15#1313
В результате получаем:
вот код:
#!/bin/bash
dat=`date +%H`
morning=12
afternoon=15
evening=24
if [ $dat -le $morning ]
then
echo "Доброе утро" |festival –tts –language russian
elif [ $dat -gt $morning ] && [ $dat -le $afternoon ]
then
echo "Добрый день"|festival –tts –language russian
elif [ $dat -gt $afternoon ] && [ $dat -le $evening ]
then
echo "Добрый вечер"|festival –tts –language russian
fi
Аватар Анбист21.09.2010 в 13:02#1316
Перезалейте скрипт плиииз....
Аватар Дмитрий23.09.2010 в 17:17#1321
вот код:
#!/bin/bash
dat=`date +%H`
morning=12
afternoon=15
evening=24
if [ $dat -le $morning ]
then
echo "Доброе утро" |festival --tts --language russian
elif [ $dat -gt $morning ] && [ $dat -le $afternoon ]
then
echo "Добрый день"|festival --tts --language russian
elif [ $dat -gt $afternoon ] && [ $dat -le $evening ]
then
echo "Добрый вечер"|festival --tts --language russian
fi

У меня все заработало в таком варианте
НЕ кавычки а двойной штрих
Не дефис а двойной дефис
Аватар RezO25.09.2010 в 04:10#1326
Ребята,вот я сделал так,вроде всё работает,впрочем попробуйте сами ==>>
#!/bin/bash

dat=`date +%H`
morning=12
afternoon=15
evening=24

if [ $dat -le $morning ]
then
echo "Доброе утро" |festival --tts --language russian

elif [ $dat -gt $morning ] && [ $dat -le $afternoon ]
then
echo "Доброе утро" |festival --tts --language russian

elif [ $dat -gt $afternoon ] && [ $dat -le $evening ]
then
echo "Доброе утро" |festival --tts --language russian
fi
Аватар dronekir21.12.2010 в 00:35#1645
приветствие, это конечно круто!, но научите как заставить ентот фестиваль игнорировать то чё он не понимает, а не выдавать ошибки... То же чтение новостей: ну не понимаешь кавычки или многоточие - пропусти, читай дальше. А то полнейший стоп и весь смысл в чтении вслух теряется - ищешь где она эта ошибка, времени еще больше теряешь как если бы просто прочитал.
Аватар Vasko Da Gama08.01.2011 в 22:57#1697
Блин извиняюс конечно, но можите писать все действия по порядку, не все же знают что писать в терминале!!!
Аватар buldachok27.04.2011 в 06:29#1996
тут все здорово описано, у меня все получилось, а дело было в написании двойного тире и верхней двойной кавычке. тут просьба такая тот скрипт для чтения rss news получить бы... Кому не сложно пришлите
Аватар Станислав07.05.2011 в 12:48#2100
Извеняюсь, а скрипт по новостям кто-нибудь перезальёт
Аватар Станислав07.05.2011 в 12:58#2101
Извеняюсь, немогли бв Вы сбросить мне на мыло скриптик по новостям?
Аватар Алексей22.05.2011 в 13:18#2193
А куда дели скрипт по новостям? Даешь новости в народ!!!
Аватар николай11.06.2011 в 12:28#2299
как его удалить
Аватар Alex23.06.2011 в 00:12#2342
Скинте, кто успел скачать read_news.txt на ящик [email protected]
Аватар FreeS15.07.2011 в 12:49#2426
Мне кажется ru_tts куда лучше читает чем festival.
Аватар Sanich14.03.2012 в 19:33#3136
А у меня не пошло, почему-то при попытке запуска выпала ошибка - строка 17: festival: команда не найдена. Кто подскажет. что и где я сделал не так? ответы - на мыло, пожалуйста - [email protected] Да, и большое спасибо автору за пост!!!!
Аватар buldachok12.04.2012 в 14:32#3249
самый лучший ответ: Дмитрий:
23.09.2010 в 17:17
вот код:
#!/bin/bash
dat=`date +%H`
morning=12
afternoon=15
evening=24
if [ $dat -le $morning ]
then
echo «Доброе утро» |festival —tts —language russian
elif [ $dat -gt $morning ] && [ $dat -le $afternoon ]
then
echo «Добрый день»|festival —tts —language russian
elif [ $dat -gt $afternoon ] && [ $dat -le $evening ]
then
echo «Добрый вечер»|festival —tts —language russian
fi
У меня все заработало в таком варианте
НЕ кавычки а двойной штрих
Не дефис а двойной дефис
Оставить комментарий


В рубрике "Другие HOW-TO":

Может ли Ubuntu это?

Может ли Ubuntu это?Англоязычный ресурс "OMG! Ubuntu" приводит ответ на 4 часто-задаваемых Google вопроса, начинающихся с "Can Ubuntu" ("Может ли Ubuntu..."). В связи с языковыми особенностями, проанализировать эту же тему в рунете немного сложнее, но в целом, вопросы и ответы на них актуальны для любого региона, поэто...

Программная точка доступа в Ubuntu (обновлено)

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

Установка Ubuntu рядом с Windows

Установка Ubuntu рядом с Windows Самый большой, важный и, как многие думают - сложный шаг в начале работы с Ubuntu - это ее установка. Однако я утверждаю, что это вовсе не так, и установка Ubuntu ни чуть не сложнее Windows! Но так как файловая система Ubuntu, как и любой другой Linux-системы, в корне отличается от Windows, зачасту...

Установка программ в Ubuntu - способы

Установка программ в Ubuntu - способыВ Ubuntu Linux существует множество способов установки программ. Здесь можно и воспользоваться встроенным в систему магазином приложений, и пакетным менеджером, и устанавливать программы из репозиториев при помощи команд в терминале, а также скачивать пакеты программ из интернета, после чего устанав...

Чиним звук в Skype в Ubuntu 13.10

Чиним звук в Skype в Ubuntu 13.10Пользователи Ubuntu 13.10 жалуются на искаженный звук в Skype, если он был установлен не из репозиториев Ubuntu, а скачан с официального сайта программы. Некоторые пользователии говорят об отсутствии звука вовсе. Проблема заключается в том, что Ubuntu 13.10 поставляется с PulseAudio 4.0 на борту, ко...

Исправляем смену раскладки клавиатуры в Ubuntu 13.10

Исправляем смену раскладки клавиатуры в Ubuntu 13.10Одна из новинок Ubuntu 13.10 - это новая система переключения раскладок клавиатуры. Однако новинка эта оказалась весьма непродуманной и для конечного пользователя обратилась кучей проблем. Во-первых, индикатор раскладки отображается в области системных уведомлений даже если у вас всего одна раскладк...

Как удалить онлайн-поиск ِAmazon и другие поисковые плагины Unity в Ubuntu 13.10

Как удалить онлайн-поиск ِAmazon и другие поисковые плагины Unity в Ubuntu 13.10В Ubuntu 13.04, если вы хотите избавиться от результатов поиска в онлайн-магазинах в главном меню Unity, нужно просто удалить линзы для магазинов ("Shopping lens"). В Ubuntu 13.10 Saucy Salamander этого сделать нельзя, однако есть другой способ избавиться от ненужных линз Unity - просто отключить их...

TypeCatcher - простая установка шрифтов из Google Fonts в Ubuntu

TypeCatcher - простая установка шрифтов из Google Fonts в UbuntuПосле продолжительного молчания, возвращаемся к публикации интересного и/или важного из мира Ubuntu, ну а тем более что не за горами очередной релиз нашей любимой операционной системы - Ubuntu 13.10, а вместе с ней и совершенно знаковое событие, я бы даже сказал - переломный момент: первый стабильны...
Δ Наверх