internal void CreateEngine(SpeechController speechController, string source)
        {
            _speechController = speechController;

            _cultureInfo = LanguageSelector.GetVoice(source); // listen in source language (speech limitation)
            _speechRecognitionEngine = new SpeechRecognitionEngine(_cultureInfo);
        }
Beispiel #2
0
        public static void RecordMode(string libraryName, string text, string outputFilename)
        {
            SoundRecorder recorder = new SoundRecorder(outputFilename);

            recorder.PostWait = 300;

            var engines = SpeechController.GetAllSpeechEngine();
            var engine  = SpeechController.GetInstance(libraryName);

            if (engine == null)
            {
                Console.WriteLine($"{libraryName} を起動できませんでした。");
                return;
            }

            engine.Activate();
            engine.Finished += (s, a) =>
            {
                Task t = recorder.Stop();
                t.Wait();
                finished = true;
                engine.Dispose();
            };
            recorder.Start();
            engine.Play(text);
        }
        /// <summary>
        /// Text-to-speech.
        /// </summary>
        /// <param name="text">Text.</param>
        /// <returns>Task.</returns>
        public async Task Speak(string text)
        {
            _speechCancellationSource = new CancellationTokenSource();
            var options = await SpeechController.GetSettings();

            await TextToSpeech.SpeakAsync(text, options, _speechCancellationSource.Token);
        }
Beispiel #4
0
        public async Task RegisterSpeechWithValidModelStateReturnOk()
        {
            //Arrange
            RegisterSpeechCommandMessage registerSpeechCommandMessage = null;
            var moq = new Mock <IRegisterSpeechUseCase>();

            moq.Setup(x => x.Handle(It.IsAny <RegisterSpeechCommandMessage>()))
            .Returns(Task.CompletedTask)
            .Callback <RegisterSpeechCommandMessage>(x => registerSpeechCommandMessage = x);

            var speechForCreationDto = new SpeechForCreationDto
            {
                Title       = "is simply dummy text of the printing",
                Description =
                    @"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy
                                text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged",
                Type = "1",
                Url  = "http://myjpg.jpg",
            };

            var sut = new SpeechController(moq.Object);

            //Act
            IActionResult result = await sut.Post(speechForCreationDto);

            //Assert
            Assert.IsType <OkResult>(result);
            moq.Verify(x => x.Handle(It.IsAny <RegisterSpeechCommandMessage>()), Times.Once);
            Assert.Equal(speechForCreationDto.Title, registerSpeechCommandMessage.Title);
            Assert.Equal(speechForCreationDto.Description, registerSpeechCommandMessage.Description);
            Assert.Equal(speechForCreationDto.Type, registerSpeechCommandMessage.Type);
            Assert.Equal(speechForCreationDto.Url, registerSpeechCommandMessage.Url);
        }
Beispiel #5
0
        public async Task DeleteSpeechWithValidModelStateReturnOk()
        {
            //Arrange
            DeleteSpeechCommandMessage deleteSpeechCommandMessage = null;
            var moqDeleteSpeechUseCase = new Mock <IDeleteSpeechUseCase>();

            moqDeleteSpeechUseCase.Setup(x => x.Handle(It.IsAny <DeleteSpeechCommandMessage>()))
            .Returns(Task.CompletedTask)
            .Callback <DeleteSpeechCommandMessage>(x => deleteSpeechCommandMessage = x);

            var speechForDeleteDto = new SpeechForDeleteDto
            {
                Id      = Guid.NewGuid(),
                Version = 1
            };

            var sut = new SpeechController(It.IsAny <ICreateSpeechUseCase>(), It.IsAny <IUpdateSpeechUseCase>(), moqDeleteSpeechUseCase.Object);

            //Act
            IActionResult result = await sut.Delete(speechForDeleteDto);

            //Assert
            Assert.IsType <OkResult>(result);
            moqDeleteSpeechUseCase.Verify(x => x.Handle(It.IsAny <DeleteSpeechCommandMessage>()), Times.Once);
            Assert.Equal(speechForDeleteDto.Id, deleteSpeechCommandMessage.SpeechId);
            Assert.Equal(speechForDeleteDto.Version, deleteSpeechCommandMessage.OriginalVersion);
        }
 private void Start()
 {
     controller              = Instantiate(talkCanavas).GetComponent <SpeechController>();
     controller.SpeechAsset  = speechAsset;
     controller.ShowContract = shouldShowContract;
     controller.Speaker      = gameObject;
 }
