오디오 재생 제어
Agent Interface에는 Service Agent의 물리적 버튼 또는 GUI 상의 버튼을 사용하여 오디오 재생 제어를 위한 버튼 액션이 정의되어 있습니다. 이 시나리오는 음성 명령어가 아닌 이런 버튼을 사용하여 오디오의 재생, 정지, 이전 곡 재생 등의 재생 제어를 수행하는 과정을 설명합니다.
버튼을 통해 오디오 재생을 제어하는 방식은 PlaybackController 인터페이스에서 제공하며, 제어할 수 있는 음원 종류는 카카오 i SDK에 전달되는 음원 중 음악과 라디오 콘텐츠가 있습니다.
안내
해당 기능을 사용하기 위해서는 AudioPlayer.Player Instruction의 요청 파라미터 항목 중controllable
을content
로 설정해야 합니다.
음원 재생
그림음원 재생 시나리오
-
사용자가 Service Agent(디바이스) 또는 GUI 상의 버튼을 사용하여 음원 재생을 동작시키면, Service Agent는 PlaybackController.PlayCommanded Event를 KVS에 전송합니다.
표PlaybackController.PlayCommanded구분 설명 Interface PlaybackController.PlayCommanded: Service Agent에서 음원 재생을 KVS에 요청 메시지 타입: Event
인터페이스 타입: PlaybackController
인터페이스: PlayCommandedBody handled로 구성됨 handled: false
-
지정된 텍스트 명령어의 전달을 요청하기 위해 KVS는 Recognizer.RequestText Instruction을 Service Agent에 전송합니다.
표Recognizer.RequestText구분 설명 Interface Recognizer.RequestText: KVS가 Service Agent로 Text Event를 보내도록 요청 메시지 타입: Instruction
인터페이스 타입: Recognizer
인터페이스: RequestTextBody utterance로 구성됨 utterance: 음악 틀어줘 -
지정된 텍스트 명령어를 KVS에 전달하기 위해 Service Agent는 Recognizer.Text Event를 KVS에 전송합니다.
표Recognizer.Text구분 설명 Interface Recognizer.Text: 음성이 아닌 텍스트 발화 입력 시, 지정된 텍스트 명령어를 KVS에 전달 메시지 타입: Event
인터페이스 타입: Recognizer
인터페이스: TextBody utterance로 구성됨 utterance: 음악 틀어줘 -
KVS는 음성 응답을 전달하기 위해 Service Agent에 Synthesizer.Speak Instruction을 전송합니다.
표Synthesizer.Speak구분 설명 Interface Synthesizer.Speak: Service Agent에 음성 응답이 필요할 때마다 KVS가 Service Agent에 전달 메시지 타입: Instruction
인터페이스 타입: Recognizer
인터페이스: TextBody url, text로 구성됨 url: 음성 URL
text: 좋아할 만한 노래 들려줄게요 -
KVS는 음악 재생을 지시하기 위해 AudioPlayer.Play Instruction을 Service Agent에 전송합니다.
- AudioPlayer.Play Instruction의 음악 콘텐츠는 Play 채널의 Content Audio Player의 Queue에 등록됩니다.
구분 설명 Interface AudioPlayer.Play: KVS가 Service Agent에 오디오 스트림의 재생을 시작하도록 지시 메시지 타입: Instruction
인터페이스 타입: AudioPlayer
인터페이스: PlayBody 음원 정보, PlayChannel, controllable으로 구성됨 음원 정보: 음원 1
PlayChannel:content
controllable:PLAY
,STOP
,RESUME
-
Service Agent가 음성 응답(“좋아할 만한 노래 들려줄게요”)을 출력하고, Synthesizer.SpeakStarted Event를 KVS에 전송합니다.
표Synthesizer.SpeakStarted구분 설명 Interface Synthesizer.SpeakStarted: Service Agent가 Speak Instruction을 처리하고 합성된 음성의 재생을 시작한 후에 KVS에 전송 메시지 타입: Event
인터페이스 타입: Synthesizer
인터페이스: SpeakStarted -
음성 답변 출력이 완전히 종료되면, Service Agent는 KVS에 Synthesizer.SpeakFinished Event를 전송합니다. 표Synthesizer.SpeakStarted
구분 설명 Interface Synthesizer.SpeakFinished: Service Agent가 Speak Instruction을 처리하고 합성된 음성의 재생을 마친 후에 KVS에 전달 메시지 타입: Event
인터페이스 타입: Synthesizer
인터페이스: SpeakFinished -
Service Agent는 음악을 재생하고, KVS에 AudioPlayer.Started Event를 전송합니다. 표AudioPlayer.Started
구분 설명 Interface AudioPlayer.Started: Service Agent가 오디오 스트림의 재생을 시작했음을 KVS에 전송 메시지 타입: Event
인터페이스 타입: AudioPlayer
인터페이스: StartedBody offset, sates로 구성됨 offset: 0
states:
- AudioPlayer.ContentState(state:PLAYING
)
- AudioPlayer.PlayState(state:PLAYING
)
재생 일시 중지
그림재생 일시 중지 시나리오
-
사용자가 디바이스의 버튼 또는 GUI 상의 버튼을 사용하여 재생 일시 중지를 요청하면, Service Agent는 PlaybackController.PauseCommanded Event를 KVS에 전송합니다.
표PlaybackController.PauseCommanded구분 설명 Interface PlaybackController.PauseCommanded: 사용자가 음성 요청이 아닌 하드웨어 또는 소프트웨어 버튼을 사용하여 미디어 항목의 재생을 일시 중지할 때, Service Agent에서 KVS로 전송 메시지 타입: Event
인터페이스 타입: PlaybackController
인터페이스: PauseCommandedBody handled로 구성됨 handled: false
-
지정된 텍스트 명령어의 전달을 요청하기 위해 KVS는 Recognizer.RequestText Instruction을 Service Agent에 전송합니다.
표Recognizer.RequestText구분 설명 Interface Recognizer.RequestText: 지정된 명령어를 전송하도록 요청하기 위해 KVS가 Service Agent에 전송 메시지 타입: Instruction
인터페이스 타입: Recognizer
인터페이스: RequestTextBody utterance로 구성됨 utterance: 일시정지 -
지정된 텍스트 명령어를 KVS에 전달하기 위해 Service Agent는 Recognizer.Text Event를 KVS에 전송합니다.
표Recognizer.Text구분 설명 Interface Recognizer.Text: 음성이 아닌 텍스트 발화 입력 시, 지정된 텍스트 명령어를 KVS에 전달 메시지 타입: Event
인터페이스 타입: Recognizer
인터페이스: TextBody utterance로 구성됨 utterance: 일시정지 -
Recognizer.Text Event에 대한 응답으로 KVS는 Service Agent에 AudioPlayer.Stop Instruction을 전송합니다.
표AudioPlayer.Stop구분 설명 Interface AudioPlayer.Stop: KVS가 Service Agent에 오디오 스트림의 재생을 중지하도록 지시 메시지 타입: Instruction
인터페이스 타입: AudioPlayer
인터페이스: StopBody utterance로 구성됨 utterance: 일시정지 -
Service Agent는 음악 재생을 일시 정지하고, AudioPlayer.Stoppted Event를 KVS에 전송합니다.
표AudioPlayer.Stop구분 설명 Interface AudioPlayer.Stopped: KVS가 Service Agent에 오디오 스트림의 재생을 중지하도록 지시 메시지 타입: Instruction
인터페이스 타입: AudioPlayer
인터페이스: StopptedBody offset, states로 구성됨 offset: 88521
states: AudioPlayer.ContentState(state:STOPPED
), AudioPlayer: PlayState(state:STOPPED
)
음원 재생 재개
그림음원 재생 재개 시나리오
-
사용자가 디바이스의 버튼 또는 GUI 상의 버튼을 사용하여 음원 재생 재개를 요청하면, Service Agent는 PlaybackController.ResumeCommanded Event를 KVS에 전송합니다.
표PlaybackController.ResumeCommanded구분 설명 Interface PlaybackController.ResumeCommanded: Service Agent가 음원 재생 재개를 KVS(Kakao i Virtual agent Service)에 요청 메시지 타입: Event
인터페이스 타입: PlaybackController
인터페이스: ResumeCommandedBody handled로 구성됨 handled: false
-
지정된 텍스트 명령어의 전달을 요청하기 위해 KVS는 Recognizer.RequestText Instruction을 Service Agent에 전송합니다.
표Recognizer.RequestText구분 설명 Interface Recognizer.RequestText: 지정된 명령어를 전송하도록 요청하기 위해 KVS가 Service Agent에 전송 메시지 타입: Instruction
인터페이스 타입: Recognizer
인터페이스: RequestTextBody utterance로 구성됨 utterance: 계속해 -
지정된 텍스트 명령어를 KVS에 전달하기 위해 Service Agent는 Recognizer.Text Event를 KVS에 전송합니다.
표Recognizer.Text구분 설명 Interface Recognizer.Text: 음성이 아닌 텍스트 발화 입력 시, 지정된 텍스트 명령어를 KVS에 전달 메시지 타입: Event
인터페이스 타입: Recognizer
인터페이스: TextBody utterance로 구성됨 utterance: 계속해 -
KVS는 음악 재생 정보를 AudioPlayer.Play Instruction으로 Service Agent에 전송합니다.
표AudioPlayer.Play구분 설명 Interface AudioPlayer.Play: KVS가 Service Agent에 오디오 스트림의 재생을 시작하도록 지시 메시지 타입: Instruction
인터페이스 타입: AudioPlayer
인터페이스: PlayBody 음원 정보, PlayChannel, controllable로 구성됨 음원 정보: 음원 1
PlayChannel:content
controllable:PLAY
,STOP
,RESUME
-
Service Agent는 음악을 재생을 다시 시작하고, KVS에 AudioPlayer.Started Event를 전송합니다.
표AudioPlayer.Started구분 설명 Interface AudioPlayer.Started: Service Agent가 오디오 스트림의 재생을 시작했음을 KVS에 전송 메시지 타입: Event
인터페이스 타입: AudioPlayer
인터페이스: StartedBody offset, states로 구성됨 offset: 88521
states:
- AudioPlayer.ContentState(state:PLAYING
)
- AudioPlayer.PlayState(state:PLAYING
)
다음 음원 재생
그림다음 음원 재생 시나리오
-
사용자가 디바이스의 버튼 또는 GUI 상의 버튼을 사용하여 다음 음원 재생을 동작시키면, Service Agent는 PlaybackController.NextCommanded Event를 KVS에 전송합니다.
표PlaybackController.NextCommanded구분 설명 Interface PlaybackController.NextCommanded: Service Agent에서 다음 음원 재생을 KVS에 요청 메시지 타입: Event
인터페이스 타입: PlaybackController
인터페이스: NextCommandedBody handled로 구성됨 handled: false
-
지정된 텍스트 명령어의 전달을 요청하기 위해 KVS는 Recognizer.RequestText Instruction을 Service Agent에 전송합니다.
표Recognizer.RequestText구분 설명 Interface Recognizer.RequestText: 지정된 명령어를 전송하도록 요청하기 위해 KVS가 Service Agent에 전송 메시지 타입: Instruction
인터페이스 타입: Recognizer
인터페이스: RequestTextBody utterance로 구성됨 utterance: 다음 -
지정된 텍스트 명령어를 KVS로 전달하기 위해 Service Agent는 Recognizer.Text Event를 KVS에 전송합니다.
표Recognizer.Text구분 설명 Interface Recognizer.Text: 음성이 아닌 텍스트 발화 입력 시, 지정된 텍스트 명령어를 KVS에 전달 메시지 타입: Event
인터페이스 타입: Recognizer
인터페이스: TextBody utterance로 구성됨 utterance: 다음 -
KVS는 음악 재생 정보를 AudioPlayer.Play Instruction으로 Service Agent에 전달합니다.
- AudioPlayer.Play Instruction의 음악 콘텐츠는
Player
채널에 포함되고, Content Audio Player의 Queue에 등록됩니다.
구분 설명 Interface AudioPlayer.Play: KVS가 Service Agent에 오디오 스트림의 재생을 시작하도록 지시 메시지 타입: Instruction
인터페이스 타입: AudioPlayer
인터페이스: PlayBody 음원 정보, PlayChannel, controllable로 구성됨 음원 정보: 음원 1
PlayChannel:content
controllable:PLAY
,STOP
,RESUME
- AudioPlayer.Play Instruction의 음악 콘텐츠는
-
Service Agent는 음악 재생을 중지하고, AudioPlayer.Stoppted Event를 KVS에 전송합니다.
표AudioPlayer.Stoppted구분 설명 Interface AudioPlayer.Stoppted: Service Agent가 다음 Instruction 중 하나를 받고 오디오 스트림의 재생을 중지했음을 KVS에 전달 메시지 타입: Event
인터페이스 타입: AudioPlayer
인터페이스: StopptedBody offset, states로 구성됨 offset: 98521
states:
- AudioPlayer.ContentState(state:STOPPED
)
- AudioPlayer.PlayState(state:STOPPED
) -
Service Agent가 음원 2을 재생하고, AudioPlayer.Started Event를 KVS에 전송합니다.
표AudioPlayer.Started구분 설명 Interface AudioPlayer.Started: Service Agent가 오디오 스트림의 재생을 시작했음을 KVS에 전송 메시지 타입: Event
인터페이스 타입: AudioPlayer
인터페이스: StartedBody offset, states로 구성됨 offset: 0
states:
- AudioPlayer.ContentState(state:PLAYING
)
- AudioPlayer.PlayState(state:PLAYING
)