Страница 1 из 2

как научить алису правильно произносить окончания

Добавлено: Чт янв 10, 2013 9:02 pm
adzam
как научить алису правильно произносить окончания
она каждый раз произносит по разному

19:00 Alice: На улице-7 градуса
13:59 Alice: На улице+1 градусов

Re: как научить алису правельно произносить окончания

Добавлено: Чт фев 14, 2013 11:53 pm
NioFBI
Сделал так:

Код: Выделить всё

$w=round(strip_tags(gg("TempOutside"))); //Переводим погоду в переменную
if($w < "0"){ // Задаем условие - если погода минусовая то:
$w=abs($w); // Выводим в плюс
$minusw="Минус"; // Ежу понятно)))
}
say(' На улице '.$minusw.' '.$w.''); // Результат
В итоге Алиса проговаривает:
Если -15 градусов - "На улице Минус 15"
Если 15 градусов - "На улице 15"

На мой взгляд, самый адекватный вариант произношения.

Re: как научить алису правельно произносить окончания

Добавлено: Пт фев 15, 2013 10:32 am
sergejey
да, отличны вариант. надо принять на вооружение :)
с окончаниями беда конечно, тут надо делать какой-то словарик для цифр.

Re: как научить алису правельно произносить окончания

Добавлено: Пт фев 15, 2013 9:20 pm
NioFBI
Сегодня написал функцию для такого случая, должно работать ;)

Код: Выделить всё

$w=round(strip_tags(gg("TempOutside")));
$tempw=$w;

if($w < "0"){
$tempw=abs($w);
}

if($tempw >= 11 and $tempw <= 14){
$tempcels="градусов";
}
else{

	while ($tempw > 9){
	$tempw=$tempw-10;
	}
	
	if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
	$tempcels=градусов; }
	if($tempw == 1){
	$tempcels=градус; }	
	if($tempw >= 2 and $tempw <= 4){
	$tempcels=градуса; }
}
say(' '.$w.' '.$tempcels.'');

Re: как научить алису правельно произносить окончания

Добавлено: Ср фев 20, 2013 9:52 pm
rock40
Интересная особенность Алисы:
фразу "Баланс 98 рублей" она читает как "Баланс девяносто восьми рублей",
а фразу "Баланс 98" читает как "Баланс девяносто восемь".
Как ей объяснить, что в первом случае не родительный падеж?))
(код сценария - http://smartliving.ru/Main/ScSMSGate)

Re: как научить алису правельно произносить окончания

Добавлено: Ср фев 20, 2013 11:15 pm
sergejey
Это особенность синтезатора речи -- кто его знает, что у него на уме. В данном случае, мне кажется, что он считает, что "рублей" в родительном падеже.

Re: как научить алису правельно произносить окончания

Добавлено: Ср фев 20, 2013 11:38 pm
rock40
Похоже, пока придется подбирать конструкцию фраз под падежи выдаваемые движком - "Баланс около девяносто восьми рублей" ))

Re: как научить алису правельно произносить окончания

Добавлено: Чт фев 21, 2013 1:24 pm
NioFBI
Не обязательно. Попробуй так:

Код: Выделить всё

say("Баланс ".round(gg("ThisComputer.Balance")).". рублей");
или

Код: Выделить всё

say("Баланс ".round(gg("ThisComputer.Balance")).", рублей");
еще может проканать

Код: Выделить всё

say("Баланс ".round(gg("ThisComputer.Balance"))." руб.");

Re: как научить алису правельно произносить окончания

Добавлено: Чт фев 21, 2013 6:28 pm
rock40

Код: Выделить всё

say("Баланс ".round(gg("ThisComputer.Balance")).", рублей");
- меняется только интонация, падеж все равно неправильный...
вариант с "руб." - вообще не звучит...
сделал:

Код: Выделить всё

say("Баланс ".round(gg("ThisComputer.Balance")).". рублей");
осталась только пауза на точке...

Re: как научить алису правельно произносить окончания

Добавлено: Чт фев 21, 2013 8:42 pm
NioFBI
Прошу прощения за дурной совет. Не было возможности проверить.
Вот этот вариант работает.

Код: Выделить всё

say("Баланс - ".round(gg("ThisComputer.Balance"))." рублей");
Баланс - 98 рублей. Проговаривает как надо.