Exemplo n.º 1
0
        private async Task <List <SToSVoice> > FetchVoices(string language)
        {
            try
            {
                var voices = await voiceRepository.GetAllByService(WEB_SERVICE_ID);

                if (voices.Count == 0)
                {
                    var ibmVoices = await Task.Run(() =>
                    {
                        return(textToSpeechClient.ListVoices());
                    });

                    voiceCache = ibmVoices._Voices.Select(voice =>
                                                          new SToSVoice
                    {
                        ServiceId = WEB_SERVICE_ID,
                        Name      = voice.Name,
                        Gender    = voice.Gender,
                        Language  = voice.Language
                    }
                                                          ).ToList();
                    voiceRepository.InsertMultiple(voiceCache);
                }
                else
                {
                    voiceCache = voices;
                }
                return(voiceCache.Where(voice => voice.Language == language).ToList());
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception caught: " + e);
                MessageBox.Show("Exception caught: " + e);
            }
            return(new List <SToSVoice>());
        }
Exemplo n.º 2
0
        private async Task <List <SToSVoice> > FetchVoices(string language)
        {
            try
            {
                var voices = await voiceRepository.GetAllByService(WEB_SERVICE_ID);

                if (voices.Count == 0)
                {
                    var request  = new ListVoicesRequest();
                    var response = await toSpeechClient.ListVoicesAsync(request);

                    voiceCache = response.Voices.Select(voice =>
                                                        new SToSVoice
                    {
                        ServiceId  = WEB_SERVICE_ID,
                        Name       = voice.Name,
                        SsmlGender = voice.SsmlGender,
                        Gender     = voice.SsmlGender.ToString(),
                        Language   = string.Join(",", voice.LanguageCodes.ToArray())
                    }
                                                        ).ToList();
                    voiceRepository.InsertMultiple(voiceCache);
                }
                else
                {
                    voiceCache = voices;
                }
                return(voiceCache.Where(voice => voice.Language.Contains(language)).ToList());
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception caught: " + e);
                MessageBox.Show("Exception caught: " + e);
            }
            return(new List <SToSVoice>());
        }