Страница 1 из 4
Festival как альтернатива Alice
Добавлено: Пн янв 07, 2013 3:18 pm
Anton_kulibin
Все привет.
Может кому то и пригодиться, полдня убил на привязку Festival
говорит он конечно не как виндовая элис, но инета ему по крайней мере ненадо.
1. Делаем все ка в этой статье. Конечно меня пути под себя
http://ru.festivalspeaker.wikia.com/wik ... 0%B8%D1%8F
2. Вносим изменения в файл common.class.php следующим образом
Код: Выделить всё
if ($google_file) {
@touch($google_file);
playSound($google_file, 1, $level);
} else {
// safe_exec('cscript '.DOC_ROOT.'/rc/sapi.js '.$ph, 1, $level);
safe_exec(''.DOC_ROOT.'/scripts/festival/saytext_ru.sh "'.win2utf($ph).'"'); // для festival
}
}
При выполнеии первого пункта не забываем давать права на выполнение скрипта и на чтение запись во все папки.
Я так бился почти час, пока не сменил владельца папки ./festival/data
Re: Festival как альтернатива Alice
Добавлено: Пн янв 07, 2013 4:33 pm
arturmon
нужная вещь )
Re: Festival как альтернатива Alice
Добавлено: Вт янв 08, 2013 1:22 pm
sergejey
О, клёво, нужно внести в общий репозиторий.
Re: Festival как альтернатива Alice
Добавлено: Вт янв 08, 2013 5:14 pm
Anton_kulibin
У меня вылезла проблема, нашел синтезатор по типу Festival, RHVoice называется, дак никак не могу с ним с воевать, почему то не работает
safe_exec(DOC_ROOT.'/scripts/festival/saytext.sh "'.$ph.'"', 1, $level);
когда пишу
system(DOC_ROOT.'/scripts/festival/saytext.sh "'.$ph.'"');
то нормально скрипт отрабатывает и говорит то что надо, но опять не срабатывает dindon, или срабатывает, но познее
Re: Festival как альтернатива Alice
Добавлено: Вт янв 08, 2013 7:46 pm
sergejey
safe_exec от system отличается только тем, что команда в первом случае ставится в очередь и отрабатывается отдельным циклом. поэтому, если с циклами проблема, то оно может и не работать.
safe_exec было вообще сделано больше для windows, т.к. у меня там наблюдался странный баг -- если делаю несколько exec или system от имени веб-сервера, то он (веб-сервер) перестаёт отвечать на запросы вовсе.
Re: Festival как альтернатива Alice
Добавлено: Ср янв 09, 2013 8:45 am
Anton_kulibin
мда, в том то и дело , вот например стоит у меня будильник на 6:45
ну ка положено
Код: Выделить всё
if (isWeekDay()) {
if (timeIs('06:45')) {
say("Доброе утро");
say("Температура на улице".(gg('sensorulica.temp'))." градусов");
}
}
отрабатывает первый say("Доброе утро");, второй нет, и уже потом через минуту пролетает dindon, так и получается если запускать без очереди, то последовательность say просто в моем случае работать не будет. System команду обрабатывает но не может вывести все сразу.
Помучаюсь еще, самое интересное что с фестивалем Safe_exec работала, думаю что весь гемор с доступом в linux
Re: Festival как альтернатива Alice
Добавлено: Чт янв 10, 2013 12:27 pm
Anton_kulibin
Может кто нибудь подсказать, с помощью safe_exec передать например в файл RHVoice.php переменную $ph
код RHVoice.php в него необходимо
Код: Выделить всё
<?
$str =;
$str =utf8_encode($str);
echo $str;
exec ('echo '.$str.' | RHVoice -v 3 > /media/data/public_html/scripts/festival/Voice.wav');
?>
из common.class.php передать переменную $ph. Уже весь мозг сломал, но мне необходимо сделать через safe_exec, в противном случае процедура выполняется без очереди
Код: Выделить всё
if ($google_file) {
@touch($google_file);
playSound($google_file, 1, $level);
} else {
// safe_exec('cscript '.DOC_ROOT.'/rc/sapi.js '.$ph, 1, $level);
// safe_exec(DOC_ROOT.'/scripts/festival/saytext.sh "'.$ph.'"', 1, $level);
// Safe_exec(DOC_ROOT.'/scripts/festival/saytext.sh "'.$ph.'"');
//safe_exec(DOC_ROOT.'/scripts/RHVoice.php '.$ph);
// exec ('echo "'.$ph.'" | RHVoice | play -q -');
safe_exec(''.DOC_ROOT.'/scripts/festival/saytext_ru.sh "'.win2utf($ph).'"');
}
}
Re: Festival как альтернатива Alice
Добавлено: Пт янв 11, 2013 4:26 pm
Anton_kulibin
Ну вот немножко обобщу поискав и почитав форумы нашел 2 синтезатора речи для Linux.
1. Festival (Festvox-ru если ставить из репозитория, голосовых файлов примерно 190Мб)
2. RHVoice в репозитории нет пришлось собирать самому офф. сайт
http://ru.nvda-community.org/?page_id=10. deb пакет -
http://yadi.sk/d/nJNfu-Be1nXDY, голос Елены -
http://yadi.sk/d/EDmsXDoM1nTDr
Как работать с фестивалем писал выше не повторяюсь.
Для RHVoice создал php скрипт такого содержания
Код: Выделить всё
#!/usr/bin/php
<?php
for ($i=2;$i!=$argc;$i++) {$str.=" $argv[$i]";}
exec ('echo'.$str.' | RHVoice -v 2| play -q -');
//exec ('echo '.$str.' | RHVoice -v 3 > /media/data/public_html/scripts/festival/Voice.wav');
//exec ('aplay /media/data/public_html/scripts/festival/Voice.wav > /dev/null 2>&1');
?>
закоментированные строки это вариант с создание отдельного файла, но при каждой фразе он переписывает. Мне больше нравиться первый вариант.
В файле common.class.php изменил строчку
Код: Выделить всё
if ($google_file) {
@touch($google_file);
playSound($google_file, 1, $level);
} else {
// safe_exec('cscript '.DOC_ROOT.'/rc/sapi.js '.$ph, 1, $level); //вариант для windows
safe_exec('sudo php '.DOC_ROOT.'/scripts/RHVoice.php -- '.win2utf($ph), 1, $level); //RHVoice
//safe_exec(''.DOC_ROOT.'/scripts/festival/saytext_ru.sh "'.win2utf($ph).'"'); //festival
}
}
В результате сравнения я остановился на RHVoice, он более приближеный к реалиям, есть какие то правила произношения.
Выбирать вам.
Re: Festival как альтернатива Alice
Добавлено: Пт янв 11, 2013 4:29 pm
sergejey
Антон, а можно где-то сэмплы русские послушать? Может сможешь закинуть сюда пару файликов?
Re: Festival как альтернатива Alice
Добавлено: Пт янв 11, 2013 4:41 pm
Anton_kulibin
Сейчас смоделируюю
Сделал для обоих синтезаторов.
1. Festival -
http://yadi.sk/d/i52n5YEw1mzVv
2.RHVoice -
http://yadi.sk/d/8eaIhDqn1mzW5