Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

PlaybackController Interface

Architecture/A.I 2017.05.26 15:06
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

그림은 무관합니다. 최강두산 화이팅! ㅋㅋ





Overview

PlaybackController 인터페이스는 음성 요청이 아닌 클라이언트 측 버튼 누르기 또는 GUI 어바이어를 통해 
재생 대기열을 탐색하기위한 일련의 이벤트를 제공합니다.

PlayCommandIssued Event 

PlayCommandIssued 이벤트는 사용자가 클라이언트상의 버튼 누름 또는 GUI affordance를 사용하여 미디어 항목의 재생을 시작 / 재개 할 때 전송되어야합니다.

Sample Message

{
    "context": [
        {{Alerts.AlertsState}},
        {{AudioPlayer.PlaybackState}},
        {{Speaker.VolumeState}},
        {{SpeechSynthesizer.SpeechState}}
        {{SpeechRecognizer.RecognizerState}}
    ],
    "event": {
        "header": {
            "namespace": "PlaybackController",
            "name": "PlayCommandIssued",
            "messageId": "{{STRING}}"
        },
        "payload": {
        }
    }
}


Context
PlayCommandIssued 이벤트는 클라이언트가 모든 클라이언트 구성 요소 상태의 상태를 보내도록 요구합니다. 
추가 정보는 컨텍스트를 참조하십시오.

Header Parameters

Parameter
Description
Type
messageId
A unique ID used to represent a specific message.
string

Payload Parameters
빈 payload를 보내야합니다.


PauseCommandIssued Event 

PauseCommandIssued 이벤트는 사용자가 클라이언트상의 단추 누르기 또는 GUI affordance를 사용하여 미디어 항목의 재생을 일시 중지 할 때 전송되어야합니다.

Sample Message

{
    "context": [
        {{Alerts.AlertsState}},
        {{AudioPlayer.PlaybackState}},
        {{Speaker.VolumeState}},
        {{SpeechSynthesizer.SpeechState}}
        {{SpeechRecognizer.RecognizerState}}
    ],
    "event": {
        "header": {
            "namespace": "PlaybackController",
            "name": "PauseCommandIssued",
            "messageId": "{{STRING}}"
        },
        "payload": {
        }
    }
}

Context
PauseCommandIssued 이벤트는 클라이언트가 모든 클라이언트 구성 요소 상태의 상태를 보내도록 요구합니다. 
추가 정보는 컨텍스트를 참조하십시오.


Header Parameters

Parameter
Description
Type
messageId
A unique ID used to represent a specific message.
string

Payload Parameters
빈 payload를 보내야합니다.


NextCommandIssued Event 

NextCommandIssued 이벤트는 사용자가 클라이언트상의 단추 누르기 또는 GUI affordance를 사용하여 재생 대기열의 다음 미디어 항목으로 건너 뛸 때 전송되어야합니다.

Sample Message

{
    "context": [
        {{Alerts.AlertsState}},
        {{AudioPlayer.PlaybackState}},
        {{Speaker.VolumeState}},
        {{SpeechSynthesizer.SpeechState}}
        {{SpeechRecognizer.RecognizerState}}
    ],
    "event": {
        "header": {
            "namespace": "PlaybackController",
            "name": "NextCommandIssued",
            "messageId": "{{STRING}}"
        },
        "payload": {
        }
    }
}

Context
NextCommandIssued 이벤트는 클라이언트가 모든 클라이언트 구성 요소 상태의 상태를 보내도록 요구합니다. 
추가 정보는 컨텍스트를 참조하십시오.

Header Parameters

Parameter
Description
Type
messageId
A unique ID used to represent a specific message.
string

Payload Parameters
빈 payload를 보내야합니다.


PreviousCommandIssued Event 

클라이언트가 버튼 누름 또는 GUI affordance를 사용하여 재생 대기열에서 이전 미디어 항목으로 건너 뛸 때 PreviousCommandIssued 이벤트를 보내야합니다.

Sample Message

