private async void OnTranslateRecognizing(object sender, TranslationRecognitionEventArgs args) { if (args.Result.Reason == ResultReason.TranslatingSpeech) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { // origin if (!string.IsNullOrEmpty(args.Result.Text)) { recognitionData = new RecognitionData(dictatedTextBuilder.ToString(), null); UpdateTextBox(this.dictationTextBlock, recognitionData, args.Result.Text); } // translation var firstLanguage = this.firstTranslateLanguageCombobox.SelectedItem as SupportedLanguage; var secondLanguage = this.secondTranslateLanguageCombobox.SelectedItem as SupportedLanguage; var translations = args.Result.Translations; foreach (var translation in translations) { if (firstLanguage != null && firstLanguage.TranslationCode.Contains(translation.Key) && !string.IsNullOrEmpty(translation.Value)) { firstTranslationRecognitionData = new RecognitionData(firstTranslatedTextBuilder.ToString(), null); UpdateTextBox(this.firstTranslationTextBlock, firstTranslationRecognitionData, translation.Value); } if (secondLanguage != null && secondLanguage.TranslationCode.Contains(translation.Key) && !string.IsNullOrEmpty(translation.Value)) { secondTranslationRecognitionData = new RecognitionData(secondTranslatedTextBuilder.ToString(), null); UpdateTextBox(this.secondTranslationTextBlock, secondTranslationRecognitionData, translation.Value); } } }); } }
private void OnRemoveSecondTranslateLanguageClicked(object sender, RoutedEventArgs e) { this.secondTranslateLanguageCombobox.SelectedItem = null; this.secondTranslationTextBlock.Text = string.Empty; this.secondTranslatedTextBuilder.Clear(); this.secondTranslationRecognitionData = new RecognitionData(); UpdateTranslationView(); }
private async void OnRecognizing(object sender, SpeechRecognitionEventArgs args) { if (!string.IsNullOrEmpty(args.Result.Text)) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { recognitionData = new RecognitionData(dictatedTextBuilder.ToString(), null); SetRecognitionData(recognitionData, args.Result.Text); }); } }
private async void OnRecognized(object sender, SpeechRecognitionEventArgs args) { if (!string.IsNullOrEmpty(args.Result.Text)) { dictatedTextBuilder.Append(args.Result.Text + "\n"); await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { recognitionData = new RecognitionData(dictatedTextBuilder.ToString(), this.inputLanguageCombobox.SelectedItem as SupportedLanguage); SetRecognitionData(recognitionData); }); } }
public void SetRecognitionData(RecognitionData inputData, TranslationRecognitionData outputData) { if (inputData != null) { UpdateTextBox(this.dictationTextBlock, inputData); } if (outputData?.FirstTranslationText != null) { UpdateTextBox(this.firstTranslationTextBlock, outputData.FirstTranslationText); } if (outputData?.SecondTranslationText != null) { UpdateTextBox(this.secondTranslationTextBlock, outputData.SecondTranslationText); } }
private async void OnCanceled(object sender, SpeechRecognitionCanceledEventArgs args) { if (args.Reason == CancellationReason.Error) { stopRecognitionTaskCompletionSource?.TrySetResult(0); await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { dictatedTextBuilder = new StringBuilder($"ErrorCode={args.ErrorCode};\nErrorDetails={args.ErrorDetails}"); recognitionData = new RecognitionData(dictatedTextBuilder.ToString(), null); SetRecognitionData(recognitionData); ShowNotificationEventHandler?.Invoke(this, new NotificationViewModel { NotificationType = NotificationType.Error }); }); } }
public void SetRecognitionData(RecognitionData recognitionData, string tempText = "") { this.dictationTextBlock.Text = recognitionData.Text; if (!string.IsNullOrEmpty(tempText)) { var runText = new Run() { Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 120, 215)), Text = tempText }; this.dictationTextBlock.Inlines.Add(runText); } if (recognitionData.HighlightStyle) { this.dictationTextBlock.FontStyle = Windows.UI.Text.FontStyle.Italic; this.dictationTextBlock.Foreground = new SolidColorBrush(Colors.Gray); } }