117 lines
4.1 KiB
C#
Executable File
117 lines
4.1 KiB
C#
Executable File
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class LocalizedMockDataModel
|
|
{
|
|
public string Text;
|
|
public string LanguageCode;
|
|
public string VoiceName;
|
|
}
|
|
|
|
public class ViaggioAIDemo : MonoBehaviour
|
|
{
|
|
|
|
#region Inspector Properties
|
|
|
|
#endregion
|
|
|
|
#region Public Properties
|
|
|
|
#endregion
|
|
|
|
#region Private Properties
|
|
|
|
private List<RequestDataModel> mockRequestDataModels = new List<RequestDataModel>();
|
|
private int mockQuestionIndex = 0;
|
|
|
|
private List<LocalizedMockDataModel> mockSynthesisDataModels = new List<LocalizedMockDataModel>();
|
|
private int mockSynthesisIndex = 0;
|
|
|
|
#endregion
|
|
|
|
#region Framework Functions
|
|
|
|
void Awake()
|
|
{
|
|
this.createMockRequestDataModels();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Events
|
|
|
|
#endregion
|
|
|
|
#region Public Events
|
|
|
|
#endregion
|
|
|
|
#region Public Functions
|
|
|
|
public void StartMockIntentRecognition()
|
|
{
|
|
ViaggioAIManager.Instance.StartIntentRecognition(this.mockRequestDataModels[this.mockQuestionIndex].PossibleIntents);
|
|
}
|
|
|
|
public void SynthesizeNextMockText()
|
|
{
|
|
LocalizedMockDataModel localizedMockText = this.mockSynthesisDataModels[this.mockSynthesisIndex];
|
|
|
|
ViaggioAIManager.Instance.SynthesizeText(localizedMockText.Text, localizedMockText.LanguageCode, localizedMockText.VoiceName);
|
|
|
|
this.mockSynthesisIndex++;
|
|
if (this.mockSynthesisIndex >= this.mockSynthesisDataModels.Count)
|
|
{
|
|
this.mockSynthesisIndex = 0;
|
|
}
|
|
}
|
|
|
|
public void GotoNextMockIntent()
|
|
{
|
|
this.mockQuestionIndex++;
|
|
if (this.mockQuestionIndex >= this.mockRequestDataModels.Count)
|
|
{
|
|
this.mockQuestionIndex = 0;
|
|
}
|
|
|
|
this.StartMockIntentRecognition();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Private Functions
|
|
|
|
private void createMockRequestDataModels()
|
|
{
|
|
// Intent Recognition
|
|
RequestDataModel grottoRequestDataModel = new RequestDataModel();
|
|
grottoRequestDataModel.PossibleIntents.Add("Story_B_Grotto.Nachfrage_Nonna_Grotto.2", "Ich helfe in der Küche.");
|
|
grottoRequestDataModel.PossibleIntents.Add("Story_B_Grotto.Nachfrage_Nonna_Grotto.4", "Ich warte im Garten auf sie.");
|
|
this.mockRequestDataModels.Add(grottoRequestDataModel);
|
|
|
|
RequestDataModel zugabteilRequestDataModel = new RequestDataModel();
|
|
zugabteilRequestDataModel.PossibleIntents.Add("Zugabteil.Szenenwahl.4", "A (oder Picknick)");
|
|
zugabteilRequestDataModel.PossibleIntents.Add("Zugabteil.Szenenwahl.6", "B (oder Grotto)");
|
|
zugabteilRequestDataModel.PossibleIntents.Add("Zugabteil.Szenenwahl.8", "C (oder Wandern)");
|
|
this.mockRequestDataModels.Add(zugabteilRequestDataModel);
|
|
|
|
RequestDataModel castelliRequestDataModel = new RequestDataModel();
|
|
castelliRequestDataModel.PossibleIntents.Add("Castelli_di_Bellinzona.Intro.16", "Ja (oder gerne)");
|
|
castelliRequestDataModel.PossibleIntents.Add("Castelli_di_Bellinzona.Intro.18", "Nein");
|
|
this.mockRequestDataModels.Add(castelliRequestDataModel);
|
|
|
|
// Speech synthesis
|
|
this.mockSynthesisDataModels.Add(new LocalizedMockDataModel() { Text = "Dies ist ein deutscher Text in der deutschen Standard-Stimme", LanguageCode = "de-DE", VoiceName = null });
|
|
this.mockSynthesisDataModels.Add(new LocalizedMockDataModel() { Text = "Dies ist ein deutscher Text in der Stimme von Christoph", LanguageCode = "de-DE", VoiceName = "de-DE-ChristophNeural" });
|
|
|
|
this.mockSynthesisDataModels.Add(new LocalizedMockDataModel() { Text = "Questo è un testo italiano nella voce italiana standard", LanguageCode = "it-IT", VoiceName = null });
|
|
this.mockSynthesisDataModels.Add(new LocalizedMockDataModel() { Text = "Questo è un testo italiano con la voce di Benigno", LanguageCode = "it-IT", VoiceName = "it-IT-BenignoNeural" });
|
|
|
|
this.mockSynthesisDataModels.Add(new LocalizedMockDataModel() { Text = "这是艾玛后备多语言语音中的中文文本", LanguageCode = "zh-CN", VoiceName = null });
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|