コード例 #1
0
ファイル: MacSynth.cs プロジェクト: CasperTech/radegast
        /// <summary>
        /// Get the list of available installed voices.
        /// </summary>
        /// <returns></returns>
        internal Dictionary <string, AvailableVoice> GetVoices()
        {
            Dictionary <string, AvailableVoice> names = new Dictionary <string, AvailableVoice>();

            NSArray insVoices = NSSpeechSynthesizer.AvailableVoices;

            foreach (NSString name in insVoices)
            {
                bool skip = false;

                // Check for additional information about this voice
                if (voiceProperties != null)
                {
                    string propString = voiceProperties[name].AsString();
                    if (propString != null)
                    {
                        // Properties are a series of blank-separated keywords
                        string[] props = propString.Split(' ');

                        foreach (string key in props)
                        {
                            switch (key)
                            {
                            case "ignore":
                                skip = true;
                                break;
                            }
                        }
                    }
                }

                // If this voice is not blocked add it to the list.
                if (!skip)
                {
                    names[name] = new MacAvailableVoice(name);
                }
            }

            return(names);
        }
コード例 #2
0
ファイル: MacSynth.cs プロジェクト: Booser/radegast
        /// <summary>
        /// Get the list of available installed voices.
        /// </summary>
        /// <returns></returns>
        internal Dictionary<string, AvailableVoice> GetVoices()
        {
            Dictionary<string, AvailableVoice> names = new Dictionary<string, AvailableVoice>();

            NSArray insVoices = NSSpeechSynthesizer.AvailableVoices;
            foreach (NSString name in insVoices)
            {
                bool skip = false;

                // Check for additional information about this voice
                if (voiceProperties != null)
                {
                    string propString = voiceProperties[name].AsString();
                    if (propString != null)
                    {
                        // Properties are a series of blank-separated keywords
                        string[] props = propString.Split(' ');

                        foreach (string key in props)
                        {
                            switch (key)
                            {
                                case "ignore":
                                    skip = true;
                                    break;
                            }
                        }
                    }
                }

                // If this voice is not blocked add it to the list.
                if (!skip)
                {
                    names[name] = new MacAvailableVoice(name);
                }
            }

            return names;
        }