{
    "context": [
        {{Alerts.AlertsState}},
        {{AudioPlayer.PlaybackState}},
        {{Speaker.VolumeState}},
        {{SpeechSynthesizer.SpeechState}}
        {{SpeechRecognizer.RecognizerState}}
    ],
    "event": {
        "header": {
            "namespace": "PlaybackController",
            "name": "PreviousCommandIssued",
            "messageId": "{{STRING}}"
        },
        "payload": {
        }
    }
}

Context

PreviousCommandIssued 이벤트는 클라이언트가 모든 클라이언트 구성 요소 상태의 상태를 보내도록 요구합니다. 
추가 정보는 컨텍스트를 참조하십시오.

Header Parameters

Parameter
Description
Type
messageId
A unique ID used to represent a specific message.
string

Payload Parameters
빈 payload를 보내야합니다.



'Architecture > A.I' 카테고리의 다른 글

PlaybackController Interface  (0) 2017.05.26
Understanding Alerts  (0) 2017.05.26
Alerts Interface  (0) 2017.05.25
AudioPlayer Interface  (0) 2017.05.24

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Understanding Alerts

Architecture/A.I 2017.05.26 15:03
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

Overview

alerts에 관해서, 사용자는 일반적으로 타이머 설정, alert 설정 또는 타이머 또는 alert 삭제 / 취소의 세 가지 방법 중 하나로 Alexa 사용 가능 제품과 상호 작용합니다. 사용자가 타이머 또는 알람을 설정하려면 제품에 활성 인터넷 연결이 있어야합니다
이 작업은 제품에 조치 (예 : SetAlert 및 DeleteAlert)를 지시하고 Alexa Voice Service (AVS)에 조치가 취해 졌음을 알리는 이벤트
 (예 : SetAlertSucceeded 및 DeleteAlertSucceeded)를 전송하는 데 필요합니다.

인터넷 연결이 끊어지면 제품에 이전에 설정된 타이머 또는 alert을 처리 할 수 있어야합니다. 
예를 들어, 사용자가 오전 7시 30 분에 알람을 설정하면 잠자기 전에 제품이 밤 사이에 인터넷 연결이 끊어지면 제품에 오전 7시 30 분에 알림을 재생할 수있는 기능이 있어야합니다. 인터넷 연결이 끊어진 후 타이머 및 알람을 실행하면 긍정적인 사용자 환경이 보장됩니다.

제품의 시계를 관리하는 것은 타이머와 alert이 설계된대로 작동하도록하는 데 중요합니다. 
AVS에서 보낸 모든 directive는 UTC 시간에 반환됩니다. 사용자가 제품에 "3 분 동안 타이머 설정"을 지시하면 AVS는 해당 사용자의 시간대를 고려하여 요청에 해당하는 올바른 UTC 시간을 결정합니다. 제품의 시간이 현지에서 조정 된 경우 타이머 및 알람이 제대로 작동하지 않을 수 있습니다. 이러한 이유로 아마존은 시계 동기화에 NTP (Network Time Protocol)를 사용하도록 제안합니다.

정전 또는 재부팅이 필요한 경우 제품에 alert을 유지하고 복원 할 수 있어야합니다. 
향후 alert가 예정된 경우 제품에서 alert을 로컬로 설정해야합니다.
 귀하의 제품은 alert가 다시 설정되었음을 Alexa에 알리는 이벤트를 전송할 필요가 없습니다
alert가 해제 될 때 제품 전원이 꺼지거나 재부팅되는 경우 다음 규칙을 따라야합니다.
  • 지난 30 분 내에 alert가 예정된 경우 제품에서 alert를 트리거하고 모든 해당 이벤트를 보내야합니다.
  • alert가 예정된 수행에서 30 분 이상 경과하면 이를 폐기해야하며 제품은 각 폐기 alert에 대해 AVS에 AlertStopped 이벤트를 보내야합니다.

Alexa 기반 제품은 다음과 같이 요약 할 수 있습니다.
  • 인터넷 연결이 끊어지면 이전에 설정된 alert를 처리 할 수 있어야합니다.
  • 네트워크 시간 프로토콜을 사용하여 제품의 시계를 관리하십시오.
  • 제품의 전원이 꺼 지거나 재부팅되는 경우 이전에 설정된 alert를 처리 할 수 있어야합니다.

