Как получить время от ответа Alexa до ответа пользователя? - PullRequest
0 голосов
/ 23 сентября 2018

Можно ли получить время, которое пользователи затрачивают на ответ на команду из 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 запускает команду, поэтому время, которое я получаю, - это время, которое требуется Алексеи для произнесения команды.+ задержка ответа пользователя.

Прямо сейчас я измерил время отклика Алексы с помощью секундомера и вычитал его из общего времени, но оно не идеально.

1 Ответ

0 голосов
/ 25 сентября 2018

Информация о времени, когда Alexa перестала произносить команду, когда пользователь начинает отвечать, является личной информацией пользователя и не предоставляется разработчикам.

Примечание. Ваш текущий метод использования секундомера и вычитания не дает правильной меры времени, поскольку вы не учитываете время, которое пользовательское устройство тратит на отправку информации в облако AVS (голосовой сервис Alexa)и время, которое AVS затрачивает для вызова вашего умения лямбда.

...