示例#1
0
        // Refresh voices
        private void RefreshVoices()
        {
            // Reset voice data
            _voiceIndex = -1;
            _voices     = null;

            // Get settings
            TTSService tts = TTSService.Instance;

            TTSVoiceSettings[] settings = tts?.GetAllPresetVoiceSettings();
            if (settings == null)
            {
                Debug.LogError("No Preset Voice Settings Found!");
                return;
            }

            // Apply all settings
            _voices = new string[settings.Length];
            for (int i = 0; i < settings.Length; i++)
            {
                _voices[i] = settings[i].settingsID;
                if (string.Equals(_speaker.presetVoiceID, _voices[i], StringComparison.CurrentCultureIgnoreCase))
                {
                    _voiceIndex = i;
                }
            }
        }
        // Get voice ids
        private List <string> GetVoiceIDs(TTSService service)
        {
            List <string> results = new List <string>();

            if (service != null)
            {
                foreach (var voiceSetting in service.GetAllPresetVoiceSettings())
                {
                    if (voiceSetting != null && !string.IsNullOrEmpty(voiceSetting.settingsID) &&
                        !results.Contains(voiceSetting.settingsID))
                    {
                        results.Add(voiceSetting.settingsID);
                    }
                }
            }
            return(results);
        }