Можно ли получить время, которое пользователи затрачивают на ответ на команду из Alexa, используя alexa-sdk
?Чтобы сделать это более наглядным, я пытаюсь измерить следующее:
User says: "Alexa open my app"
Alexa says: "Welcome to my app, say next to go to the next section"
-- A few seconds pass here, this is what I need to know --
User says: "Next"
Я не смог ничего найти в документах, я обычно пытался бы использовать что-то вроде process.hrtime
, чтобы запустить таймердо и после ответа, однако мой обработчик выглядит примерно так:
let timer;
const StartIntentHandler = {
canHandle(handlerInput) {
return (
handlerInput.requestEnvelope.request.type === 'IntentRequest' &&
handlerInput.requestEnvelope.request.intent.name === 'StartIntent'
);
},
handle(handlerInput) {
timer = process.hrtime();
const speechText = 'Welcome to my app, say next to go to the next section';
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.getResponse();
}
};
const NextIntentHandler = {
canHandle(handlerInput) {
return (
handlerInput.requestEnvelope.request.type === 'IntentRequest' &&
handlerInput.requestEnvelope.request.intent.name ===
'NextIntent'
);
},
handle(handlerInput) {
const diff = process.hrtime(timer);
const timeInNanoseconds = diff[0] * 1e9 + diff[1];
return handlerInput.responseBuilder
.speak(`${timeInNanoseconds} nanoseconds`)
.getResponse();
}
};
Тем не менее, он начинает отсчитываться незадолго до того, как Alexa запускает команду, поэтому время, которое я получаю, - это время, которое требуется Алексеи для произнесения команды.+ задержка ответа пользователя.
Прямо сейчас я измерил время отклика Алексы с помощью секундомера и вычитал его из общего времени, но оно не идеально.