Merge branch 'programming'
This commit is contained in:
commit
526b0cbb9b
BIN
Product/viaggio_pico_20260521.apk
Normal file
BIN
Product/viaggio_pico_20260521.apk
Normal file
Binary file not shown.
@ -180,9 +180,6 @@ Tree("05_Tutorial") {
|
||||
BTC.SetVoiceName("it-IT-FabiolaNeural")
|
||||
BTC.SynthesizeText("Cosa ti piace di più? Spaghetti, pizza o risotto?")
|
||||
BTC.SpeechOutputEnded()
|
||||
|
||||
BTC.SetSpeechRecognitionLanguage("de-DE")
|
||||
BTC.SetVoiceName("de-DE-SeraphinaMultilingualNeural")
|
||||
BTC.Show("GO.HINTS.SpeakHint")
|
||||
|
||||
BTC.AddPossbileSpeechIntent("Zugabteil-Tutorial-U-15")
|
||||
@ -199,6 +196,8 @@ Tree("05_Tutorial") {
|
||||
// -- Selector 1: Intent erkannt
|
||||
Composite(Sequence) {
|
||||
BTC.SpeechIntentRecognized()
|
||||
BTC.SetSpeechRecognitionLanguage("de-DE")
|
||||
BTC.SetVoiceName("de-DE-SeraphinaMultilingualNeural")
|
||||
|
||||
// Intent erkannt
|
||||
Composite(Race) {
|
||||
@ -239,6 +238,9 @@ Tree("05_Tutorial") {
|
||||
BTC.Show("GO.HANDMENU.Option3Button")
|
||||
}
|
||||
|
||||
BTC.SetSpeechRecognitionLanguage("de-DE")
|
||||
BTC.SetVoiceName("de-DE-SeraphinaMultilingualNeural")
|
||||
|
||||
Composite(Race) {
|
||||
Composite(Sequence) {
|
||||
// Spaghetti
|
||||
@ -290,6 +292,8 @@ Tree("05_Tutorial") {
|
||||
BTC.AbortSpeechEventListener()
|
||||
BTC.StopSpeechIntentRecognition()
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
BTC.SetSpeechRecognitionLanguage("de-DE")
|
||||
BTC.SetVoiceName("de-DE-SeraphinaMultilingualNeural")
|
||||
|
||||
Composite(Sequence) {
|
||||
Composite(Marathon) {
|
||||
|
||||
@ -11,8 +11,19 @@
|
||||
BTC.SetBool("error")
|
||||
}
|
||||
|
||||
Composite(Sequence) {
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Intro")
|
||||
Composite(Selector) {
|
||||
Composite(Sequence) {
|
||||
// Check KI Chat
|
||||
BTC.CheckEntryLevel(2)
|
||||
BTC.SetBool("InitOffeneFragen")
|
||||
BTC.Run("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle02")
|
||||
BTC.ResetEntryLevel(2)
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
|
||||
}
|
||||
|
||||
Composite(Sequence) {
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Intro")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -281,65 +292,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
|
||||
}
|
||||
}
|
||||
|
||||
// --- Castelli di Bellinzona - Outro ---
|
||||
Composite(Marathon) {
|
||||
BTC.Hide("GO.HINTS.SpeechErrorHint")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_12")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle02")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle04")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotInterak_FIdle02")
|
||||
}
|
||||
BTC.Run("MediaPlayer.VIDEOS.OutroF1")
|
||||
BTC.Run("MediaPlayer.VIDEOS.OutroFidle2")
|
||||
|
||||
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Outro-U-2a")
|
||||
BTC.StartSpeechIntentRecognition()
|
||||
BTC.Show("GO.HINTS.SpeakHint")
|
||||
|
||||
Composite(Race) {
|
||||
// -- Race 1: User sagt etwas
|
||||
Composite(Sequence) {
|
||||
BTC.UserStartedSpeechInput()
|
||||
BTC.Hide("GO.HINTS.SpeakHint")
|
||||
|
||||
Composite(Selector) {
|
||||
// -- Selector 1: Intent erkannt
|
||||
Composite(Sequence) {
|
||||
BTC.SpeechIntentRecognized()
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
}
|
||||
|
||||
// -- Selector 2: Intent nicht erkannt
|
||||
Composite(Sequence) {
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -- Race 2: User sagt nichts
|
||||
Composite(Sequence) {
|
||||
BTC.Wait(5)
|
||||
BTC.CompareUserSpeechInputStarted(false)
|
||||
BTC.AbortSpeechEventListener()
|
||||
BTC.StopSpeechIntentRecognition()
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
BTC.Hide("GO.HINTS.SpeakHint")
|
||||
}
|
||||
}
|
||||
|
||||
BTC.Hide("MediaPlayer.VIDEOS.OutroFidle2")
|
||||
|
||||
Composite(Marathon) {
|
||||
BTC.Run("MediaPlayer.VIDEOS.OutroF3")
|
||||
|
||||
Composite(Sequence) {
|
||||
BTC.Wait(2.5)
|
||||
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
|
||||
}
|
||||
}
|
||||
|
||||
BTC.SetStoryAVisited()
|
||||
BTC.Run("LoadScene.NEXT.10SBB")
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Outro")
|
||||
}
|
||||
}
|
||||
|
||||
@ -636,6 +589,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen_Entscheidung_Offene_Frag
|
||||
BTC.CompareIntentID("Castelli_di_Bellinzona-Chatbot_Burgen-U-12b")
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
// Go to Outro
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Outro")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -671,6 +625,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen_Entscheidung_Offene_Frag
|
||||
BTC.Hide("GO.GO.Option2Button")
|
||||
BTC.Hide("GO.GO.SpeechOptions")
|
||||
// Go To Outro
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Outro")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -708,6 +663,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen") {
|
||||
BTC.Show("GO.Canvaspanoramatafelslideshow.SlideshowChatbot")
|
||||
}
|
||||
BTC.Show("GO.HINTS.StandUpHint")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle02")
|
||||
}
|
||||
|
||||
Composite(Marathon) {
|
||||
@ -748,6 +704,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen") {
|
||||
BTC.Wait(10)
|
||||
BTC.CompareBool("UserStartetBot", false)
|
||||
BTC.AbortEventListener("NamedPokeEvent.INTERACTABLES.ChatbotButton")
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Outro")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -770,5 +727,71 @@ Tree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_Interaktion") {
|
||||
BTC.ChatbotConversationEnded()
|
||||
BTC.SpeechOutputEnded()
|
||||
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_End")
|
||||
|
||||
RunTree("26_Castello_Castelli_di_Bellinzona_Outro")
|
||||
}
|
||||
}
|
||||
|
||||
Tree("26_Castello_Castelli_di_Bellinzona_Outro") {
|
||||
// --- Castelli di Bellinzona - Outro ---
|
||||
Composite(Sequence) {
|
||||
Composite(Marathon) {
|
||||
BTC.Hide("GO.HINTS.SpeechErrorHint")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_12")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle02")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle04")
|
||||
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotInterak_FIdle02")
|
||||
}
|
||||
BTC.Run("MediaPlayer.VIDEOS.OutroF1")
|
||||
BTC.Run("MediaPlayer.VIDEOS.OutroFidle2")
|
||||
|
||||
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Outro-U-2a")
|
||||
BTC.StartSpeechIntentRecognition()
|
||||
BTC.Show("GO.HINTS.SpeakHint")
|
||||
|
||||
Composite(Race) {
|
||||
// -- Race 1: User sagt etwas
|
||||
Composite(Sequence) {
|
||||
BTC.UserStartedSpeechInput()
|
||||
BTC.Hide("GO.HINTS.SpeakHint")
|
||||
|
||||
Composite(Selector) {
|
||||
// -- Selector 1: Intent erkannt
|
||||
Composite(Sequence) {
|
||||
BTC.SpeechIntentRecognized()
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
}
|
||||
|
||||
// -- Selector 2: Intent nicht erkannt
|
||||
Composite(Sequence) {
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -- Race 2: User sagt nichts
|
||||
Composite(Sequence) {
|
||||
BTC.Wait(5)
|
||||
BTC.CompareUserSpeechInputStarted(false)
|
||||
BTC.AbortSpeechEventListener()
|
||||
BTC.StopSpeechIntentRecognition()
|
||||
BTC.ClearPossbileSpeechIntents()
|
||||
BTC.Hide("GO.HINTS.SpeakHint")
|
||||
}
|
||||
}
|
||||
|
||||
BTC.Hide("MediaPlayer.VIDEOS.OutroFidle2")
|
||||
|
||||
Composite(Marathon) {
|
||||
BTC.Run("MediaPlayer.VIDEOS.OutroF3")
|
||||
|
||||
Composite(Sequence) {
|
||||
BTC.Wait(2.5)
|
||||
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
|
||||
}
|
||||
}
|
||||
|
||||
BTC.SetStoryAVisited()
|
||||
BTC.Run("LoadScene.NEXT.10SBB")
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8f4c1440ae5ec414dbc7d3a5c54dda6b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1035,7 +1035,7 @@ public class BTC : MonoBehaviour {
|
||||
string languageCode = "it-IT";
|
||||
string instructions = "Rispondi sempre in italiano. Rispondi in lingua colloquiale al livelli di competenza A2 di quadro comune europeo di riferimento per la conoscenza delle lingue.";
|
||||
string context = "Sei un essere onnisciente che risponde esclusivamente a domande sulla cultura e la storia del Cantone Ticino e dei Castelli di Bellinzona. Parla <Ciao, cosa vuoi sapere? Sono un’intelligenza artificiale>. Rispondi sempre nel modo più conciso possibile. Suddividi le domande in passaggi più piccoli e sviluppale. Chiedi se hanno capito tutto. La conversazione ha inizio.";
|
||||
int maxRoundTrips = 5;
|
||||
int maxRoundTrips = 10;
|
||||
float maxSilenceBeforeTimeOut = 10;
|
||||
string outroText = $"Grazie mille, la conversazione è finita.";
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
2025-08-04T16:03:18.8396148Z
|
||||
2026-05-21T15:25:17.3240080Z
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,6 +7,7 @@ public static class EntryLevel
|
||||
/* Entry Levels:
|
||||
* 0: Minigame SBB
|
||||
* 1: Minigame Grotto
|
||||
* 1: KI-Chat Castello
|
||||
*/
|
||||
public static bool[] entries = new bool[2];
|
||||
public static bool[] entries = new bool[3];
|
||||
}
|
||||
|
||||
@ -48,6 +48,12 @@ public class LevelManager : MonoBehaviour
|
||||
// This method is called when a button is clicked, and loads the given scene by name
|
||||
public void OnClickLoadLevel(string sceneName)
|
||||
{
|
||||
if (sceneName == "2.6-Castello-KI")
|
||||
{
|
||||
EntryLevel.entries[2] = true;
|
||||
sceneName = "2.6-Castello";
|
||||
}
|
||||
|
||||
StartCoroutine(LoadAsyncScene(sceneName));
|
||||
}
|
||||
|
||||
|
||||
8
Viagg-io/Assets/Scripts/SessionGUID.cs
Normal file
8
Viagg-io/Assets/Scripts/SessionGUID.cs
Normal file
@ -0,0 +1,8 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public static class SessionGUID
|
||||
{
|
||||
public static string identifier;
|
||||
}
|
||||
11
Viagg-io/Assets/Scripts/SessionGUID.cs.meta
Normal file
11
Viagg-io/Assets/Scripts/SessionGUID.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b63e9ca65aed434fbdb188cd20d61da
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -252,6 +252,7 @@ public class IntentRecognitionService : MonoBehaviour
|
||||
|
||||
IntentRecogntionTrackingItem newIntentRecogntionTrackingItem = new IntentRecogntionTrackingItem()
|
||||
{
|
||||
SessionID = vaim.SessionUID,
|
||||
UserInput = pendingRequestDataModel.InputText,
|
||||
Intent = reply
|
||||
};
|
||||
|
||||
7
Viagg-io/Assets/afca/ViaggioAI/Scripts/AIServices/SpeechRecognitionService.cs
Executable file → Normal file
7
Viagg-io/Assets/afca/ViaggioAI/Scripts/AIServices/SpeechRecognitionService.cs
Executable file → Normal file
@ -144,7 +144,10 @@ public class SpeechRecognitionService : MonoBehaviour
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
this.initialize(this.initialRecognitionLanguageCode);
|
||||
if (this.speechConfig == null)
|
||||
{
|
||||
this.initialize(this.initialRecognitionLanguageCode);
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
@ -286,7 +289,7 @@ public class SpeechRecognitionService : MonoBehaviour
|
||||
this.speechConfig.SpeechRecognitionLanguage = languageCode;
|
||||
|
||||
string micName = (Microphone.devices != null && Microphone.devices.Length > 0) ? Microphone.devices[0] : "<none>";
|
||||
this.logIfInDebugMode($"SpeechRecognitionService initialized using microphone: {micName}");
|
||||
this.logIfInDebugMode($"SpeechRecognitionService initialized using microphone: {micName} and languageCode {languageCode}");
|
||||
|
||||
this.SpeechRecognitionState = ESpeechRecognitionState.Ready;
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ using UnityEngine;
|
||||
|
||||
public class IntentRecogntionTrackingItem
|
||||
{
|
||||
public string SessionID;
|
||||
public string UserInput;
|
||||
public string Intent;
|
||||
}
|
||||
|
||||
@ -66,6 +66,8 @@ public class ViaggioAIManager : MonoBehaviour
|
||||
|
||||
#endregion
|
||||
|
||||
public string SessionUID { get; private set; }
|
||||
|
||||
#region ViaggioAIState
|
||||
|
||||
private EViaggioAIState _viaggioAIState = EViaggioAIState.Idle;
|
||||
@ -111,6 +113,19 @@ public class ViaggioAIManager : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
Instance = this;
|
||||
|
||||
// Check if SessionGUID is already set, if not generate a new one
|
||||
if (string.IsNullOrEmpty(SessionGUID.identifier))
|
||||
{
|
||||
SessionGUID.identifier = System.Guid.NewGuid().ToString();
|
||||
this.LogIfInDebugMode($"Session UID generated: {SessionGUID.identifier}");
|
||||
}
|
||||
else
|
||||
{
|
||||
this.LogIfInDebugMode($"Session UID already exists: {SessionGUID.identifier}");
|
||||
}
|
||||
|
||||
this.SessionUID = SessionGUID.identifier;
|
||||
}
|
||||
|
||||
void OnEnable()
|
||||
@ -144,6 +159,7 @@ public class ViaggioAIManager : MonoBehaviour
|
||||
|
||||
public void SetSpeechRecognitionLanguage(string languageCode)
|
||||
{
|
||||
this.LogIfInDebugMode($"ViaggioAIManager: Set speech language to {languageCode}");
|
||||
this.SpeechRecognitionService.SetRecognitionLanguage(languageCode);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user