public GoogleTTSProvider()
        {
            Name          = "Google Text To Speech";
            ProviderClass = Class.Web;
            HasVoices     = true;
            BackgroundWorker loadVoicesWorker = new BackgroundWorker();

            loadVoicesWorker.DoWork += delegate
            {
                List <CultureInfo> cultures = new List <CultureInfo>();
                cultures.AddRange(CultureInfo.GetCultures(CultureTypes.SpecificCultures));
                cultures.Sort((x, y) => x.DisplayName.CompareTo(y.DisplayName));
                AvailableVoices = cultures.Select(x => new Voice()
                {
                    Name = x.DisplayName, Language = x.Name
                }).ToList();
                if (this.Name == Properties.Settings.Default.LastTTSProvider)
                {
                    if (Properties.Settings.Default.RememberLanguageSettings)
                    {
                        SelectedVoice = AvailableVoices.Find(n => n.Name == Properties.Settings.Default.LastTTSVoice);
                    }
                    else
                    {
                        SelectedVoice = AvailableVoices[0];
                    }
                }
            };
            loadVoicesWorker.RunWorkerAsync();
        }
Esempio n. 2
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            // check Speech API keys
            if (!string.IsNullOrEmpty(SettingsHelper.Instance.SpeechApiKey) && !string.IsNullOrEmpty(SettingsHelper.Instance.SpeechApiEndpoint))
            {
                this.speakButton.IsEnabled = true;
                this.apiRegion             = Regex.Replace(SettingsHelper.Instance.SpeechApiEndpoint, EndpointPattern, "$1");
                this.cacheDataFolder       = await ApplicationData.Current.LocalFolder.CreateFolderAsync("NeuralTTSDemo\\Cache", CreationCollisionOption.OpenIfExists);

                AvailableVoices.AddRange(NeuralTTSDataLoader.GetNeuralVoices());
                CachedResults.AddRange(await NeuralTTSDataLoader.GetCachedResults(cacheDataFolder));
            }
            else
            {
                this.speakButton.IsEnabled = false;
                ContentDialog missingApiKeyDialog = new ContentDialog
                {
                    Title             = "Missing Speech API Key",
                    Content           = "Please enter a valid Speech API key in the Settings Page.",
                    PrimaryButtonText = "Open Settings",
                    CloseButtonText   = "Close",
                    DefaultButton     = ContentDialogButton.Primary
                };

                ContentDialogResult result = await missingApiKeyDialog.ShowAsync();

                if (result == ContentDialogResult.Primary)
                {
                    AppShell.Current.NavigateToPage(typeof(SettingsPage));
                }
            }

            base.OnNavigatedTo(e);
        }
        public AmazonPollyTTSProvider()
        {
            Name              = "Amazon Polly";
            ProviderClass     = Class.Web;
            HasVoices         = true;
            HasDiscreteSpeed  = false;
            HasDiscreteVolume = false;
            BackgroundWorker loadVoicesWorker = new BackgroundWorker();

            polly = new AmazonPollyClient(AccessKey, SecretKey, Amazon.RegionEndpoint.USEast2);


            loadVoicesWorker.DoWork += delegate
            {
                try
                {
                    foreach (var v in polly.DescribeVoices(new Amazon.Polly.Model.DescribeVoicesRequest()).Voices)
                    {
                        AvailableVoices.Add(new Voice {
                            Name = v.Name, Gender = v.Gender.ToString(), Language = v.LanguageName
                        });
                    }

                    if (this.Name == Properties.Settings.Default.LastTTSProvider)
                    {
                        if (Properties.Settings.Default.RememberLanguageSettings)
                        {
                            SelectedVoice = AvailableVoices.Find(n => n.Name == Properties.Settings.Default.LastTTSVoice);
                        }
                        else
                        {
                            SelectedVoice = AvailableVoices[0];
                        }
                    }
                }
                catch (Exception Ex)
                {
                    Logger.Log(Ex.ToString());
                    AvailableVoices.Add(new Voice {
                        Name = "Amazon Polly Voices are Disabled", Language = "en-US", Gender = "None"
                    });
                    SelectedVoice = AvailableVoices[0];
                    disabled      = true;
                }
            };
            loadVoicesWorker.RunWorkerAsync();
        }