다음 예제는 타이머 및 알람이 AVS와 함께 작동하는 방법을 이해하는 데 사용해야합니다. 
이러한 시나리오는 다음을 가정합니다.
  • 귀하의 제품은 사용자의 말을 처리하고 AVS로부터받은 지침에 따라 행동하도록 고안되었습니다.
  • 귀하의 제품은 클라우드 기반 지시문을 수신하는 다운 채널을 구축했습니다. 
          자세한 내용은 AVS를 사용하여 HTTP / 2 연결 관리를 참조하십시오.
  • 이벤트가 발생하면 제품에서 AVS를 업데이트합니다.
  • 모든 이벤트는 개별 이벤트 스트림으로 전송됩니다.

Scenario 1: Set a Timer with Voice

사용자가 5 분 동안 타이머를 설정하려고합니다. 
사용자가 "5 분 동안 타이머 설정"이라고 말하면 제품은 사용자의 음성을 캡처하고 AVS에 인식 이벤트를 전송해야합니다. 
그런 다음 AVS는 제품에 수행 할 작업을 지시하는 일련의 directive로 응답하고 제품은 조치를 취해야합니다. 
익숙한 것 같습니다. 타이머나 alert을 설정하는 것은 제품과 AVS 간의 표준 상호 작용 모델을 따르기 때문입니다. 
질문을하거나 요청을하고 응답을 받고 그에 따라 행동하고 AVS에 문제가 발생했음을 업데이트하십시오.

이것은 타이머를 설정할 때의 메시지 흐름입니다.
  • 사용자가 타이머 설정을 요청하면 AVS는 Speak Directive를 보내 제품에 연결된 오디오를 재생하도록 지시합니다. 
     이 시나리오에서는 "5 분, 지금 시작하십시오."알렉사 speech의 재생이 시작되면 제품에서 AVS로 SpeechStarted 이벤트를 보내야합니다.
  • Alexa speech의 재생이 완료되면 SpeechFinished 이벤트를 AVS에 보내야합니다.
  • 또한 AVS는 다운 채널 스트림에서 제품에 SetAlert 지정 문을 전송합니다. 제품 타이머는 5 분 동안 설정되어야하며 SetAlertSucceeded 이벤트는 AVS로 전송되어야합니다. 제품에는 타이머 설정 및 타이머 만료에 필요한 논리가 있어야합니다.
  • 5 분이 경과 한 후 제품은 타이머가 만료되었음을 사용자에게 알리고 AlertStarted 이벤트를 AVS로 보내야합니다.


사용자는 음성 또는 Amazon Alexa 앱을 사용하여 타이머를 중지 할 수 있어야하며 가능한 경우 물리적 컨트롤 (버튼 또는 GUI)을 통해 타이머를 중지 할 수 있어야합니다.
  • 요청이 음성 또는 Amazon Alexa 앱을 통해 이루어지면 AVS는 제품에 DeleteAlert Directive를 보냅니다. 이 때 제품은 AlertStopped 이벤트와 DeleteAlertSucceeded 이벤트를 AVS에 보내야 합니다.
  • button affordance 결과로 타이머가 중지되면 제품은 AlertStopped 이벤트를 AVS로 전송해야합니다.

올바르게 구현 된 경우 타이머가 제품에 설정되면 인터넷 연결없이 작동해야합니다. 
그러나 이벤트가 발생했음을 AVS에 알리는 연결이 필요합니다. 
따라서 인터넷 연결이 다시 설정되면 제품 상태에서 AVS를 업데이트하는 데 필요한 논리가 제품에 있어야합니다.

아래의 시퀀스 다이어그램은 타이머가 설정된 경우 제품과 AVS 간의 예상되는 상호 작용을 보여줍니다.







Scenario 2: Cancel an Alarm Using the Amazon Alexa App

