Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: [HOWTO] Учим компьютер говорить по-русски / Festival скрипты  (Прочитано 78776 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ratte

  • Активист
  • *
  • Сообщений: 461
  • http://selisiltra.ho.ua/
    • Просмотр профиля
    • мягкая депрессия
замолчал фестиваль на ядре 2.6.37, но замолчал частично. например если в терминале выполнить aplay /home/ratte/Transform.wav;echo "привет"|festival --tts, то он говорит, а если это прописать в /etc/acpi/lid.sh, то проигрывает .wav, но не говорит festival. так же перестал работать скрипт

на 33 ядре работало.

Пользователь решил продолжить мысль 22 Июля 2011, 17:50:40:
и если этот lid.sh пускать в терминале, то он работает нормально
« Последнее редактирование: 22 Июля 2011, 17:50:40 от ratte »

Оффлайн ratte

  • Активист
  • *
  • Сообщений: 461
  • http://selisiltra.ho.ua/
    • Просмотр профиля
    • мягкая депрессия
что-то с переходом на 11.04 скрипт
/usr/bin/boltalka.sh
#!/bin/bash

export PATH=/bin:/sbin:/usr/bin:/usr/sbin

FESTIVAL="festival --tts"

DEVICE=$1
UDEVINFO="udevadm info"

[ -z "$DEVICE" ] && exit
[ -z "$ACTION" ] && exit

function get_device_attr ()
{
path=`find /sys/devices -name $1`
echo `$UDEVINFO --attribute-walk   --path=$path | grep $2 -m1 | cut -f 2 -d '"'`
}

function get_device_name ()
{
device=$1

case $device in
[0-9]-[0-9])
s=`get_device_attr $device "product"`
[ -z "$s" ] && echo "device" || echo "$s"
;;
sr0)
echo "optical drive"
;;
[sh])
s=`get_device_attr $device "KERNEL"`
echo "$s drive"
;;
*)
exit
;;
esac

}
function say ()
{
echo "$1 $2" | $FESTIVAL
exit
}

name=`get_device_name $DEVICE`

if [ -n "$name" ]; then
case "$ACTION" in
add)
say "юэсби устройство" "примонтировоно"
;;
remove)
say "юэсби устройство" "размонтировоно"
;;
change)
say "си ди ром" "в работе"
;;
esac
fi
перестал работать. кто-нибудь пользуется?

Оффлайн Saltty

  • Активист
  • *
  • Сообщений: 362
  • Соль (Ubuntu 14.04)
    • Просмотр профиля
    • Мой сайт
Попробуйте добавить ключ -x для включения режима отладки, проще понять в чём проблема...
#!/bin/bash -x

Оффлайн Geidrow

  • Любитель
  • *
  • Сообщений: 79
    • Просмотр профиля
Привет всем!

Имеется такая ошибка. Как иправить?
(Нажмите, чтобы показать/скрыть)



Оффлайн ratte

  • Активист
  • *
  • Сообщений: 461
  • http://selisiltra.ho.ua/
    • Просмотр профиля
    • мягкая депрессия
Попробуйте добавить ключ -x для включения режима отладки, проще понять в чём проблема...
#!/bin/bash -x
а куда он информацию будет сыпать?

Оффлайн хрюндель

  • Новичок
  • *
  • Сообщений: 3
  • жду ответа
    • Просмотр профиля
Спасибо конечно, но не лучше бы всё это дело на RHVoice завязывать. Просто обалденный синтезатор русского.

Оффлайн ratte

  • Активист
  • *
  • Сообщений: 461
  • http://selisiltra.ho.ua/
    • Просмотр профиля
    • мягкая депрессия
Спасибо конечно, но не лучше бы всё это дело на RHVoice завязывать. Просто обалденный синтезатор русского.
я как раз этим занялся, через какое-то время выложу хауту.

Пользователь решил продолжить мысль 07 Августа 2011, 23:37:25:
Спасибо конечно, но не лучше бы всё это дело на RHVoice завязывать. Просто обалденный синтезатор русского.
я как раз этим занялся, через какое-то время выложу хауту.
а разница действительн чувствуется

rhvoice

festival
« Последнее редактирование: 07 Августа 2011, 23:37:25 от ratte »

Оффлайн Saltty

  • Активист
  • *
  • Сообщений: 362
  • Соль (Ubuntu 14.04)
    • Просмотр профиля
    • Мой сайт
Попробуйте добавить ключ -x для включения режима отладки, проще понять в чём проблема...
#!/bin/bash -x
а куда он информацию будет сыпать?
в консоль...

Оффлайн ratte

  • Активист
  • *
  • Сообщений: 461
  • http://selisiltra.ho.ua/
    • Просмотр профиля
    • мягкая депрессия
проблема крылась в рулесах.
почитал ещё в закромах интернета и решил пока вот такими правилами

ACTION=="add" KERNEL=="sd[b-d][0-9]" RUN+="/usr/bin/boltalka.sh %k"
ACTION=="remove" KERNEL=="sd[b-d][0-9]" RUN+="/usr/bin/boltalka.sh %k"

