public async void vocalizeText(string text) { string audioFile = ""; var webServices = new ITranscribeAndVocalize <Voice>[] { amazonWebService, googleWebService, ibmWebService }; var activeService = webServices[settings.generalSettings.ActiveTextToSpeechService - 1]; audioFile = await activeService.ToAudio(text); var textToSpeech = new TextToSpeech { Text = text, AudioFile = audioFile }; textToSpeech.Id = await textToSpeechRepository.Insert(textToSpeech); var viewModel = new VocalizedViewModel(textToSpeech, container.Resolve <IAudioPlayer>(), container.Resolve <ISettingsService>()); VocalizedViewModels.Add(viewModel); if (audioFile != "" && settings.generalSettings.IsAutoPlayVocalized) { viewModel.PlayHandler(audioFile); } }
private async void deleteTextToSpeechEntry(VocalizedViewModel vmToRemove) { var result = false; if (vmToRemove.TextToSpeech.Id != 0) { result = await textToSpeechRepository.Delete(vmToRemove.TextToSpeech.Id); } else { result = await textToSpeechRepository.DeleteByAudioFile(vmToRemove.TextToSpeech.AudioFile); } if (result) { var remaining = VocalizedViewModels.Where(viewModel => viewModel != vmToRemove); VocalizedViewModels.Clear(); VocalizedViewModels.AddRange(remaining); vmToRemove.Dispose(); fileManagementService.Delete(vmToRemove.TextToSpeech.AudioFile); } }