/// <summary> /// テキストを読み上げる /// </summary> /// <param name="text">読み上げるテキスト</param> public override void Speak( string text) { lock (lockObject) { if (string.IsNullOrWhiteSpace(text)) { return; } // 今回の再生データをMD5化したものからwaveファイルの名称を作る var wave = ("Sasara" + TTSYukkuriConfig.Default.SasaraSettings.GetMD5() + text).GetMD5() + ".wav"; wave = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"anoyetta\ACT\" + wave); if (!File.Exists(wave)) { // 初期化する this.Initialize(); // 音声waveファイルを生成する var e = new TTSMessage.SpeakEventArg() { TTSType = TTSTEngineType.CeVIO, TextToSpeack = text, WaveFile = wave }; TTSServerController.Message.Speak(e); } // サブデバイスで再生する if (TTSYukkuriConfig.Default.EnabledSubDevice) { SoundPlayerWrapper.Play( TTSYukkuriConfig.Default.SubDeviceID, wave, (int)TTSYukkuriConfig.Default.SasaraSettings.Onryo); } // メインデバイスで再生する SoundPlayerWrapper.Play( TTSYukkuriConfig.Default.MainDeviceID, wave, (int)TTSYukkuriConfig.Default.SasaraSettings.Onryo); } }
/// <summary> /// テキストを読み上げる /// </summary> /// <param name="text">読み上げるテキスト</param> public override void Speak( string text) { lock (lockObject) { if (string.IsNullOrWhiteSpace(text)) { return; } // 今回の再生データをMD5化したものからwaveファイルの名称を作る var wave = ("Yukkuri" + TTSYukkuriConfig.Default.YukkuriSpeed.ToString() + text).GetMD5() + ".wav"; wave = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"anoyetta\ACT\" + wave); if (!File.Exists(wave)) { // よみがなに変換する var textByYomigana = this.ConvertYomigana(text); // サーバに送信する var e = new TTSMessage.SpeakEventArg() { TTSType = TTSTEngineType.Yukkuri, TextToSpeack = textByYomigana, SpeakSpeed = TTSYukkuriConfig.Default.YukkuriSpeed, WaveFile = wave }; TTSServerController.Message.Speak(e); } // サブデバイスを再生する // サブデバイスは専らVoiceChat用であるため先に鳴動させる if (TTSYukkuriConfig.Default.EnabledSubDevice) { SoundPlayerWrapper.Play( TTSYukkuriConfig.Default.SubDeviceID, wave, TTSYukkuriConfig.Default.EnabledYukkuriVolumeSetting ? TTSYukkuriConfig.Default.YukkuriVolume : 100); } // メインデバイスを再生する SoundPlayerWrapper.Play( TTSYukkuriConfig.Default.MainDeviceID, wave, TTSYukkuriConfig.Default.EnabledYukkuriVolumeSetting ? TTSYukkuriConfig.Default.YukkuriVolume : 100); } }