Оффлайн -=gr!n=-

  • Автор темы
  • Любитель
  • *
  • Сообщений: 54
    • Просмотр профиля
Выяснил, что писать в скрипте "export DISPLAY=:0" не совсем правильно, особенно если компом пользуются несколько человек, и каждый имеет свою учетку. Сделал так:
user=`whoami`
displaynum=$(who | awk "/$user/ { print \$6; exit }" | sed 's/[()]//g') #именно "/$user/ { print \$6; exit }", а не "/$user/ { print \$5; exit }"
export DISPLAY="$displaynum"
Вроде проблемы исчезли

PS Ждем обещаный хауту по RHVoice
« Последнее редактирование: 04 Марта 2012, 12:46:04 от -grin- »

Оффлайн derketzer

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
хм, очень интересная тема... Когда то давно, классе в 10м, когда у меня была Windows... нечто подобное я сделал с помощью VBScript. Озвучивала Майкросовтовская Анна вроде или как то так.)))
« Последнее редактирование: 24 Сентября 2011, 23:35:26 от derketzer »

Оффлайн saymon21root

  • Участник
  • *
  • Сообщений: 166
    • Просмотр профиля
    • https://saymon21-root.pro
хех, а мне вот стало интересно, а возможно ли сделать звонилку с сервера в случае чего на мобилу?)) Изврат правда)

Оффлайн Gapy

  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
а как сделать что бы принтер "говорил"?
Печать начата, печать завершена, добавть бумагу в принтер.

Оффлайн Saltty

  • Активист
  • *
  • Сообщений: 362
  • Соль (Ubuntu 14.04)
    • Просмотр профиля
    • Мой сайт
В скрипте будильник обнаружил проблемы при текущей температуре ноль градусов. Проблема вызвана отсутствием знака температуры. Кто поможет доработать строку
CURR_DEGREE="`echo $CURR_TEMP | sed -r 's/.([0-9]+)/\1/g'`"
в случае с нулём градусов на сайте gismeteo
« Последнее редактирование: 23 Ноября 2011, 13:56:57 от Saltty »

Оффлайн kh-al

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
В скрипте будильник обнаружил проблемы при текущей температуре ноль градусов. Проблема вызвана отсутствием знака температуры. Кто поможет доработать строку
CURR_DEGREE="`echo $CURR_TEMP | sed -r 's/.([0-9]+)/\1/g'`"
в случае с нулём градусов на сайте gismeteo
Присоединяюсь к просьбе о помощи. Команда:
wget -t 1 -q -O - http://www.gismeteo.ru/city/daily/ВАШ_ГОРОД/ | grep -m 1 '<div class="temp">' находит строку <div class="temp">0&deg;C</div>.
Команда sed -r 's/<div class="temp">(.[0-9]+).*/\1/g' обрабатывает ее корректно всегда, за исключением единственного случая, когда температура 0.
Помогите найти лаконичное решение для параметров sed.

Пользователь решил продолжить мысль 11 Декабря 2011, 19:15:09:
Если температура 0, то после обработки командой sed текущей температуры ($CURR_TEMP | sed -r 's/.([0-9]+)/\1/g') на выходе значение "<div".
Это все и портит при озвучивании температуры и при озвучивании знака температуры (у кого это есть, т.к. завязано от текущей температуры).
Костыль сделал, чтобы работало до нахождения более простого решения...
После строки получения текущей температуры с сайта gismeteo
CURR_TEMP=wget -t 1 -q -O - http://www.gismeteo.ru/city/daily/ВАШ_ГОРОД/ | grep -m 1 '<div class="temp">' | sed -r 's/<div class="temp">(.[0-9]+).*/\1/g' | awk '{print $1}' (ну, или после той строки, где у вас присваивается значение переменной CURR_TEMP, т.к. некоторые предварительно сливают данные во временный файл, а потом извлекают командой cat)
добавил строку:
if [ "`echo $CURR_TEMP | sed 's/[a-z<]//g'`" = "" ]; then CURR_TEMP="0"; fi
(т.е. перед сравнением, командой sed убрал это <div до пустого значения, и присвоил значение "0" переменной CURR_TEMP)
При + сколько-то или - сколько-то | sed 's/[a-z<]//g' не затрагивает цифры-знаки, и все далее работает корректно.
В месте озвучивания знака градуса происходило то же самое.
CURR_DEGREE="`echo $CURR_TEMP | sed -r 's/.([0-9]+)/\1/g'`" (на выходе ранее оставалось <div). А т.к. CURR_TEMP="0", то команда | sed -r 's/.([0-9]+)/\1/g` в данном случае убирает только знак + или -, оставляя цифры. И остается тот же нужный "0" для корректной работы.
Проверил.
« Последнее редактирование: 11 Декабря 2011, 19:15:09 от kh-al »

 

Страница сгенерирована за 0.027 секунд. Запросов: 21.