Re: [Приложение] ChromeGateMJD
Добавлено: Вс апр 12, 2020 1:51 pm
Не подскажите как его в телеге найти? какой ник у него?tarasfrompir писал(а): ↑Вс апр 12, 2020 1:51 pmНу блин - зарегайся в телеге и передай свое пожелание... И тогда не будеш задавать вопросов
Делай шаблоны через ask и всё будет работать. Т.е. вместо say('доброе, рассказать прогноз погоды?') пиши ask('доброе, рассказать прогноз погоды?')kiv42 писал(а): ↑Вс апр 12, 2020 11:37 amВ целом все отлично, при правильной настройке микрофона.
но есть у меня пожелание по доработке модуля ChromeGate, думаю многие поддержат. Например шаблон настроен на диалог, простенький пример:
Я-Алиса доброе утро
Алиса - доброе, рассказать прогноз погоды?
Я- Алиса расскажи
Т.е проблема в том что каждый раз нужно говорить слово активации (Алиса), а по логиге в привычном разговоре, нужно просто ответить - да расскажи или расскажи.
Потому как приведенная выше схема со стороны звучит коряво.
Может можно в модуле добавить настройку что то типа "время активности голосового восприятия", так бы поставил секунд 20 и можно было бы общаться в обычном диалоге.
Как считаете? что скажет автор sergejey?
Там как раз диалог строится при помощи say, так как ask появился сильно позднееtarasfrompir писал(а): ↑Пн май 04, 2020 9:00 pmочень просто -
почитай вот єто - viewtopic.php?f=7&t=1511&hilit=%D0%BA%D ... 1%81%D1%82
Ну собственно куда подробнее? Везде где требуется ответ, вместо say пишите ask, так как команда ask на всех терминалах, поддерживающих протокол majordroid, будет не просто проговаривать фразу, а сразу же после фразы включать прослушивание ответа, без необходимости говорить ключевую фразу
Код: Выделить всё
SQLExec('delete from context');
$rec=SQLSelect("select * from tasks where type=0 and TITLE like '%" . $matches[2] . "%' limit 5");
if ($rec) {
if (count($rec)==1) {
SQLExec('insert into context set pp=1, id=' . $rec[0]['ID']);
ask('Вы хотите удалить из списка дело ' . $rec[0]['TITLE'] . '?','mdmNew');
}
else {
$dela='Вы хотите удалить дело ';
$i=1;
foreach($rec as $delo) {
$dela.='номер ' . $i . ' ' . $delo['TITLE'] . '. ';
SQLExec('insert into context set pp=' . $i . ', id=' . $delo['ID']);
$i++;
}
ask($dela,'mdmNew');
}
}
else {
$rec=SQLSelect("select * from ilona where type=0 and TITLE like '%" . mb_substr($matches[2],0,-1) . "%' limit 5");
if ($rec) {
if (count($rec)==1) {
SQLExec('insert into context set pp=1, id=' . $rec[0]['ID']);
ask('Вы хотите удалить из списка дело ' . $rec[0]['TITLE'] . '?','mdmNew');
}
else {
$dela='Вы хотите удалить дело ';
$i=1;
foreach($rec as $delo) {
$dela.='номер ' . $i . ' ' . $delo['TITLE'] . '. ';
SQLExec('insert into context set pp=' . $i . ', id=' . $delo['ID']);
$i++;
}
ask($dela,'mdmNew');
}
} else {
context_clear();
sayreply('В списке дел нет подходящего',3);
}
}
Так понятнее, Спасибо!fandaymon писал(а): ↑Пн май 04, 2020 10:42 pmВезде где требуется ответ, вместо say пишите ask, так как команда ask на всех терминалах, поддерживающих протокол majordroid, будет не просто проговаривать фразу, а сразу же после фразы включать прослушивание ответа, без необходимости говорить ключевую фразу
Для этого надо в панели управления виндовса в разделе распознавание речи включить именно этот голос.