From 367c61b90eebc53b130d15d64f147d64b87865a0 Mon Sep 17 00:00:00 2001 From: Gregoire Date: Tue, 5 Oct 2021 11:21:19 +0900 Subject: [PATCH] Added the text-to-speech model --- Assets/AXIP/AILIA-MODELS/TextToSpeech.meta | 8 + .../TextToSpeech/AiliaTextToSpeechSample.cs | 151 ++ .../AiliaTextToSpeechSample.cs.meta | 11 + .../AILIA-MODELS/TextToSpeech/AiliaTts.cs | 418 ++++++ .../TextToSpeech/AiliaTts.cs.meta | 11 + Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE | 21 + .../AILIA-MODELS/TextToSpeech/LICENSE.meta | 7 + .../TextToSpeech/TextToSpeechSample.unity | 1266 +++++++++++++++++ .../TextToSpeechSample.unity.meta | 7 + .../AILIA-MODELS/TextToSpeech/ThreadedJob.cs | 81 ++ .../TextToSpeech/ThreadedJob.cs.meta | 11 + .../common/Scripts/AiliaDownload.cs | 2 +- .../AXIP/AILIA/Scripts/Models/AiliaModel.cs | 6 + README.md | 6 + 14 files changed, 2005 insertions(+), 1 deletion(-) create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech.meta create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs.meta create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs.meta create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE.meta create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity.meta create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs create mode 100644 Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs.meta diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech.meta b/Assets/AXIP/AILIA-MODELS/TextToSpeech.meta new file mode 100644 index 00000000..17d37a8f --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc7d3ccdf5c88544a8925a82fa42b308 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs new file mode 100644 index 00000000..af26976a --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs @@ -0,0 +1,151 @@ +/* AILIA Unity Plugin Classifier Sample */ +/* Copyright 2018-2019 AXELL CORPORATION */ + +using System.Collections; +using System.Collections.Generic; +using System; +using System.IO; +using System.Runtime.InteropServices; + +using UnityEngine; +using UnityEngine.UI; + +namespace ailiaSDK +{ + public class AiliaTextToSpeechSample : AiliaRenderer + { + [SerializeField] + private GameObject UICanvas = null; + + //Settings + [SerializeField] + private bool gpu_mode = true; + + //Output buffer + public Text mode_text = null; + public Text label_text = null; + public InputField inputField; + public GameObject inferenceButton; + public GameObject spinner; + + //ailia Instance + private AiliaDownload ailia_download = new AiliaDownload(); + + private AiliaTts ailiaTts; + private AiliaTextToSpeechThreadedJob ttsJob; + + // AILIA open file + private bool FileOpened = false; + + private void CreateAilia() + { + string asset_path = Application.temporaryCachePath; + var urlList = new List(); + + ailiaTts = new AiliaTts(ailia_download); + StartCoroutine(ailiaTts.Initialize(gpu_mode, (success) => + { + FileOpened = success; + + if (success) + { + inputField.gameObject.SetActive(true); + inferenceButton.SetActive(true); + } + } + )); + } + + private void DestroyAilia() + { + ailiaTts.Dispose(); + } + + void Start() + { + mode_text.text = "ailia Text to speech"; + SetUIProperties(); + CreateAilia(); + } + + private void Update() + { + if (spinner.activeSelf) + { + spinner.transform.localRotation = Quaternion.Euler(spinner.transform.localRotation.eulerAngles + 0.75f * Vector3.back); + } + } + + public void RunSpeechInference() + { + if (ttsJob == null) + { + StartCoroutine(RunSpeechInferenceCoroutine()); + } + } + + private IEnumerator RunSpeechInferenceCoroutine() + { + spinner.SetActive(true); + ttsJob = new AiliaTextToSpeechThreadedJob(ailiaTts, inputField.text); + ttsJob.Start(); + yield return ttsJob.WaitFor(); + spinner.SetActive(false); + PlaySamples(ttsJob.samples); + ttsJob = null; + } + + private void PlaySamples(float[] samples) + { + AudioClip clip = AudioClip.Create("output", samples.Length, 1, 22050, false); + AudioSource source; + + try + { + source = gameObject.GetComponent(); + + if (source == null) + { + source = gameObject.AddComponent(); + } + } + catch + { + source = gameObject.AddComponent(); + } + source.Stop(); + source.volume = 0.3f; + clip.SetData(samples, 0); + source.clip = clip; + source.Play(); + } + + + void SetUIProperties() + { + if (UICanvas == null) return; + // Set up UI for AiliaDownloader + var downloaderProgressPanel = UICanvas.transform.Find("DownloaderProgressPanel"); + ailia_download.DownloaderProgressPanel = downloaderProgressPanel.gameObject; + // Set up lines + line_panel = UICanvas.transform.Find("LinePanel").gameObject; + lines = UICanvas.transform.Find("LinePanel/Lines").gameObject; + line = UICanvas.transform.Find("LinePanel/Lines/Line").gameObject; + text_panel = UICanvas.transform.Find("TextPanel").gameObject; + text_base = UICanvas.transform.Find("TextPanel/TextHolder").gameObject; + + label_text = UICanvas.transform.Find("LabelText").gameObject.GetComponent(); + mode_text = UICanvas.transform.Find("ModeLabel").gameObject.GetComponent(); + } + + void OnApplicationQuit() + { + DestroyAilia(); + } + + void OnDestroy() + { + DestroyAilia(); + } + } +} \ No newline at end of file diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs.meta b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs.meta new file mode 100644 index 00000000..10cd384a --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTextToSpeechSample.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2051cfa1f0fb6774bb4f5c15e8f51120 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs new file mode 100644 index 00000000..5ecbbede --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs @@ -0,0 +1,418 @@ +using ailiaSDK; +using Assets.Scripts; +using NWaves.Filters.Base; +using NWaves.Signals; +using NWaves.Transforms; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using UnityEngine; + +struct JsonWave +{ + public float[] samples; +} + +struct HyperParameters +{ + public static int n_fft = 2048; // fft points (samples) + public static float power = 1.5f; // Exponent for amplifying the predicted magnitude + public static int n_iter = 50; // Number of inversion iterations + public static float preemphasis = .97f; + public static float max_db = 100; + public static float ref_db = 20; + public static int sr = 22050; // Sampling rate + public static float frame_shift = 0.0125f; // seconds + public static float frame_length = 0.05f; // seconds + public static int hop_length = Mathf.RoundToInt(sr * frame_shift); // samples. =276. + public static int win_length = Mathf.RoundToInt(sr * frame_length); // samples. =1102. +} + +class AiliaTextToSpeechThreadedJob : ThreadedJob +{ + public float[] samples { get; private set; } + + private AiliaTts ailiaTts; + private string textToSpeak; + + public AiliaTextToSpeechThreadedJob(AiliaTts ailiaTts, string textToSpeak) + { + this.ailiaTts = ailiaTts; + this.textToSpeak = textToSpeak; + } + + protected override void ThreadFunction() + { + samples = ailiaTts.RunTTSInference(textToSpeak); + } +} + +public class AiliaTts : MonoBehaviour, IDisposable +{ + private AiliaDownload ailiaDownload; + private AiliaModel ailiaText2Mel = new AiliaModel(); + private AiliaModel ailiaSsr = new AiliaModel(); + + public bool gpuMode { get; private set; } + + static readonly string validCharacters = "PE abcdefghijklmnopqrstuvwxyz'.?"; + static readonly int endOfSentenceIndex = validCharacters.IndexOf("E"); + static readonly int maxText2MelIterations = 210; + static readonly uint melSpectrogramSize = 80; + + public AiliaTts(AiliaDownload ailiaDownload) + { + this.ailiaDownload = ailiaDownload ?? new AiliaDownload(); + } + + public IEnumerator Initialize(bool gpuMode, Action onCompleted) + { + this.gpuMode = gpuMode; + string assetPath = Application.temporaryCachePath; + string folderPath = "pytorch-dc-tts"; + string text2MelModelName = "text2mel"; + string ssrnModelName = "ssrn"; + + // captioning feature extraction + if (gpuMode) + { + ailiaText2Mel.Environment(Ailia.AILIA_ENVIRONMENT_TYPE_GPU); + } + + yield return ailiaDownload.DownloadWithProgressFromURL(new ModelDownloadURL[] { + new ModelDownloadURL() { folder_path = folderPath, file_name = $"{text2MelModelName}.onnx.prototxt" }, + new ModelDownloadURL() { folder_path = folderPath, file_name = $"{text2MelModelName}.onnx" }, + new ModelDownloadURL() { folder_path = folderPath, file_name = $"{ssrnModelName}.onnx.prototxt" }, + new ModelDownloadURL() { folder_path = folderPath, file_name = $"{ssrnModelName}.onnx" } + }.ToList(), () => + { + bool status = false; + + status = ailiaText2Mel.OpenFile($"{assetPath}/{text2MelModelName}.onnx.prototxt", $"{assetPath}/{text2MelModelName}.onnx"); + + if (status == false) + { + Debug.LogError($"Could not load model {text2MelModelName} at '{assetPath}': {ailiaText2Mel.GetErrorDetail()}"); + onCompleted(false); + return; + } + + status = ailiaSsr.OpenFile($"{assetPath}/{ssrnModelName}.onnx.prototxt", $"{assetPath}/{ssrnModelName}.onnx"); + + if (status == false) + { + Debug.LogError($"Could not load model {ssrnModelName} at '{assetPath}': {ailiaSsr.GetErrorDetail()}"); + onCompleted(false); + return; + } + + onCompleted(true); + return; + }); + } + + private string Preprocess(string sentence) + { + StringBuilder builder = new StringBuilder(); + + foreach (var c in sentence.Normalize(NormalizationForm.FormD)) + { + if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark) + { + builder.Append(c); + } + } + + return builder.ToString().ToLower().Replace($"[^{validCharacters}]", " ").Replace("[ ]+", " ").Trim() + "E"; + } + + float[] convertSentenceToIndices(string sentence) + { + float[] indices = new float[sentence.Length]; + + for (int i = 0; i < sentence.Length; ++i) + { + indices[i] = validCharacters.IndexOf(sentence[i]); + } + + return indices; + } + + public float[] RunTTSInference(string inputSentence) + { + float[] inputArray = convertSentenceToIndices(Preprocess(inputSentence)); + float[] melSpectrogram = RunText2MelInference(inputArray); + float[] superMelSpectrogram = RunSSRInference(melSpectrogram); + + Debug.Log(superMelSpectrogram.Length); + + float[] rawAudioSamples = DecodeSRMelSpectrogram(superMelSpectrogram); + + Debug.Log("TTS inference done"); + + return rawAudioSamples; + } + + private float[] DecodeSRMelSpectrogram(float[] superMelSpectrogram) + { + int samplesSize = superMelSpectrogram.Length / (1 + HyperParameters.n_fft / 2); + float[] inputArray = new float[superMelSpectrogram.Length]; + + for (int i = 0; i < inputArray.Length; ++i) + { + float exp = (Mathf.Clamp(superMelSpectrogram[i], 0, 1) * HyperParameters.max_db) - HyperParameters.max_db + HyperParameters.ref_db; + inputArray[i] = Mathf.Pow(10, 0.05f * exp); + } + + Stft stft = new Stft(HyperParameters.win_length, HyperParameters.hop_length, NWaves.Windows.WindowTypes.Hann, HyperParameters.n_fft); + List signal = inputArray + .Select((sample, idx) => (sample, idx)) + .GroupBy(t => t.idx % samplesSize) + .Select(g => g.Select(t => Mathf.Pow(t.sample, HyperParameters.power)).ToArray()) + .ToList(); + + var griffinLim = new NWaves.Operations.GriffinLimReconstructor(signal, stft, 1); + float[] reconstructed = griffinLim.Reconstruct(HyperParameters.n_iter); + + var filter = new FirFilter(new float[] { -HyperParameters.preemphasis }); + + reconstructed = filter.ProcessAllSamples(reconstructed); + + return reconstructed; + } + + private float[] RunText2MelInference(float[] inputArray) + { + bool status; + + int sentenceInputBlobIndex = ailiaText2Mel.FindBlobIndexByName("input.1"); + int spectrogramInputBlobIndex = ailiaText2Mel.FindBlobIndexByName("input.2"); + int spectrogramOutputBlobIndex = ailiaText2Mel.FindBlobIndexByName("output.2"); + int attentionOutputBlobIndex = ailiaText2Mel.FindBlobIndexByName("output.3"); + + Ailia.AILIAShape sentenceShape = new Ailia.AILIAShape + { + x = (uint)inputArray.Length, + y = 1, + z = 1, + w = 1, + dim = 2 + }; + Ailia.AILIAShape spectrogramShape = new Ailia.AILIAShape + { + x = 1, + y = melSpectrogramSize, + z = 1, + w = 1, + dim = 3 + }; + List spectrogram = new List((int) spectrogramShape.y); + spectrogram.AddRange(Enumerable.Repeat(0f, ((int) spectrogramShape.y))); + + status = ailiaText2Mel.SetInputBlobShape(sentenceShape, sentenceInputBlobIndex); + + if (status == false) + { + Debug.LogError($"Could not set sentence input blob shape"); + Debug.LogError(ailiaText2Mel.GetErrorDetail()); + return new float[0]; + } + + status = ailiaText2Mel.SetInputBlobData(inputArray, sentenceInputBlobIndex); + + if (status == false) + { + Debug.LogError("Could not set sentence input blob data"); + Debug.LogError(ailiaText2Mel.GetErrorDetail()); + return new float[0]; + } + + for (int i = 0; i < maxText2MelIterations; ++i) + { + status = ailiaText2Mel.SetInputBlobShape(spectrogramShape, spectrogramInputBlobIndex); + + if (status == false) + { + Debug.LogError($"Could not set spectrogram input blob shape"); + return new float[0]; + } + + status = ailiaText2Mel.SetInputBlobData(spectrogram.ToArray(), spectrogramInputBlobIndex); + + if (status == false) + { + Debug.LogError("Could not set spectrogram input blob data"); + Debug.LogError(ailiaText2Mel.GetErrorDetail()); + return new float[0]; + } + + status = ailiaText2Mel.Update(); + + if (status == false) + { + Debug.LogError("Error while running text2mel inference"); + Debug.LogError(ailiaText2Mel.GetErrorDetail()); + return new float[0]; + } + + + Ailia.AILIAShape spectrogramOutputShape = ailiaText2Mel.GetBlobShape(spectrogramOutputBlobIndex); + float[] spectrogramOutputArray = new float[spectrogramOutputShape.x * spectrogramOutputShape.y * spectrogramOutputShape.z]; + + status = ailiaText2Mel.GetBlobData(spectrogramOutputArray, spectrogramOutputBlobIndex); + + if (status == false) + { + Debug.LogError("Could not get spectrogram output blob data "); + Debug.LogError(ailiaText2Mel.GetErrorDetail()); + return new float[0]; + } + + spectrogram.Clear(); + + for (int k = 0; k < spectrogramOutputShape.y; ++k) + { + for (int j = 0; j < spectrogramOutputShape.x + 1; ++j) + { + spectrogram.Add(j == 0 ? 0 : spectrogramOutputArray[k * ((int) spectrogramOutputShape.x) + (j - 1)]); + } + } + + spectrogramShape.x = spectrogramOutputShape.x + 1; + + + Ailia.AILIAShape attentionShape = ailiaText2Mel.GetBlobShape(attentionOutputBlobIndex); + float[] attentionArray = new float[attentionShape.x * attentionShape.y * attentionShape.z]; + + status = ailiaText2Mel.GetBlobData(attentionArray, attentionOutputBlobIndex); + + if (status == false) + { + Debug.LogError("Could not get attention output blob data "); + Debug.LogError(ailiaText2Mel.GetErrorDetail()); + return new float[0]; + } + + int maxIndex = 0; + float maxAttention = -1; + + for (int j = 0; j < attentionShape.y; ++j) + { + float attention = attentionArray[(j + 1) * attentionShape.x - 1]; + + if (attention > maxAttention) + { + maxIndex = j; + maxAttention = attention; + } + } + + if (inputArray[maxIndex] == endOfSentenceIndex) + { + Debug.Log($"End of text2mel inference at {i}"); + break; + } + } + + Debug.Log("DONE"); + + return spectrogram.ToArray(); + } + + private float[] RunSSRInference(float[] inputArray) + { + bool status; + + int inputBlobIndex = ailiaSsr.FindBlobIndexByName("input.1"); + int outputBlobIndex = ailiaSsr.FindBlobIndexByName("output.2"); + Ailia.AILIAShape inputShape = new Ailia.AILIAShape + { + x = ((uint) inputArray.Length) / melSpectrogramSize, + y = melSpectrogramSize, + z = 1, + w = 1, + dim = 3 + }; + + status = ailiaSsr.SetInputBlobShape(inputShape, inputBlobIndex); + + if (status == false) + { + Debug.LogError($"Could not set input blob shape"); + Debug.LogError(ailiaSsr.GetErrorDetail()); + return new float[0]; + } + + status = ailiaSsr.SetInputBlobData(inputArray, inputBlobIndex); + + if (status == false) + { + Debug.LogError("Could not set input blob data"); + Debug.LogError(ailiaSsr.GetErrorDetail()); + return new float[0]; + } + + status = ailiaSsr.Update(); + + if (status == false) + { + Debug.LogError("Error while running ssrn inference"); + Debug.LogError(ailiaSsr.GetErrorDetail()); + return new float[0]; + } + + Ailia.AILIAShape outputShape = ailiaSsr.GetBlobShape(outputBlobIndex); + float[] outputArray = new float[outputShape.x * outputShape.y * outputShape.z]; + + status = ailiaSsr.GetBlobData(outputArray, outputBlobIndex); + + if (status == false) + { + Debug.LogError("Could not get output blob data "); + Debug.LogError(ailiaSsr.GetErrorDetail()); + return new float[0]; + } + + return outputArray; + } + + #region IDisposable Support + private bool disposedValue = false; // To detect redundant calls + + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + ailiaText2Mel.Close(); + ailiaSsr.Close(); + ailiaText2Mel = null; + ailiaSsr = null; + } + + disposedValue = true; + } + } + + // TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources. + ~AiliaTts() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(false); + } + + // This code added to correctly implement the disposable pattern. + public void Dispose() + { + // Do not change this code. Put cleanup code in Dispose(bool disposing) above. + Dispose(true); + // TODO: uncomment the following line if the finalizer is overridden above. + GC.SuppressFinalize(this); + } + #endregion +} diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs.meta b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs.meta new file mode 100644 index 00000000..3975ebe6 --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/AiliaTts.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d4bd2a0575408d846862b97d02f02127 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE b/Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE new file mode 100644 index 00000000..8ea720ae --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Erdene-Ochir Tuguldur + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE.meta b/Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE.meta new file mode 100644 index 00000000..4a24e114 --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/LICENSE.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 538e3b4af8e1e7a4c879bb60ee7abbac +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity b/Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity new file mode 100644 index 00000000..73782a34 --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity @@ -0,0 +1,1266 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 0 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!114 &66576881 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 114248270574527214, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &134548559 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1390452760564612, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &284098717 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 114335148288096466, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_Color.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114335148288096466, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_Color.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 114335148288096466, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_Color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 223000755135152570, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_Camera + value: + objectReference: {fileID: 900571250} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b13fba7fbe84549eaad325ff3431cb6f, type: 3} +--- !u!1 &284098718 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1829679373486840, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} +--- !u!224 &284098719 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 224061873275276470, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} +--- !u!1 &430970142 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 430970143} + - component: {fileID: 430970145} + - component: {fileID: 430970144} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &430970143 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430970142} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1533568178} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &430970144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430970142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &430970145 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 430970142} + m_CullTransparentMesh: 0 +--- !u!1 &437166881 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 437166882} + - component: {fileID: 437166883} + m_Layer: 0 + m_Name: TextToSpeechController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &437166882 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 437166881} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 481, y: 250, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &437166883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 437166881} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2051cfa1f0fb6774bb4f5c15e8f51120, type: 3} + m_Name: + m_EditorClassIdentifier: + line_panel: {fileID: 1255283545} + lines: {fileID: 1779762464} + line: {fileID: 284098718} + text_panel: {fileID: 1966900788} + text_base: {fileID: 134548559} + UICanvas: {fileID: 1166538630} + gpu_mode: 1 + mode_text: {fileID: 66576881} + label_text: {fileID: 1581251166} + inputField: {fileID: 1533568179} + inferenceButton: {fileID: 1239394255} + spinner: {fileID: 1751653912} +--- !u!1 &489979542 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 489979544} + - component: {fileID: 489979543} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &489979543 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 489979542} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &489979544 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 489979542} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &663354113 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 663354116} + - component: {fileID: 663354115} + - component: {fileID: 663354114} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &663354114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663354113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &663354115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663354113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &663354116 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663354113} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &900571246 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 900571251} + - component: {fileID: 900571250} + - component: {fileID: 900571248} + - component: {fileID: 900571247} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &900571247 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 900571246} + m_Enabled: 1 +--- !u!124 &900571248 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 900571246} + m_Enabled: 1 +--- !u!20 &900571250 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 900571246} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &900571251 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 900571246} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!1 &969126498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 969126499} + - component: {fileID: 969126501} + - component: {fileID: 969126500} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &969126499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 969126498} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1239394256} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &969126500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 969126498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Speak +--- !u!222 &969126501 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 969126498} + m_CullTransparentMesh: 0 +--- !u!1 &1166538630 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1716708668608742, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1239394255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1239394256} + - component: {fileID: 1239394259} + - component: {fileID: 1239394258} + - component: {fileID: 1239394257} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1239394256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239394255} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 969126499} + m_Father: {fileID: 284098719} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 320, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1239394257 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239394255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1239394258} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 437166883} + m_MethodName: RunSpeechInference + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1239394258 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239394255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1239394259 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239394255} + m_CullTransparentMesh: 0 +--- !u!1 &1255283545 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1018917012828270, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1291444067 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1291444068} + - component: {fileID: 1291444070} + - component: {fileID: 1291444069} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1291444068 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1291444067} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_Children: [] + m_Father: {fileID: 1751653913} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1291444069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1291444067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1291444070 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1291444067} + m_CullTransparentMesh: 0 +--- !u!1 &1479839143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1479839144} + - component: {fileID: 1479839146} + - component: {fileID: 1479839145} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1479839144 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479839143} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1533568178} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1479839145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479839143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!222 &1479839146 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1479839143} + m_CullTransparentMesh: 0 +--- !u!1 &1533568177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1533568178} + - component: {fileID: 1533568181} + - component: {fileID: 1533568180} + - component: {fileID: 1533568179} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1533568178 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1533568177} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1479839144} + - {fileID: 430970143} + m_Father: {fileID: 284098719} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 250} + m_SizeDelta: {x: 780, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1533568179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1533568177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1533568180} + m_TextComponent: {fileID: 430970144} + m_Placeholder: {fileID: 1479839145} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &1533568180 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1533568177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1533568181 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1533568177} + m_CullTransparentMesh: 0 +--- !u!114 &1581251166 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 114356936467279116, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1751653912 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1751653913} + - component: {fileID: 1751653915} + - component: {fileID: 1751653914} + m_Layer: 5 + m_Name: Spinner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1751653913 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1751653912} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3, y: 3, z: 1} + m_Children: + - {fileID: 1291444068} + m_Father: {fileID: 284098719} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -220} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1751653914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1751653912} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300002, guid: e1716b84a40f43a4fa02fca35d799be3, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1751653915 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1751653912} + m_CullTransparentMesh: 0 +--- !u!1 &1779762464 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1562200783443766, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1966900788 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1945808911574990, guid: b13fba7fbe84549eaad325ff3431cb6f, + type: 3} + m_PrefabInstance: {fileID: 284098717} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity.meta b/Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity.meta new file mode 100644 index 00000000..351e7094 --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/TextToSpeechSample.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 963d1eb60f29c4043a5690bfae4088fb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs b/Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs new file mode 100644 index 00000000..30e325c8 --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Assets.Scripts +{ + public class ThreadedJob + { + private bool m_IsDone = false; + private object m_Handle = new object(); + private Thread m_Thread = null; + + public bool IsDone + { + get + { + bool tmp; + lock (m_Handle) + { + tmp = m_IsDone; + } + return tmp; + } + set + { + lock (m_Handle) + { + m_IsDone = value; + } + } + } + + public virtual void Start() + { + m_Thread = new Thread(Run); + m_Thread.Start(); + } + public virtual void Abort() + { + m_Thread.Abort(); + } + + protected virtual void ThreadFunction() + { + // Do your threaded task. + // DON'T use the Unity API here. + // Unity is not thread safe. + } + + protected virtual void OnFinished() + { + // This is executed by the Unity main thread when the job is finished + } + + public virtual bool Update() + { + if (IsDone) + { + OnFinished(); + return true; + } + return false; + } + public IEnumerator WaitFor() + { + while (!Update()) + { + yield return null; + } + } + private void Run() + { + ThreadFunction(); + IsDone = true; + } + } +} diff --git a/Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs.meta b/Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs.meta new file mode 100644 index 00000000..0b78d1ad --- /dev/null +++ b/Assets/AXIP/AILIA-MODELS/TextToSpeech/ThreadedJob.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b912c34aece12b48b9abe6a22635b4e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AXIP/AILIA-MODELS/common/Scripts/AiliaDownload.cs b/Assets/AXIP/AILIA-MODELS/common/Scripts/AiliaDownload.cs index b49befb8..e6b9dc49 100755 --- a/Assets/AXIP/AILIA-MODELS/common/Scripts/AiliaDownload.cs +++ b/Assets/AXIP/AILIA-MODELS/common/Scripts/AiliaDownload.cs @@ -194,7 +194,7 @@ public IEnumerator DownloadWithProgressFromURL(List urlList, A // Error if (www.isHttpError || www.isNetworkError) { - Debug.LogError(www.error); + Debug.LogError($"Error fetching '{url}': {www.error}"); content += "" + www.error + "" + "\n"; if (ContentsText.cachedTextGenerator.lineCount > ContentLineCount) { diff --git a/Assets/AXIP/AILIA/Scripts/Models/AiliaModel.cs b/Assets/AXIP/AILIA/Scripts/Models/AiliaModel.cs index 834d2ec4..d93b5ead 100755 --- a/Assets/AXIP/AILIA/Scripts/Models/AiliaModel.cs +++ b/Assets/AXIP/AILIA/Scripts/Models/AiliaModel.cs @@ -513,5 +513,11 @@ public virtual void Close() ailia = IntPtr.Zero; } } + + //エラー詳細の取得 + public string GetErrorDetail() + { + return Marshal.PtrToStringAnsi(Ailia.ailiaGetErrorDetail(ailia)); + } } } \ No newline at end of file diff --git a/README.md b/README.md index 4eb5ab4f..417a6422 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,12 @@ This repository does not include ailia libraries. So you must get license and im We are now converting to C#. Please wait to complete conversion. +## Audio processing + +| Name | Detail | Exported From | Supported Ailia Version | +|:-----------|------------:|:------------:|:------------:| +| [pytorch-dc-tts](/audio_processing/pytorch-dc-tts/) | [Efficiently Trainable Text-to-Speech System Based on Deep Convolutional Networks with Guided Attention](https://github.com/tugstugi/pytorch-dc-tts) | Pytorch | 1.2.6 and later | + ## Image classification | Name | Detail | Exported From | Supported Ailia Version |