/// <summary> /// 指定された名前の合成音声器を利用しようとします。 /// 不正な名前が指定された場合は何もしません。 /// </summary> /// <param name="name">合成音声器の名前</param> private void UpdateSynthesizer(string name) { if (!AvailableVoices.Any(v => v.Name == name)) { return; } if (_currentSynthesizerName != name) { _currentSynthesizerName = name; _currentSynthesizer?.Dispose(); _currentSynthesizer = null; } }
/// <summary>発声の前に設定を反映し、合成音声器やテキスト変換器が必要な場合それらを準備します。</summary> private void UpdateBySetting() { UpdateSynthesizer(_setting.VoiceType); if (_currentSynthesizer == null) { _currentSynthesizer = AvailableVoices .Single(s => s.Name == _currentSynthesizerName) .CreateVoiceSynthesizer(); } _currentSynthesizer.Volume = _setting.Volume; _currentSynthesizer.Speed = _setting.Speed; _currentSynthesizer.Pitch = _setting.Pitch; UpdateTextConverter(_setting.TextConverterType); if (_textToPronounceConverter == null) { _textToPronounceConverter = AvailableTextConverters[_textToPronounceConverterName].CreateConverter(); } }
/// <summary> /// 指定された名前の合成音声器を利用しようとします。 /// 不正な名前が指定された場合は何もしません。 /// </summary> /// <param name="name">合成音声器の名前</param> private void UpdateSynthesizer(string name) { if (!AvailableVoices.Any(v => v.Name == name)) return; if(_currentSynthesizerName != name) { _currentSynthesizerName = name; _currentSynthesizer?.Dispose(); _currentSynthesizer = null; } }