say($command . ' равно ' . $result,2)Yashalta писал(а): ↑Вт июн 05, 2018 10:34 pmПривел к такому видуВопрос:Код: Выделить всё
$command=$matches[1]; $com=str_replace(',','.',$command); $com=str_replace('один','1',$com); $com=str_replace('два','2',$com); $com=str_replace('три','3',$com); $com=str_replace('x','*',$com); $com=str_replace('х','*',$com); $com=str_replace('делить на','/',$com); $com=str_replace('на','*',$com); $com=str_replace('плюс','+',$com); $com=str_replace('минус','-',$com); //say($com); $com='$result=' . $com .';'; eval($com); say($result,2);
Как реализовать для провекри проговаривание "формулы"? Ответ она проговаривает но, не проговаривает, что на, что она умножила или поделила, что бы я точно знал, что она меня правильно услышала!
PS - дважды прописан "x" это под разную разкладку клавиатура! Rus/Eng
[Скрипт] Алиса и Википедия
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: [Скрипт] Алиса и Википедия
- Рейтинг: 1.16%
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: [Скрипт] Алиса и Википедия
Все здорово! Еще раз спасибо, еще одна просьба!
Сейчас если говоришь 7 умножить на 8 ответ будет
7икс8
равно 56
или к примеру говоришь 30 минус 27 то ответ будет
30 27
равно 3
т.е. я хочу попросить реализовать проговаривание действия! Если я попросил умножить то пусть скажет
7 УМНОЖИТЬ на 8
равно 56
и тоже самое с миусом, плюсом и т.д.
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: [Скрипт] Алиса и Википедия
Сделай перед say замены в command в другую сторонуYashalta писал(а): ↑Ср июн 06, 2018 11:48 amВсе здорово! Еще раз спасибо, еще одна просьба!
Сейчас если говоришь 7 умножить на 8 ответ будет
7икс8
равно 56
или к примеру говоришь 30 минус 27 то ответ будет
30 27
равно 3
т.е. я хочу попросить реализовать проговаривание действия! Если я попросил умножить то пусть скажет
7 УМНОЖИТЬ на 8
равно 56
и тоже самое с миусом, плюсом и т.д.
$command=str_replace('x',' умножить на ',$command);
$command=str_replace('+',' плюс ',$command);
и т.д.
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: [Скрипт] Алиса и Википедия
Сделай перед say замены в command в другую сторону
$command=str_replace('x',' умножить на ',$command);
$command=str_replace('+',' плюс ',$command);
и т.д.
[/quote]
Что то я тут накодил от слова наШкодил!
Код: Выделить всё
$command=$matches[1];
$com=str_replace(',','.',$command);
$com=str_replace('один','1',$com);
$com=str_replace('два','2',$com);
$com=str_replace('три','3',$com);
$com=str_replace('x','*',$com);
$com=str_replace('х','*',$com);
$com=str_replace('делить на','/',$com);
$com=str_replace('на','*',$com);
$com=str_replace('плюс','+',$com);
$com=str_replace('минус','-',$com);
$command=str_replace('x',' умножить на ',$command);
$command=str_replace('х',' умножить на ',$command);
$command=str_replace('+',' плюс ',$command);
$command=str_replace('/',' делить на ',$command);
$command=str_replace('-',' минус ',$command);
say($command . ' равно ' . $result,2);
$com='$result=' . $com .';';
eval($com);
say($result,2);
И еще такой нюансик!
Когда говоришь к примеру 132 делить на 3
Код: Выделить всё
13:10 Алиса: 44
13:10 Алиса: 132 делить на 3 равно
т.е. Алиса проговаривает эту строку "132 делить на 3 равно"
после пауза в секунду или даже в 2!
а после ответ "44"
Пауза не страшна! Думаю правильно будет сделать, что бы слово "ровно" было не в первой строчке а во второй в месте с ответом "44"
Тогда будет выглядить будто Алиса подумала секунду и выдала ответ "Ровно 44"
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: [Скрипт] Алиса и Википедия
Что то я тут накодил от слова наШкодил!
Код: Выделить всё
$command=$matches[1];
$com=str_replace(',','.',$command);
$com=str_replace('один','1',$com);
$com=str_replace('два','2',$com);
$com=str_replace('три','3',$com);
$com=str_replace('x','*',$com);
$com=str_replace('х','*',$com);
$com=str_replace('делить на','/',$com);
$com=str_replace('на','*',$com);
$com=str_replace('плюс','+',$com);
$com=str_replace('минус','-',$com);
$command=str_replace('x',' умножить на ',$command);
$command=str_replace('х',' умножить на ',$command);
$command=str_replace('+',' плюс ',$command);
$command=str_replace('/',' делить на ',$command);
$command=str_replace('-',' минус ',$command);
say($command . ' равно ' . $result,2);
$com='$result=' . $com .';';
eval($com);
say($result,2);
И еще такой нюансик!
Когда говоришь к примеру 132 делить на 3
Код: Выделить всё
13:10 Алиса: 44
13:10 Алиса: 132 делить на 3 равно
т.е. Алиса проговаривает эту строку "132 делить на 3 равно"
после пауза в секунду или даже в 2!
а после ответ "44"
Пауза не страшна! Думаю правильно будет сделать, что бы слово "ровно" было не в первой строчке а во второй в месте с ответом "44"
Тогда будет выглядить будто Алиса подумала секунду и выдала ответ "Ровно 44"
[/quote]
Потому что должно быть так
$com='$result=' . $com .';';
eval($com);
say($command . ' равно ' . $result,2);
Не надо двух say - одного вполне достаточно
- Рейтинг: 1.16%
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: [Скрипт] Алиса и Википедия
Я оставлю здесь конечный результат "Калькулятора"
ОГРОМНОЕ СПАСИБО fandaymon!!!
Изменить точность после запятой в этой строке!
$result = round($result,2);
где цифра 2 указывает точность после запятой!
ОГРОМНОЕ СПАСИБО fandaymon!!!
Код: Выделить всё
$command=$matches[1];
$com=str_replace(',','.',$command);
$com=str_replace('один','1',$com);
$com=str_replace('два','2',$com);
$com=str_replace('три','3',$com);
$com=str_replace('x','*',$com);
$com=str_replace('х','*',$com);
$com=str_replace('делить на','/',$com);
$com=str_replace('разделить на','/',$com);
$com=str_replace('на','*',$com);
$com=str_replace('плюс','+',$com);
$com=str_replace('минус','-',$com);
$command=str_replace('x',' умножить на ',$command);
$command=str_replace('х',' умножить на ',$command);
//$command=str_replace('+',' плюс ',$command);
$command=str_replace('/',' делить на ',$command);
$command=str_replace('-',' минус ',$command);
$com='$result=' . $com .';';
eval($com);
$result = round($result,2);
say($command . ' равно ' . $result,2);
$result = round($result,2);
где цифра 2 указывает точность после запятой!
- Рейтинг: 3.49%
- xor
- Сообщения: 2043
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 288 раз
- Поблагодарили: 629 раз
Re: [Скрипт] Алиса и Википедия
Поменяйте местами строки
,
а то разделить будет превращаться в раз/
и у себя я сделал
Код: Выделить всё
$com=str_replace('делить на','/',$com);
$com=str_replace('разделить на','/',$com);
а то разделить будет превращаться в раз/
и у себя я сделал
Код: Выделить всё
eval($com);
$result=str_replace('.',',',$result); //чтобы Алиса читала 1.5 как 'Один с половиной', а не 'Один точка пять', хотя это зависит от TTS-движка
say($command.' равно '.$result,2);
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 395
- Зарегистрирован: Вт май 31, 2016 6:56 pm
- Откуда: Россия Карелия Петрозаводск
- Благодарил (а): 95 раз
- Поблагодарили: 57 раз
Re: [Скрипт] Алиса и Википедия
По поводу кода с первой страницы для wiki.
Если с mojordroid отправлять команды голосом типа "Кто такой Дед Мороз" то не скрипт не может найти ответ, но если убрать большие буквы напечатав "Кто такой дед мороз" в истории событий но ответ от скрипта приходит нормальный.
Как доработать скрипт чтобы все большие буквы пр вращал в маленькие?
Если с mojordroid отправлять команды голосом типа "Кто такой Дед Мороз" то не скрипт не может найти ответ, но если убрать большие буквы напечатав "Кто такой дед мороз" в истории событий но ответ от скрипта приходит нормальный.
Как доработать скрипт чтобы все большие буквы пр вращал в маленькие?
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: [Скрипт] Алиса и Википедия
В первой строчке добавьVladPTZ писал(а): ↑Пт июн 08, 2018 12:12 amПо поводу кода с первой страницы для wiki.
Если с mojordroid отправлять команды голосом типа "Кто такой Дед Мороз" то не скрипт не может найти ответ, но если убрать большие буквы напечатав "Кто такой дед мороз" в истории событий но ответ от скрипта приходит нормальный.
Как доработать скрипт чтобы все большие буквы пр вращал в маленькие?
$matches[1]=strtolower($matches[1]);
- xor
- Сообщения: 2043
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 288 раз
- Поблагодарили: 629 раз
Re: [Скрипт] Алиса и Википедия
А чего так мудрёно-то?
И вот топик был https://majordomo.smartliving.ru/forum/ ... 251#p53313
Я у себя использую такой скрипт (для первого значения)
Он и про Деда Мороза, и про Пушкина, и про берёзу
И вот топик был https://majordomo.smartliving.ru/forum/ ... 251#p53313
Я у себя использую такой скрипт (для первого значения)
Код: Выделить всё
$zap=$params['zapros']; //$zap='Дед Мороз';
say('Запрашиваю у Wikipedia информацию о '.$zap);
$zapurl=urlencode($zap);
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description;
//echo $otvet;
//избавимся от ударений
$otvet=iconv("UTF-8","CP1251//IGNORE",$otvet);
$otvet=iconv("CP1251","UTF-8",$otvet);
$otvet = preg_replace("#\s\(.*?\)#isu", '', $otvet);
echo( $otvet);
say($otvet,2);
- Рейтинг: 2.33%
win10 connect https://connect.smartliving.ru/profile/303