public static bool LoadOnlineVoicesFromDB()
        {
            var voices = new List <string>();

            if (OnlineVoicesTableMgr.LoadOnlineVoicesFromDB(voices))
            {
                LanguageCodes = new List <string>();
                foreach (var voice in voices)
                {
                    int    index        = voice.IndexOf('-', voice.IndexOf('-') + 1);
                    string languageCode = voice.Substring(0, index);
                    if (!LanguageCodes.Contains(languageCode))
                    {
                        LanguageCodes.Add(languageCode);
                    }
                }
                if (voices.Count > 0)
                {
                    Voices             = voices;
                    OnlineVoicesLoaded = true;
                    EventSystem.Publish <OnlineVoicesLoaded>(new OnlineVoicesLoaded {
                    });
                    return(true);
                }
            }
            return(false);
        }
Beispiel #2
0
        private static void CreateDatabaseTables()
        {
            string filename = DBAdmin.CreateDBFile();

            if (EventLogTableMgr.CreateEventLogDBTable())
            {
                Logger.AddLogEntry(LogCategory.INFO, "Created Database file \'" + filename + "\'.");
            }
            SettingsTableMgr.CreateSettingsDBTable();
            AudioClipsTableMgr.CreateAudioClipsDBTable();
            TimeTriggerClipsTableMgr.CreateTimeTriggerClipsDBTable();
            RulesetsTableMgr.CreateRulesetsDBTable();
            RulesTableMgr.CreateRulesetRulesDBTable();
            SessionsTableMgr.CreateSessionsDBTable();
            SessionClipsTableMgr.CreateSessionsDBTable();
            OnlineVoicesTableMgr.CreateOnlineVoicesDBTable();
        }
        public static void LoadOnlineVoices()
        {
            string credentialsFile = GetCredentialsFile();

            if (!String.IsNullOrEmpty(credentialsFile))
            {
                try
                {
                    GoogleCredential credentials = GoogleCredential.FromFile(credentialsFile);
                    using (var textToSpeechClient = TextToSpeechClient.Create(credentials))
                    {
                        Voices        = new List <string>();
                        LanguageCodes = new List <string>();
                        var voices = textToSpeechClient.ListVoices();
                        foreach (var voice in voices)
                        {
                            Voices.Add(String.Format("{0} ({1})", voice.Name, voice.SsmlGender.ToLower()));
                            int    index        = voice.Name.IndexOf('-', voice.Name.IndexOf('-') + 1);
                            string languageCode = voice.Name.Substring(0, index);
                            if (!LanguageCodes.Contains(languageCode))
                            {
                                LanguageCodes.Add(languageCode);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Logger.AddLogEntry(LogCategory.ERROR,
                                       String.Format("TextToSpeechMgr: Error reading Google credentials file: {0} ", e.ToString()));
                    var messageWin = new MessageWin("TextToSpeechMgr",
                                                    String.Format("Error reading Google credentials file - voice list not generated."));
                    messageWin.Show();
                }
                if (Voices != null)
                {
                    OnlineVoicesTableMgr.SaveOnlineVoicesToDB(Voices);
                }
            }
        }