Beispiel #7
0
    IEnumerator Startup()
    {
        ViewController.GetInstance().Initialize(ViewAnchorRef.transform);
        UserDataController.GetInstance().Initialize();
        while (UserDataController.GetInstance().ContactsUsers == null)
        {
            yield return(null);
        }

        SoundManager.GetInstance();
        yield return(new WaitForSeconds(.1f));

        StartCoroutine(NetworkController.GetInstance().Connect());
        SpeechController.GetInstance().Initialize();
        PhotoController.GetInstance().Initialize();



        CheatController.GetInstance().Initialize(ViewAnchorRef.transform);

        ContactsList cl = ViewController.GetInstance().CurrentView.GetComponent <ContactsList>();

        cl.Initialize();
        //Initiate The Singletons
        //Transaction<List<TcgCard>> t = new Transaction<List<TcgCard>>();
    }
 void Start()
 {
     _interactionController                    = GetComponentInChildren <IInteractionTriggerController>();
     _speechController                         = GetComponentInChildren <SpeechController>();
     _interactionController.OnInteract        += OnInteractHandler;
     _interactionController.OnStopInteraction += OnStopInteractionHandler;
     _speechController.OnScrollEnd            += OnScrollEndHandler;
 }
Beispiel #9
0
        private static string[] GetLibraryName()
        {
            var engines = SpeechController.GetVoiceroid2SpeechEngine();
            var names   = from c in engines
                          select c.LibraryName;

            return(names.ToArray());
        }
Beispiel #10
0
 public static SpeechController GetInstance()
 {
     if (null == speechController)
     {
         speechController = new GameObject("SpeechController").AddComponent <SpeechController>();
     }
     return(speechController);
 }
Beispiel #11
0
        private static string[] GetLibraryName()
        {
            var engines = SpeechController.GetAllSpeechEngine();
            var names   = from c in engines
                          select $"{c.LibraryName} [{c.EngineName}]";

            return(names.ToArray());
        }
Beispiel #12
0
    protected virtual void Start()
    {
        anim   = GetComponent <Animator>();
        player = GameObject.FindGameObjectWithTag("Player");

        speech = GetComponent <SpeechController>();
        spr    = GetComponent <SpriteRenderer>();
    }
Beispiel #13
0
    protected override void Awake()
    {
        base.Awake();
        _speechController = GetComponent <SpeechController>();
        _controller       = GetComponent <CommonTalkingCharacterController>();

        _speechController.OnVisibilityChange += OnVisibilityChangeHandler;
    }
Beispiel #14
0
        private static string[] GetLibraryName()
        {
            var engines = SpeechController.GetAllSpeechEngine();
            var names   = from c in engines
                          where Environment.Is64BitProcess == c.Is64BitProcess
                          select $"{c.LibraryName} [{c.EngineName}]";

            return(names.ToArray());
        }
Beispiel #15
0
        private void Play()
        {
            var item = Items.Dequeue();
            var text = GetArticle(item);

            engine = SpeechController.GetInstance(LibraryName);
            engine.Activate();
            engine.Finished += Engine_Finished;
            IsPlaying        = true;
            engine.Play(text);
        }
Beispiel #16
0
        private static void InteractiveMode()
        {
            // 利用可能な音声合成エンジンを列挙
            // Windows 10 (x64) 上での VOICEROID+, VOICEROID2, SAPI5 に対応
            // CeVIO(SAPI5) は Windows 10 (x64) では動作しないため表示されません
            Console.WriteLine("* 利用可能な音声合成エンジン *\r\n");
            Console.WriteLine("LibraryName,EngineName,EnginePath");
            var engines = SpeechController.GetAllSpeechEngine();

            foreach (var c in engines)
            {
                Console.WriteLine($"{c.LibraryName},{c.EngineName},{c.EnginePath}");
            }

            // ライブラリ名を入力(c.LibraryName列)
            Console.Write("\r\nLibraryName> ");
            name = Console.ReadLine().Trim();

            // 対象となるライブラリを実行
            var engine = SpeechController.GetInstance(name);

            if (engine == null)
            {
                Console.WriteLine($"{name} を起動できませんでした。");
                Console.ReadKey();
                return;
            }
            // 設定した音声の再生が終了したときに呼び出される処理を設定
            engine.Finished += Engine_Finished;

            // 音声合成エンジンを起動
            engine.Activate();
            string message = $"音声合成エンジン {engine.Info.EngineName}、{engine.Info.LibraryName}を起動しました。";

            engine.Play(message); // 音声再生は非同期実行される
            Console.WriteLine(message);
            engine.SetVolume(1.0f);

            string line = "";

            while (true)
            {
                line = Console.ReadLine();
                if (line.Trim() == "")
                {
                    engine.Dispose();
                    return;
                }
                engine.Stop();     // 喋っている途中に文字が入力されたら再生をストップ
                engine.Play(line); // 音声再生は非同期実行される
                Console.WriteLine($"Volume: {engine.GetVolume()}, Speed: {engine.GetSpeed()}, Pitch: {engine.GetPitch()}, PitchRange: {engine.GetPitchRange()}");
            }
        }
    private void Awake()
    {
        stats  = GetComponent <StatsController>();
        speech = stats.GetComponentInChildren <SpeechController>();
        stats.endSpell.AddListener(OnCancel);
        pc = GetComponent <PlayerController>(); //temporary, spelruntime shouldnt reference player controller
        gm = GameObject.Find("GameManager").GetComponent <GameManager>();

#if !UNITY_EDITOR && UNITY_WEBGL
        WebGLInput.captureAllKeyboardInput = false;
#endif
    }