이 시나리오에서는 alert가 성공적으로 설정되었고 사용자가 해당 alert를 취소하려고한다고 가정해야합니다.
사용자는 Amazon Alexa 앱을 열어 모든 제품 별 알람 (활성 및 비활성)에 액세스 할 수 있습니다. 
사용자는 알람으로 이동하고 오전 7시 30 분에 설정된 알람을 취소합니다.

DeleteAlert directive는 다운채널 스트림으로 제품으로 전송됩니다. 지금까지 모든 사용자 조치가 Amazon Alexa 앱에서 발생했습니다.
DeleteAlert directvie를 받으면 제품에서 directive에 따라 행동하고 오전 7시 30 분에 설정된 경보를 취소 할 수 있어야합니다. 
여기에는 알람이 삭제 된 후 AVS에 DeleteAlertSucceeded 이벤트를 보내는 작업이 포함됩니다.

이 시퀀스 다이어그램은 Amazon Alexa 앱을 사용하여 알람을 취소 한 경우 제품과 AVS 간의 예상되는 상호 작용을 보여줍니다.




Scenario 3: Set a Recurring(순환하는) Alarm

제품에 반복적인 알람을 설정하는 과정은 타이머 설정과 유사합니다. 
directive와 event의 흐름은 거의 동일합니다 (시나리오 1 참조). 
유일한 차이점은 반복 알람이 취소 될 때까지 AVS가 매일 새 SetAlert directive를 제품에 보냅니다.
이 시퀀스 다이어그램은 반복 알람이 설정 될 때 제품과 AVS 간의 예상되는 상호 작용을 보여줍니다.





Scenario 4: Snooze a Sounding Alarm

이 시나리오에서는 alert가 성공적으로 설정되었고 현재 소리가 나는 것으로 가정해야합니다.
중요 : 다시 알림은 음성으로 만 시작할 수 있습니다.

알람이 울리고 사용자가 "Alexa, snooze"라고 말하면 몇 가지 일이 발생합니다. 
사용자 음성이 AVS로 스트리밍되고 업데이트 된 예약 시간이있는 새 SetAlert directive가 제품으로 전송됩니다. 
귀하의 제품은 울리는 alert의 토큰과 새로운 SetAlert directive가 일치하는지 확인해야합니다. 
토큰이 일치하면 제품에서 경고음을 취소하고 SetAlert directive의  payload에 포함 된 scheduledTime에 대한 새 알람을 설정해야합니다.
이 시퀀스 다이어그램은 알람이 일시 중지 된 경우 제품과 AVS 간의 예상되는 상호 작용을 보여줍니다.




Lifecycle Events

이 표는 제품이 AVS에 보내야하는 네 가지 사용자 조치 및 라이프 사이클 이벤트를 제공합니다.

참고 : DeleteAlertSucceeded 또는 DeleteAlertFailed는 DeleteAlert directive에 대한 응답으로만 전송됩니다. 
로컬로 수행 된 작업에 대해 이러한 이벤트를 보내지 마십시오.


User Action
Server Behavior
Alert is Active (Making Noise)
Send AlertStarted
Send AlertStopped
Send DeleteAlertSucceeded / DeleteAlertFailed
User says: “Stop Alert.”
DeleteAlert를downchannel stream에서 전송.
Y
Y
Y
Y
사용자는 실제 컨트롤 (버튼 또는 GUI)을 사용하여 활성 alert를 로컬에서 중지합니다.
None
Y
Y
Y
N
사용자가 음성 요청 또는 Amazon Alexa 앱을 통해 비활성 알림을 취소합니다.
DeleteAlertdiretive 를 downchannel stream에서 전송.
N
N
N
Y
재생하지 않고 알람이 만료되었습니다 
(예 : 예정된 이행 시간에 기기의 전원이 켜지지 않음)
None
N
N
Y
N


참고 : https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/reference/timers-and-alarms-conceptual-overview#overview







'Architecture > A.I' 카테고리의 다른 글

PlaybackController Interface  (0) 2017.05.26
Understanding Alerts  (0) 2017.05.26
Alerts Interface  (0) 2017.05.25
AudioPlayer Interface  (0) 2017.05.24

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

티스토리 툴바