Esempio n. 4
0
        public MicrosoftTTSProvider()
        {
            Name              = "Microsoft Windows Text To Speech";
            ProviderClass     = Class.Local;
            HasVoices         = true;
            HasDiscreteSpeed  = true;
            HasDiscreteVolume = true;

            new Task(() =>
            {
                foreach (var v in speechSynth.GetInstalledVoices().Select(v => v.VoiceInfo))
                {
                    AvailableVoices.Add(new Voice {
                        Name = v.Name, Gender = v.Gender.ToString(), Language = v.Culture.Name
                    });
                }
                if (this.Name == Properties.Settings.Default.LastTTSProvider)
                {
                    if (Properties.Settings.Default.RememberLanguageSettings)
                    {
                        SelectedVoice = AvailableVoices.Find(n => n.Name == Properties.Settings.Default.LastTTSVoice);
                    }
                    else
                    {
                        SelectedVoice = AvailableVoices[0];
                    }
                }
            }).Start();

            for (int i = -10; i <= 10; i++)
            {
                AvailableSpeeds.Add(i.ToString());
            }
            SelectedDiscreteSpeed = "0";

            for (int i = 0; i <= 100; i++)
            {
                AvailableVolumes.Add(i.ToString());
            }
            SelectedDiscreteVolume = "100";
        }
Esempio n. 5
0
 public AudioTrainerViewModel()
 {
     AvailableVoices.AddRange(_speechSynthesizer.GetInstalledVoices());
     SelectedVoice = AvailableVoices.FirstOrDefault();
 }
        public FromTextToSpeechTTSProvider()
        {
            Name          = "From Text To Speech";
            ProviderClass = Class.Web;
            HasVoices     = true;
            AvailableVoices.Add(new Voice {
                Name = "Emma (UK English)", Language = "IVONA Amy22 (UK English)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Harry (UK English)", Language = "IVONA Brian22 (UK English)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Jade (French)", Language = "IVONA CΘline22 (French)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Gabriel (French)", Language = "IVONA Mathieu22 (French)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Nadine (German)", Language = "IVONA Marlene22 (German)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Michael (German)", Language = "IVONA Hans22 (German)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Valentina (Russian)", Language = "IVONA Tatyana22 (Russian)"
            });
            AvailableVoices.Add(new Voice {
                Name = "John (US English)", Language = "IVONA Eric22"
            });
            AvailableVoices.Add(new Voice {
                Name = "Jenna (US English)", Language = "IVONA Jennifer22"
            });
            AvailableVoices.Add(new Voice {
                Name = "George (US English)", Language = "IVONA Joey22"
            });
            AvailableVoices.Add(new Voice {
                Name = "Alice (US English)", Language = "IVONA Kimberly22"
            });
            AvailableVoices.Add(new Voice {
                Name = "Daisy (US English)", Language = "IVONA Salli22"
            });
            AvailableVoices.Add(new Voice {
                Name = "Alessandra (Italian)", Language = "IVONA Carla22 (Italian)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Giovanni (Italian)", Language = "IVONA Giorgio22 (Italian)"
            });
            AvailableVoices.Add(new Voice {
                Name = "Isabella (Spanish [Modern])", Language = "IVONA Conchita22 (Spanish [Modern])"
            });
            AvailableVoices.Add(new Voice {
                Name = "Mateo (Spanish [Modern])", Language = "IVONA Enrique22 (Spanish [Modern])"
            });
            AvailableVoices.Add(new Voice {
                Name = "Rodrigo (Portuguese)", Language = "IVONA Cristiano22 (Portuguese)"
            });
            SelectedVoice = AvailableVoices[0];

            if (Properties.Settings.Default.RememberLanguageSettings && this.Name == Properties.Settings.Default.LastTTSProvider)
            {
                SelectedVoice = AvailableVoices.Find(n => n.Name == Properties.Settings.Default.LastTTSVoice);
            }
            else
            {
                SelectedVoice = AvailableVoices[0];
            }

            HasDiscreteSpeed = true;
            AvailableSpeeds.AddRange(new String[] { "slow", "medium", "fast", "very fast" });
            SelectedDiscreteSpeed = "medium";
        }