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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
adzam
Сообщения: 602
Зарегистрирован: Сб дек 08, 2012 10:28 pm
Откуда: Кишинев
Благодарил (а): 20 раз
Поблагодарили: 138 раз

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

Сообщение adzam » Чт янв 10, 2013 9:02 pm

как научить алису правильно произносить окончания
она каждый раз произносит по разному

19:00 Alice: На улице-7 градуса
13:59 Alice: На улице+1 градусов
Последний раз редактировалось adzam Пн авг 05, 2013 8:29 pm, всего редактировалось 1 раз.
Мои проекты здесь...https://connect.smartliving.ru/profile/41/blog213.htm
Если вам помогло какое-либо мое сообщение - не ленитесь пользоваться кнопкой СПАСИБО.
NioFBI
Сообщения: 13
Зарегистрирован: Вт фев 12, 2013 12:53 am
Благодарил (а): 0
Поблагодарили: 1 раз

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

Сообщение NioFBI » Чт фев 14, 2013 11:53 pm

Сделал так:

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

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

На мой взгляд, самый адекватный вариант произношения.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Пт фев 15, 2013 10:32 am

да, отличны вариант. надо принять на вооружение :)
с окончаниями беда конечно, тут надо делать какой-то словарик для цифр.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
NioFBI
Сообщения: 13
Зарегистрирован: Вт фев 12, 2013 12:53 am
Благодарил (а): 0
Поблагодарили: 1 раз

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

Сообщение NioFBI » Пт фев 15, 2013 9:20 pm

Сегодня написал функцию для такого случая, должно работать ;)

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

$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.'');
rock40
Сообщения: 13
Зарегистрирован: Сб фев 16, 2013 1:05 am
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение rock40 » Ср фев 20, 2013 9:52 pm

Интересная особенность Алисы:
фразу "Баланс 98 рублей" она читает как "Баланс девяносто восьми рублей",
а фразу "Баланс 98" читает как "Баланс девяносто восемь".
Как ей объяснить, что в первом случае не родительный падеж?))
(код сценария - http://smartliving.ru/Main/ScSMSGate)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Ср фев 20, 2013 11:15 pm

Это особенность синтезатора речи -- кто его знает, что у него на уме. В данном случае, мне кажется, что он считает, что "рублей" в родительном падеже.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
rock40
Сообщения: 13
Зарегистрирован: Сб фев 16, 2013 1:05 am
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение rock40 » Ср фев 20, 2013 11:38 pm

Похоже, пока придется подбирать конструкцию фраз под падежи выдаваемые движком - "Баланс около девяносто восьми рублей" ))
NioFBI
Сообщения: 13
Зарегистрирован: Вт фев 12, 2013 12:53 am
Благодарил (а): 0
Поблагодарили: 1 раз

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

Сообщение NioFBI » Чт фев 21, 2013 1:24 pm

Не обязательно. Попробуй так:

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

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

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

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

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

say("Баланс ".round(gg("ThisComputer.Balance"))." руб.");
rock40
Сообщения: 13
Зарегистрирован: Сб фев 16, 2013 1:05 am
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение rock40 » Чт фев 21, 2013 6:28 pm

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

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

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

say("Баланс ".round(gg("ThisComputer.Balance")).". рублей");
осталась только пауза на точке...
NioFBI
Сообщения: 13
Зарегистрирован: Вт фев 12, 2013 12:53 am
Благодарил (а): 0
Поблагодарили: 1 раз

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

Сообщение NioFBI » Чт фев 21, 2013 8:42 pm

Прошу прощения за дурной совет. Не было возможности проверить.
Вот этот вариант работает.

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

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