private async void LoadTTSConfigPage(
            string ttsType)
        {
            var content = default(object);

            switch (ttsType)
            {
            case TTSType.Yukkuri:
                try
                {
                    var ctrl = SpeechController.Default as YukkuriSpeechController;
                    if (ctrl != null)
                    {
                        if (!ctrl.SetAppKey())
                        {
                            this.ShowErrorMessage("AquesTalk の初期化でエラーが発生しました。Code=D", null, false);
                        }
                    }
                }
                catch (Exception ex)
                {
                    this.ShowErrorMessage("AquesTalk の初期化で例外が発生しました。", ex);
                    return;
                }

                content = new YukkuriConfigView();
                break;

            case TTSType.HOYA:
                content = new HoyaConfigView();
                break;

            case TTSType.OpenJTalk:
                content = new OpenJTalkConfigView();
                break;

            case TTSType.Sasara:
                try
                {
                    // リモートからささらの設定を取得する
                    await Task.Run(() => Settings.Default.SasaraSettings.LoadRemoteConfig());
                }
                catch (Exception ex)
                {
                    this.ShowErrorMessage("CeVIO Creative Studio との接続で例外が発生しました。", ex);
                    return;
                }

                content = new SasaraConfigView();
                break;

            case TTSType.Boyomichan:
                content = new BoyomiConfigView();
                break;

            case TTSType.VOICEROID:
                try
                {
                    var ctrl = SpeechController.Default as VoiceroidSpeechController;
                    Settings.Default.VoiceroidSettings.Load();
                    var err = await ctrl?.Start();

                    if (!string.IsNullOrEmpty(err))
                    {
                        this.ShowErrorMessage($"VOICEROIDの初期化でエラーが発生しました。\n\n{err}");
                        return;
                    }
                }
                catch (Exception ex)
                {
                    this.ShowErrorMessage("VOICEROIDの初期化で例外が発生しました。", ex);
                    return;
                }

                content = new VoiceroidConfigView();
                break;

            case TTSType.SAPI5:
                content = new SAPI5ConfigView();
                break;

            default:
                return;
            }

            this.ContentGrid.Children.Clear();
            this.ContentGrid.Children.Add((UIElement)content);
        }
        private async void LoadTTSConfigPage(
            string ttsType)
        {
            // コントローラを更新する
            _ = SpeechController.Default;

            var content = default(object);

            switch (ttsType)
            {
            case TTSType.Yukkuri:
                try
                {
                    if (SpeechController.Default is YukkuriSpeechController ctrl)
                    {
                        if (!ctrl.SetAppKey())
                        {
                            this.ShowErrorMessage("AquesTalk の初期化でエラーが発生しました。Code=D", null, false);
                        }
                    }
                }
                catch (Exception ex)
                {
                    this.ShowErrorMessage("AquesTalk の初期化で例外が発生しました。", ex);
                    return;
                }

                content = new YukkuriConfigTabView();
                break;

            case TTSType.HOYA:
                content = new HoyaConfigTabView();
                break;

            case TTSType.Polly:
                content = new PollyConfigTabView();
                break;

            case TTSType.OpenJTalk:
                content = new OpenJTalkConfigTabView();
                break;

            case TTSType.Sasara:
                /*
                 * try
                 * {
                 *  // リモートからささらの設定を取得する
                 *  await Task.Run(() => Settings.Default.SasaraSettings.LoadRemoteConfig());
                 * }
                 * catch (Exception ex)
                 * {
                 *  this.ShowErrorMessage("CeVIO 7 との接続で例外が発生しました。", ex);
                 *  return;
                 * }
                 */

                content = new SasaraConfigView();
                break;

            case TTSType.CevioAI:
                /*
                 * try
                 * {
                 *  // リモートからCeVIO AIの設定を取得する
                 *  await Task.Run(() => Settings.Default.CevioAISettings.LoadRemoteConfig());
                 * }
                 * catch (Exception ex)
                 * {
                 *  this.ShowErrorMessage("CeVIO AI との接続で例外が発生しました。", ex);
                 *  return;
                 * }
                 */

                content = new CevioAIConfigView();
                break;

            case TTSType.Boyomichan:
                content = new BoyomiConfigView();
                break;

            case TTSType.VOICEROID:
                try
                {
                    var ctrl = SpeechController.Default as VoiceroidSpeechController;
                    Settings.Default.VoiceroidSettings.Load();
                    var err = await ctrl?.StartAsync();

                    if (!string.IsNullOrEmpty(err))
                    {
                        this.ShowErrorMessage($"VOICEROIDの初期化でエラーが発生しました。\n\n{err}");
                        return;
                    }
                }
                catch (Exception ex)
                {
                    this.ShowErrorMessage("VOICEROIDの初期化で例外が発生しました。", ex);
                    return;
                }

                content = new VoiceroidConfigView();
                break;

            case TTSType.SAPI5:
                content = new SAPI5ConfigTabView();
                break;

            case TTSType.GoogleCloudTextToSpeech:
                content = new GoogleCloudTextToSpeechConfigTabView();
                break;
            }

            this.ContentGrid.Children.Clear();

            if (content != null)
            {
                this.ContentGrid.Children.Add((UIElement)content);
            }
        }