Beispiel #18
0
        private static void InteractiveMode()
        {
            ShowVerbose();

            // ライブラリ名を入力(c.LibraryName列)
            Console.Write("\r\nLibraryName> ");
            name = Console.ReadLine().Trim();

            // 対象となるライブラリを実行
            var engine = SpeechController.GetInstance(name);

            if (engine == null)
            {
                Console.WriteLine($"{name} を起動できませんでした。");
                Console.ReadKey();
                return;
            }
            // 設定した音声の再生が終了したときに呼び出される処理を設定
            engine.Finished += Engine_Finished;

            // 音声合成エンジンを起動
            engine.Activate();
            engine.SetVolume(1.0f);
            engine.SetPitch(1.0f);
            engine.SetSpeed(1.0f);
            engine.SetPitchRange(1.0f);
            string message = $"音声合成エンジン {engine.Info.EngineName}、{engine.Info.LibraryName}を起動しました。";

            engine.Play(message); // 音声再生は非同期実行される
            Console.WriteLine(message);

            string line = "";

            while (true)
            {
                line = Console.ReadLine();
                if (line.Trim() == "")
                {
                    engine.Dispose();
                    return;
                }
                try
                {
                    engine.Stop();     // 喋っている途中に文字が入力されたら再生をストップ
                    engine.Play(line); // 音声再生は非同期実行される
                    Console.WriteLine($"Volume: {engine.GetVolume()}, Speed: {engine.GetSpeed()}, Pitch: {engine.GetPitch()}, PitchRange: {engine.GetPitchRange()}");
                }catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
Beispiel #19
0
        public async Task RegisterSpeechWithInvalidModelStateReturnBadRequest()
        {
            //Arrange
            var moq = new Mock <IRegisterSpeechUseCase>();
            var sut = new SpeechController(moq.Object);

            sut.ModelState.AddModelError("x", "Invalid ModelState");

            //Act
            IActionResult result = await sut.Post(It.IsAny <SpeechForCreationDto>());

            //Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Beispiel #20
0
        private static void WhisperMode(string libraryName, string text)
        {
            string tempFile    = "normal.wav";
            string whisperFile = "whisper.wav";

            var engines = SpeechController.GetVoiceroid2SpeechEngine();
            var engine  = SpeechController.GetVoiceroid2Instance(libraryName);

            if (engine == null)
            {
                Console.WriteLine($"{libraryName} を起動できませんでした。");
                return;
            }
            engine.Activate();

            SoundRecorder recorder = new SoundRecorder(tempFile);

            {
                recorder.PostWait = 300;

                engine.Finished += (s, a) =>
                {
                    finished = true;
                };

                recorder.Start();
                engine.Play(text);
            }

            while (!finished)
            {
                Thread.Sleep(100);
            }
            engine.Dispose();
            Task t = recorder.Stop();

            t.Wait();
            // ささやき声に変換
            Whisper whisper = new Whisper();
            Wave    wave    = new Wave();

            wave.Read(tempFile);
            whisper.Convert(wave);
            wave.Write(whisperFile, wave.Data);

            //// 変換した音声を再生
            SoundPlayer sp = new SoundPlayer();

            sp.Play(whisperFile);
        }
Beispiel #21
0
        private void SetTTSEnginesToComboBox()
        {
            var engines = SpeechController.GetAllSpeechEngine().Select(x => $"{ x.LibraryName}").ToList();

            if (engines.Count() == 0)
            {
                MessageBox.Show("使用可能な音声合成ソフトウェアがインストールされていません");
                Environment.Exit(1);
                return;
            }
            comboBoxSelectTTS.ItemsSource = engines;
            comboBoxSelectTTS.Text        = engines[0];
            LibraryName = engines[0];
        }
    public override void Action(GameObject player)
    {
        TaskList tl = player.GetComponent <TaskList>();

        if (!tl.IsTaskDone(barrierTask))
        {
            SpeechController speechController = player.GetComponent <SpeechController>();
            speechController.UpdateTexts(tl.GetBarrierMessage(barrierTask));
            speechController.StartSpeech(player);
        }
        else
        {
            DayManager.GotoNextDay();
        }
    }
Beispiel #23
0
        public async Task UpdateSpeechWhenModelStateIsInvalidReturnBadRequest()
        {
            //Arrange
            var moq = new Mock <ICreateSpeechUseCase>();
            var moqUpdateSpeechUseCase = new Mock <IUpdateSpeechUseCase>();
            var sut = new SpeechController(moq.Object, moqUpdateSpeechUseCase.Object, It.IsAny <IDeleteSpeechUseCase>());

            sut.ModelState.AddModelError("x", "Invalid ModelState");

            //Act
            IActionResult result = await sut.Put(It.IsAny <SpeechForUpdateDto>());

            //Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Beispiel #24
0
    /// <summary>
    /// Initialize all the GameObjects and resources for the Timer superclass.
    /// </summary>
    protected void InitializeTimer()
    {
        gameData                  = GameObject.Find("Game Data").GetComponent <GameData>();
        slider                    = GameObject.Find("Slider").GetComponent <Slider>();
        sliderFill                = GameObject.Find("Slider Fill").GetComponent <Image>();
        gameplayController        = GameObject.Find("Gameplay Controller").GetComponent <GameplayController>();
        speechController          = GameObject.Find("Speech Controller").GetComponent <SpeechController>();
        startButtonController     = GameObject.Find("Start Button Controller").GetComponent <StartButtonController>();
        sceneTransitionController = GameObject.Find("Transition").GetComponent <SceneTransitionController>();
        playerAnimationController = GameObject.Find("Player Animation Controller").GetComponent <PlayerAnimationController>();
        countdownController       = GameObject.Find("Countdown Controller").GetComponent <CountdownController>();

        // Set the total time and bounded time
        timeMax = gameData.GetTimeTotal();
        bound   = gameData.GetBound() * timeMax;
    }
        public async Task UpdateSpeechWhenSpeechIdIsEmptySouldRaisePresentationException()
        {
            //Arrange
            var moq = new Mock <IRegisterSpeechUseCase>();
            var moqUpdateSpeechUseCase = new Mock <IUpdateSpeechUseCase>();
            var sut = new SpeechController(moq.Object, moqUpdateSpeechUseCase.Object);

            var dto = new SpeechForUpdateDto
            {
                Id = Guid.Empty
            };

            //Act
            //Assert
            await Assert.ThrowsAnyAsync <PresentationException>(() => sut.Put(dto));
        }
    public void Awake()
    {
        SpeechCanvas             = GetComponent <Canvas>();
        SpeechCanvas.renderMode  = RenderMode.ScreenSpaceCamera;
        SpeechCanvas.worldCamera = Camera.main;

        if (Instance == null)
        {
            Instance = this;
            DontDestroyOnLoad(gameObject);
        }
        else
        {
            Destroy(gameObject);
        }
    }
Beispiel #27
0
    public override void Action(GameObject player)
    {
        TaskList tl = player.GetComponent <TaskList>();

        if (!tl.IsTaskDone(barrierTask))
        {
            SpeechController speechController = player.GetComponent <SpeechController>();
            speechController.UpdateTexts(tl.GetBarrierMessage(barrierTask));
            speechController.StartSpeech(player);
        }
        else
        {
            //player.GetComponent<PlayerControl>().freezeInput = true;
            player.SetActive(false);
            computer.SetActive(true);
        }
    }
Beispiel #28
0
    /* Setup */
    void Start()
    {
        // Start with Player 1
        player1.GetComponent <PlayerManager>().SetActive();
        player2.GetComponent <PlayerManager>().SetInactive();
        activePlayer       = player1;
        playerDisplay.text = "Turn: Player 1";

        // Set up speech controller(s)
        player1.GetComponent <PlayerManager>().SetSpeechInput(PlayerPrefs.GetInt("player1", 0));
        player2.GetComponent <PlayerManager>().SetSpeechInput(PlayerPrefs.GetInt("player2", 0));

        speechController = GetComponentInChildren <SpeechController>();
        speechController.RefreshController();

        // Start timer
        lastRoutine = StartCoroutine(CountdownRoundTimer());
    }
Beispiel #29
0
        private static void OneShotPlayMode(string libraryName, string text)
        {
            var engines = SpeechController.GetVoiceroid2SpeechEngine();
            var engine  = SpeechController.GetVoiceroid2Instance(libraryName);

            if (engine == null)
            {
                Console.WriteLine($"{libraryName} を起動できませんでした。");
                return;
            }
            engine.Activate();
            engine.Finished += (s, a) =>
            {
                finished = true;
                engine.Dispose();
            };
            engine.Play(text);
        }
        private void Awake()
        {
            _speechController = gameObject.AddComponent <SpeechController>();

            _nextPageButton.onClick.AddListener(() => NextPage());
            _nextPageButton.GetComponentInChildren <NeuroTag>().onTriggered.AddListener(() => NextPage());

            _prevPageButton.onClick.AddListener(() => PrevPage());
            _prevPageButton.GetComponentInChildren <NeuroTag>().onTriggered.AddListener(() => PrevPage());

            UIManager uIManager = transform.root.GetComponent <UIManager>();

            UnityAction onBackAction = new UnityAction(() =>
            {
                _speechController.StopSpeaking();
                uIManager.OpenMainMenu();
            });

            _backButton.onClick.AddListener(onBackAction);
            _backButton.GetComponentInChildren <NeuroTag>().onTriggered.AddListener(onBackAction);

            _editButton.onClick.AddListener(() => uIManager.EditFile(_currentFile));
            _editButton.GetComponentInChildren <NeuroTag>().onTriggered.AddListener(() => uIManager.EditFile(_currentFile));

            _deleteButton.onClick.AddListener(() =>
            {
                AppManager.Instance.RemoveFile(_currentFile);
                uIManager.OpenMainMenu();
            });
            _deleteButton.GetComponentInChildren <NeuroTag>().onTriggered.AddListener(() =>
            {
                AppManager.Instance.RemoveFile(_currentFile);
                uIManager.OpenMainMenu();
            });

            _colorModeButton.onClick.AddListener(() => _colorSwitcher.SwitchColor());
            _colorModeButton.GetComponentInChildren <NeuroTag>().onTriggered.AddListener(() => _colorSwitcher.SwitchColor());

            _speakButton.onClick.AddListener(() => SpeakCurrentPage());
            _speakButton.GetComponentInChildren <NeuroTag>().onTriggered.AddListener(() => SpeakCurrentPage());
        }
Beispiel #31
0
        private static void OneShotPlayMode(string libraryName, string engineName, string text, EngineParameters ep)
        {
            var engines = SpeechController.GetAllSpeechEngine();
            ISpeechController engine = engineName == "" ?
                                       SpeechController.GetInstance(libraryName) : SpeechController.GetInstance(libraryName, engineName);

            if (engine == null)
            {
                Console.WriteLine($"<= {libraryName} [{engineName}] が見つかりません。x86/x64は区別されます。");
                return;
            }
            Console.WriteLine($"<= {libraryName} [{engine.Info.EngineName}]: {text}");

            if (engine == null)
            {
                Console.WriteLine($"{libraryName} を起動できませんでした。");
                return;
            }
            engine.Activate();
            engine.Finished += (s, a) =>
            {
                engine.Dispose();
            };
            if (ep.Volume > 0)
            {
                engine.SetVolume(ep.Volume);
            }
            if (ep.Speed > 0)
            {
                engine.SetSpeed(ep.Speed);
            }
            if (ep.Pitch > 0)
            {
                engine.SetPitch(ep.Pitch);
            }
            if (ep.PitchRange > 0)
            {
                engine.SetPitchRange(ep.PitchRange);
            }
            engine.Play(text);
        }
 void Awake()
 {
     taskList = GetComponent<TaskList>();
     speechController = GetComponent<SpeechController>();
 }
 void Awake()
 {
     speechController = GetComponent<SpeechController>();
 }