Handling speech errors
parent
2bb1202530
commit
e61d80f2aa
|
@ -1,9 +1,32 @@
|
||||||
Tree("Root") {
|
Tree("Root") {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
BTC.InitializeSpeechManager()
|
BTC.InitializeSpeechManager()
|
||||||
BTC.SetVoiceName("de-DE-SeraphinaMultilingualNeural")
|
|
||||||
RunTree("10_SBB_Zugabteil_Intro")
|
Composite(Race) {
|
||||||
RunTree("10_SBB_Zugabteil_Szenenwahl_Selection")
|
Composite(Sequence) {
|
||||||
|
// Error in Speech Service: Cancel BTC Trees
|
||||||
|
BTC.SpeechErrorOccured()
|
||||||
|
BTC.SetBool("error")
|
||||||
|
}
|
||||||
|
|
||||||
|
Composite(Sequence) {
|
||||||
|
BTC.SetVoiceName("de-DE-SeraphinaMultilingualNeural")
|
||||||
|
RunTree("10_SBB_Zugabteil_Intro")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Composite(Sequence) {
|
||||||
|
BTC.CompareBool("error")
|
||||||
|
// Error Handling
|
||||||
|
BTC.AbortSpeechEventListener()
|
||||||
|
BTC.StopSpeechIntentRecognition()
|
||||||
|
BTC.ClearPossbileSpeechIntents()
|
||||||
|
|
||||||
|
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Restart")
|
||||||
|
BTC.Show("GO.HANDMENU.Option1Button")
|
||||||
|
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
||||||
|
BTC.Hide("GO.HANDMENU.Option1Button")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,39 @@
|
||||||
Tree("Root") {
|
Tree("Root") {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
BTC.InitializeSpeechManager()
|
BTC.InitializeSpeechManager() // delete in finale productive version
|
||||||
//BTC.SetSpeechRecognitionLanguage("it-IT")
|
//BTC.SetSpeechRecognitionLanguage("it-IT")
|
||||||
|
|
||||||
//RunTree("32_Grotto_Story_B_Grotto_Intro")
|
Composite(Race) {
|
||||||
|
Composite(Sequence) {
|
||||||
|
// Error in Speech Service: Cancel BTC Trees
|
||||||
|
BTC.SpeechErrorOccured()
|
||||||
|
BTC.SetBool("error")
|
||||||
|
}
|
||||||
|
|
||||||
RunTree("32_Grotto_Kueche_Intro")
|
Composite(Sequence) {
|
||||||
RunTree("32_Grotto_Kueche_Zwiebeln_schneiden")
|
//RunTree("32_Grotto_Story_B_Grotto_Intro")
|
||||||
RunTree("32_Grotto_Kueche_alles_gefunden")
|
|
||||||
//RunTree("32_Grotto_Kueche_Kochen_Anzahl")
|
RunTree("32_Grotto_Kueche_Intro")
|
||||||
//RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
RunTree("32_Grotto_Kueche_Zwiebeln_schneiden")
|
||||||
//RunTree("32_Grotto_Im_Grotto_Essen_Intro")
|
RunTree("32_Grotto_Kueche_alles_gefunden")
|
||||||
|
//RunTree("32_Grotto_Kueche_Kochen_Anzahl")
|
||||||
|
//RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
||||||
|
//RunTree("32_Grotto_Im_Grotto_Essen_Intro")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Composite(Sequence) {
|
||||||
|
BTC.CompareBool("error")
|
||||||
|
// Error Handling
|
||||||
|
BTC.AbortSpeechEventListener()
|
||||||
|
BTC.StopSpeechIntentRecognition()
|
||||||
|
BTC.ClearPossbileSpeechIntents()
|
||||||
|
|
||||||
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Restart")
|
||||||
|
BTC.Show("GO.GO.Option1Button")
|
||||||
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,27 +256,27 @@ Tree("32_Grotto_Story_B_Grotto_Intro") {
|
||||||
// Selector 3: Fallback Button
|
// Selector 3: Fallback Button
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
Composite(Marathon) {
|
Composite(Marathon) {
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Küche")
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Küche")
|
||||||
BTC.Show("GO.HANDMENU.Option1Button")
|
BTC.Show("GO.GO.Option1Button")
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option2Button", "text", "Garten")
|
BTC.Set("TextMeshPro.GO.Option2Button", "text", "Garten")
|
||||||
BTC.Show("GO.HANDMENU.Option2Button")
|
BTC.Show("GO.GO.Option2Button")
|
||||||
}
|
}
|
||||||
|
|
||||||
Composite(Race) {
|
Composite(Race) {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// Kueche
|
// Kueche
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Story_B_Grotto_Antwort_Nonna_Kueche")
|
RunTree("32_Grotto_Story_B_Grotto_Antwort_Nonna_Kueche")
|
||||||
}
|
}
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// Garten
|
// Garten
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.Run("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Story_B_Grotto_Antwort_Nonna_Grotto")
|
RunTree("32_Grotto_Story_B_Grotto_Antwort_Nonna_Grotto")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -843,27 +865,27 @@ Tree("32_Grotto_Kueche_alles_gefunden") {
|
||||||
|
|
||||||
// Fallback Button
|
// Fallback Button
|
||||||
Composite(Marathon) {
|
Composite(Marathon) {
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Ja")
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Ja")
|
||||||
BTC.Show("GO.HANDMENU.Option1Button")
|
BTC.Show("GO.GO.Option1Button")
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option2Button", "text", "Nein")
|
BTC.Set("TextMeshPro.GO.Option2Button", "text", "Nein")
|
||||||
BTC.Show("GO.HANDMENU.Option2Button")
|
BTC.Show("GO.GO.Option2Button")
|
||||||
}
|
}
|
||||||
|
|
||||||
Composite(Race) {
|
Composite(Race) {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// Ja
|
// Ja
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Kueche_Interesse_Kochen")
|
RunTree("32_Grotto_Kueche_Interesse_Kochen")
|
||||||
}
|
}
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// Nein
|
// Nein
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.Run("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -881,27 +903,27 @@ Tree("32_Grotto_Kueche_alles_gefunden") {
|
||||||
|
|
||||||
// Fallback Button
|
// Fallback Button
|
||||||
Composite(Marathon) {
|
Composite(Marathon) {
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Ja")
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Ja")
|
||||||
BTC.Show("GO.HANDMENU.Option1Button")
|
BTC.Show("GO.GO.Option1Button")
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option2Button", "text", "Nein")
|
BTC.Set("TextMeshPro.GO.Option2Button", "text", "Nein")
|
||||||
BTC.Show("GO.HANDMENU.Option2Button")
|
BTC.Show("GO.GO.Option2Button")
|
||||||
}
|
}
|
||||||
|
|
||||||
Composite(Race) {
|
Composite(Race) {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// Ja
|
// Ja
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Kueche_Interesse_Kochen")
|
RunTree("32_Grotto_Kueche_Interesse_Kochen")
|
||||||
}
|
}
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// Nein
|
// Nein
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.Run("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -915,24 +937,24 @@ Tree("32_Grotto_Kueche_Interesse_Kochen") {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
BTC.Run("AudioSource.AUDIO.Kueche1FInteresseK")
|
BTC.Run("AudioSource.AUDIO.Kueche1FInteresseK")
|
||||||
// ToDo: Freie Antwort als Speech Input
|
// ToDo: Freie Antwort als Speech Input
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Lasagne")
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Lasagne")
|
||||||
BTC.Show("GO.HANDMENU.Option1Button")
|
BTC.Show("GO.GO.Option1Button")
|
||||||
BTC.SetBool("32_Grotto_Kueche_Interesse_Kochen_Button_Clicked", false)
|
BTC.SetBool("32_Grotto_Kueche_Interesse_Kochen_Button_Clicked", false)
|
||||||
|
|
||||||
Composite(Race) {
|
Composite(Race) {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// Lieblingsessen nennen
|
// Lieblingsessen nennen
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.SetBool("32_Grotto_Kueche_Interesse_Kochen_Button_Clicked")
|
BTC.SetBool("32_Grotto_Kueche_Interesse_Kochen_Button_Clicked")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
RunTree("32_Grotto_Kueche_Kochen_Anzahl")
|
RunTree("32_Grotto_Kueche_Kochen_Anzahl")
|
||||||
}
|
}
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// keine Antwort
|
// keine Antwort
|
||||||
BTC.Wait(5)
|
BTC.Wait(5)
|
||||||
BTC.CompareBool("32_Grotto_Kueche_Interesse_Kochen_Button_Clicked", false)
|
BTC.CompareBool("32_Grotto_Kueche_Interesse_Kochen_Button_Clicked", false)
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -980,27 +1002,27 @@ Tree("32_Grotto_Kueche_Kochen_Anzahl") {
|
||||||
|
|
||||||
// Fallback Button
|
// Fallback Button
|
||||||
Composite(Marathon) {
|
Composite(Marathon) {
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "sehr oft")
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "sehr oft")
|
||||||
BTC.Show("GO.HANDMENU.Option1Button")
|
BTC.Show("GO.GO.Option1Button")
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option2Button", "text", "selten")
|
BTC.Set("TextMeshPro.GO.Option2Button", "text", "selten")
|
||||||
BTC.Show("GO.HANDMENU.Option2Button")
|
BTC.Show("GO.GO.Option2Button")
|
||||||
}
|
}
|
||||||
|
|
||||||
Composite(Race) {
|
Composite(Race) {
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// sehr oft
|
// sehr oft
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Kueche_Selbststaendig_Kochen")
|
RunTree("32_Grotto_Kueche_Selbststaendig_Kochen")
|
||||||
}
|
}
|
||||||
Composite(Sequence) {
|
Composite(Sequence) {
|
||||||
// selten
|
// selten
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option2Button")
|
BTC.Run("NamedEventTrigger.GO.Option2Button")
|
||||||
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option2Button")
|
BTC.Hide("GO.GO.Option2Button")
|
||||||
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
RunTree("32_Grotto_Kueche_Zusammen_Kochen")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1109,13 +1131,13 @@ Tree("32_Grotto_Kueche_Parmigiano") {
|
||||||
|
|
||||||
// Antwort User
|
// Antwort User
|
||||||
// ToDo: Sprache fehlt
|
// ToDo: Sprache fehlt
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Ja")
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Ja")
|
||||||
BTC.Show("GO.HANDMENU.Option1Button")
|
BTC.Show("GO.GO.Option1Button")
|
||||||
Composite(Race) {
|
Composite(Race) {
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.Wait(5)
|
BTC.Wait(5)
|
||||||
}
|
}
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
|
|
||||||
BTC.SynthesizeText("Bitte stelle den Risotto hier hin.")
|
BTC.SynthesizeText("Bitte stelle den Risotto hier hin.")
|
||||||
BTC.SpeechOutputEnded()
|
BTC.SpeechOutputEnded()
|
||||||
|
@ -1159,10 +1181,10 @@ Tree("32_Grotto_Kueche_Parmigiano") {
|
||||||
BTC.ClearPossbileSpeechIntents()
|
BTC.ClearPossbileSpeechIntents()
|
||||||
|
|
||||||
// Fallback Button
|
// Fallback Button
|
||||||
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Mein Name ist User.")
|
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Mein Name ist User.")
|
||||||
BTC.Show("GO.HANDMENU.Option1Button")
|
BTC.Show("GO.GO.Option1Button")
|
||||||
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
|
BTC.Run("NamedEventTrigger.GO.Option1Button")
|
||||||
BTC.Hide("GO.HANDMENU.Option1Button")
|
BTC.Hide("GO.GO.Option1Button")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -661,12 +661,14 @@ public class BTC : MonoBehaviour {
|
||||||
private ViaggioAIManager _speechMng { get { return ViaggioAIManager.Instance; } }
|
private ViaggioAIManager _speechMng { get { return ViaggioAIManager.Instance; } }
|
||||||
private RequestDataModel _requestDataModel = new RequestDataModel();
|
private RequestDataModel _requestDataModel = new RequestDataModel();
|
||||||
private string _recognizedIntentID = "";
|
private string _recognizedIntentID = "";
|
||||||
|
private string _speechErrorText = "";
|
||||||
private bool _onIntentRecognitionSucceededEventTriggered = false;
|
private bool _onIntentRecognitionSucceededEventTriggered = false;
|
||||||
private bool _onUserSpeechInputStartedEventTriggered = false;
|
private bool _onUserSpeechInputStartedEventTriggered = false;
|
||||||
private bool _onIntentRecognitionFailedEventTriggered = false;
|
private bool _onIntentRecognitionFailedEventTriggered = false;
|
||||||
private bool _onSpeechOutputStartedEventTriggered = false;
|
private bool _onSpeechOutputStartedEventTriggered = false;
|
||||||
private bool _onSpeechOutputEndedEventTriggered = false;
|
private bool _onSpeechOutputEndedEventTriggered = false;
|
||||||
private bool _abortSpeechEventListener = false;
|
private bool _abortSpeechEventListener = false;
|
||||||
|
private bool _onErrorEventTriggered = false;
|
||||||
|
|
||||||
void OnDisable()
|
void OnDisable()
|
||||||
{
|
{
|
||||||
|
@ -686,6 +688,9 @@ public class BTC : MonoBehaviour {
|
||||||
_speechMng.OnSpeechOutputStartedEvent += SpeechOutputStartedEventHandler;
|
_speechMng.OnSpeechOutputStartedEvent += SpeechOutputStartedEventHandler;
|
||||||
_speechMng.OnSpeechOutputEndedEvent += SpeechOutputEndedEventHandler;
|
_speechMng.OnSpeechOutputEndedEvent += SpeechOutputEndedEventHandler;
|
||||||
|
|
||||||
|
// Error Event
|
||||||
|
_speechMng.OnViaggioAIErrorEvent += SpeechErrorEventHandler;
|
||||||
|
|
||||||
Debug.Log("SubscribeToEvents successfull.");
|
Debug.Log("SubscribeToEvents successfull.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -699,6 +704,7 @@ public class BTC : MonoBehaviour {
|
||||||
_speechMng.OnIntentRecognitionFailedEvent -= IntentRecognitionFailedEventHandler;
|
_speechMng.OnIntentRecognitionFailedEvent -= IntentRecognitionFailedEventHandler;
|
||||||
_speechMng.OnSpeechOutputStartedEvent -= SpeechOutputStartedEventHandler;
|
_speechMng.OnSpeechOutputStartedEvent -= SpeechOutputStartedEventHandler;
|
||||||
_speechMng.OnSpeechOutputEndedEvent -= SpeechOutputEndedEventHandler;
|
_speechMng.OnSpeechOutputEndedEvent -= SpeechOutputEndedEventHandler;
|
||||||
|
_speechMng.OnViaggioAIErrorEvent -= SpeechErrorEventHandler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -728,6 +734,12 @@ public class BTC : MonoBehaviour {
|
||||||
_onSpeechOutputEndedEventTriggered = true;
|
_onSpeechOutputEndedEventTriggered = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SpeechErrorEventHandler(object sender, string errorText)
|
||||||
|
{
|
||||||
|
_onErrorEventTriggered = true;
|
||||||
|
_speechErrorText = errorText;
|
||||||
|
}
|
||||||
|
|
||||||
[Task]
|
[Task]
|
||||||
public async void InitializeSpeechManager()
|
public async void InitializeSpeechManager()
|
||||||
{
|
{
|
||||||
|
@ -943,6 +955,18 @@ public class BTC : MonoBehaviour {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Task]
|
||||||
|
public void SpeechErrorOccured()
|
||||||
|
{
|
||||||
|
if (_onErrorEventTriggered)
|
||||||
|
{
|
||||||
|
Task.SetSucceeded();
|
||||||
|
Debug.Log($"ERROR: Speech Service not working. Reason: {_speechErrorText}");
|
||||||
|
_onErrorEventTriggered = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Visited Stories Manager
|
#region Visited Stories Manager
|
||||||
|
|
Loading…
Reference in New Issue