NUGU SDK Linux  1.7.5
asr_interface.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019 SK Telecom Co., Ltd. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __NUGU_ASR_INTERFACE_H__
18 #define __NUGU_ASR_INTERFACE_H__
19 
21 #include <functional>
22 
23 namespace NuguCapability {
24 
25 using namespace NuguClientKit;
26 
39 #define NUGU_ASR_EPD_TYPE "CLIENT"
40 #define NUGU_ASR_ENCODING "COMPLETE"
41 #define NUGU_SERVER_RESPONSE_TIMEOUT_SEC 10
47 enum class ASRState {
48  IDLE,
50  LISTENING,
51  RECOGNIZING,
52  BUSY
53 };
54 
59 enum class ASRInitiator {
60  WAKE_UP_WORD,
62  TAP,
64  EARSET
65 };
66 
71 enum class ASRError {
76  UNKNOWN
77 };
78 
83 typedef struct _ASRAttribute {
84  std::string model_path;
85  std::string epd_type;
86  std::string asr_encoding;
89 
94 class IASRListener : virtual public ICapabilityListener {
95 public:
96  virtual ~IASRListener() = default;
97 
106  virtual void onState(ASRState state, const std::string& dialog_id, ASRInitiator initiator) = 0;
107 
112  virtual void onNone(const std::string& dialog_id) = 0;
113 
119  virtual void onPartial(const std::string& text, const std::string& dialog_id) = 0;
120 
126  virtual void onComplete(const std::string& text, const std::string& dialog_id) = 0;
127 
134  virtual void onError(ASRError error, const std::string& dialog_id, bool listen_timeout_fail_beep = true) = 0;
135 
140  virtual void onCancel(const std::string& dialog_id) = 0;
141 };
142 
147 class IASRHandler : virtual public ICapabilityInterface {
148 public:
153  using AsrRecognizeCallback = std::function<void(const std::string& dialog_id)>;
154 
155 public:
156  virtual ~IASRHandler() = default;
157 
165  virtual void startRecognition(float power_noise, float power_speech, ASRInitiator initiator = ASRInitiator::TAP, AsrRecognizeCallback callback = nullptr) = 0;
166 
172  virtual void startRecognition(ASRInitiator initiator = ASRInitiator::TAP, AsrRecognizeCallback callback = nullptr) = 0;
173 
178  virtual void stopRecognition(bool cancel = false) = 0;
179 
184  virtual void addListener(IASRListener* listener) = 0;
185 
190  virtual void removeListener(IASRListener* listener) = 0;
191 
196  virtual void setAttribute(ASRAttribute&& attribute) = 0;
197 
202  virtual void setEpdAttribute(EpdAttribute&& attribute) = 0;
203 
209 };
210 
215 } // NuguCapability
216 
217 #endif /* __NUGU_ASR_INTERFACE_H__ */
ASR handler interface.
Definition: asr_interface.hh:147
virtual void stopRecognition(bool cancel=false)=0
Turn off the microphone and stop speech recognition.
virtual void addListener(IASRListener *listener)=0
Add the Listener object.
virtual void setAttribute(ASRAttribute &&attribute)=0
Set attribute about speech recognition.
virtual EpdAttribute getEpdAttribute()=0
Get EPD attribute.
virtual void startRecognition(ASRInitiator initiator=ASRInitiator::TAP, AsrRecognizeCallback callback=nullptr)=0
Turn on the microphone and start speech recognition.
std::function< void(const std::string &dialog_id)> AsrRecognizeCallback
ASR recognize callback for user request and response mapping.
Definition: asr_interface.hh:153
virtual void removeListener(IASRListener *listener)=0
Remove the Listener object.
virtual void startRecognition(float power_noise, float power_speech, ASRInitiator initiator=ASRInitiator::TAP, AsrRecognizeCallback callback=nullptr)=0
Turn on the microphone and start speech recognition (support multi-wakeup)
virtual void setEpdAttribute(EpdAttribute &&attribute)=0
Set EPD attribute.
ASR listener interface.
Definition: asr_interface.hh:94
virtual void onError(ASRError error, const std::string &dialog_id, bool listen_timeout_fail_beep=true)=0
Report an error occurred during speech recognition to the user.
virtual void onPartial(const std::string &text, const std::string &dialog_id)=0
The result of recognizing the user's speech in real time.
virtual void onNone(const std::string &dialog_id)=0
No speech recognition results.
virtual void onComplete(const std::string &text, const std::string &dialog_id)=0
Speech recognition results which are reported naturally in situations based on the entire speech.
virtual void onState(ASRState state, const std::string &dialog_id, ASRInitiator initiator)=0
Report to the user asr state changed.
virtual void onCancel(const std::string &dialog_id)=0
Speech recognition is canceled.
capability interface
Definition: capability_interface.hh:81
capability listener interface
Definition: capability_interface.hh:59
ASRInitiator
ASR initiator list.
Definition: asr_interface.hh:59
struct NuguCapability::_ASRAttribute ASRAttribute
Attributes for setting ASR options.
ASRError
ASR error list.
Definition: asr_interface.hh:71
ASRState
ASR state list.
Definition: asr_interface.hh:47
Attributes for setting ASR options.
Definition: asr_interface.hh:83
int response_timeout
Definition: asr_interface.hh:87
std::string asr_encoding
Definition: asr_interface.hh:86
std::string epd_type
Definition: asr_interface.hh:85
std::string model_path
Definition: asr_interface.hh:84
Attributes about epd.
Definition: speech_recognizer_interface.hh:51