コード例 #1
0
        public WakeWord CloneWithRecognizedText(string recognizedText)
        {
            var ww = new WakeWord
            {
                Text                       = Text,
                PrefixAllowance            = PrefixAllowance,
                SuffixAllowance            = SuffixAllowance,
                Intent                     = Intent,
                RequestType                = RequestType,
                InlineRequestMinimumLength = InlineRequestMinimumLength,
                RecognizedText             = recognizedText,
                InlineRequestText          = string.Empty
            };

            if (InlineRequestMinimumLength > 0 && RecognizedText != null)
            {
                var requestText = RecognizedText.Substring(RecognizedText.IndexOf(Text) + Text.Length);
                if (requestText.Length >= InlineRequestMinimumLength)
                {
                    InlineRequestText = requestText;
                }
            }

            return(ww);
        }
コード例 #2
0
ファイル: ABBYOCR.cs プロジェクト: tieuloitu1/NewProject
        private static void AddRectangeTable(bool drawLine, RecognizedText recognizedItem, List <Rectangle> rectangleBlockItems, List <Rectangle> rectangleTableColorItems, List <Rectangle> rectangleRowItems, List <Rectangle> rectangleLineItems)
        {
            foreach (var tableItem in recognizedItem.Page.TableItems)
            {
                Rectangle rectangle = new Rectangle()
                {
                    X      = tableItem.X,
                    Y      = tableItem.Y,
                    Width  = tableItem.Width,
                    Height = tableItem.Height,
                };
                rectangleTableColorItems.Add(rectangle);

                foreach (var rowItem in tableItem.RowItems)
                {
                    Rectangle rectangleRow = new Rectangle()
                    {
                        X      = rowItem.X,
                        Y      = rowItem.Y,
                        Width  = rowItem.Width,
                        Height = rowItem.Height,
                    };
                    rectangleRowItems.Add(rectangleRow);
                    AddRectangeBlock(drawLine, rowItem.BlockItems, rectangleBlockItems, rectangleLineItems);
                }
            }
        }
コード例 #3
0
        private void RaiseRecognizedText(string text)
        {
            var data = new RecognizedTextArgs
            {
                Text = text
            };

            RecognizedText?.Invoke(this, data);
        }
コード例 #4
0
        public void ManageKebab(object sender, SpeechRecognizedEventArgs e)
        {
            if (!_speechRecognition.IsSpeechOn)
            {
                return;
            }
            var result = new RecognizedText(e);

            Console.WriteLine($@"ROZPOZNANO (wiarygodność: {result.Confidence:0.000}): '{result.ToString()}'");
            _textAnalyzer.AnalyzeText(result);
        }
コード例 #5
0
 private void OnRecognizedText(string text)
 {
     RecognizedText?.Invoke
     (
         this,
         new RecognizedTextArgs
     {
         Text = text
     }
     );
 }
コード例 #6
0
        public bool Send(RecognizedText text)
        {
            if (!isEnable)
            {
                return(false);
            }

            var options = new JsonSerializerOptions {
                WriteIndented = true,
            };
            var jsonUtf8String = JsonSerializer.SerializeToUtf8Bytes(text, options);

            WebRequest request = WebRequest.Create(Uri);

            request.Method        = "POST";
            request.ContentLength = jsonUtf8String.Length;
            request.ContentType   = "application/json";
            request.Timeout       = 10000;

            var dataStream = request.GetRequestStream();
            var jsonString = JsonSerializer.Serialize(text, options);

            Debug.WriteLine(jsonString);
            dataStream.Write(jsonUtf8String, 0, jsonUtf8String.Length);
            dataStream.Close();

            try
            {
                var response   = request.GetResponse();
                var statusCode = ((HttpWebResponse)response).StatusCode;
                if (statusCode == HttpStatusCode.OK)
                {
                    isEnable = true;
                    return(true);
                }
            }
            catch (WebException ex)
            {
                Debug.WriteLine(String.Format("HTTP Exception: {0}", ex.Message));
                isEnable = false;
                return(false);
            }

            isEnable = false;
            return(false);
        }
コード例 #7
0
 private void ProcessHelpMessages(RecognizedText recognizedText)
 {
     if (_formList.Any(a => (a.IdEqualsIgnoreCase(recognizedText.Default))))
     {
         Form form = _formList.First(a => (a.IdEqualsIgnoreCase(recognizedText.Default)));
         if (form.Id.Equals("Stop"))
         {
             _speechRecognition.StopSpeech();
             _mainWindow.SetLabels(_order);
             _speaker.Speak(form.Block.Prompt.Message);
             Environment.Exit(0);
         }
         else
         {
             ResetOrder();
         }
     }
 }
コード例 #8
0
        private void FillKnownProperties(RecognizedText recognizedText)
        {
            if (!string.IsNullOrEmpty(recognizedText.Meal))
            {
                _order.Meal = recognizedText.Meal;
            }

            if (!string.IsNullOrEmpty(recognizedText.Kind))
            {
                _order.Kind = recognizedText.Kind;
            }

            if (!string.IsNullOrEmpty(recognizedText.Sauce))
            {
                _order.Sauce = recognizedText.Sauce;
            }

            _mainWindow.SetLabels(_order);
        }
コード例 #9
0
        public void AnalyzeText(RecognizedText text)
        {
            if (text.Confidence >= ConfidenceThreshold)
            {
                if (text.Default != "")
                {
                    ProcessHelpMessages(text);
                }

                else
                {
                    if (_order.Meal == "" && text.Meal != "")
                    {
                        SetNewCurrentForm(text.Meal);
                    }
                    if (_order.Kind == "" && text.Kind != "")
                    {
                        SetNewCurrentForm(text.Kind);
                        if (_order.Sauce != "")
                        {
                            SetNewCurrentForm(_order.Sauce);
                        }
                    }
                    if (_order.Sauce == "" && text.Sauce != "")
                    {
                        SetNewCurrentForm(text.Sauce);
                    }
                    FillKnownProperties(text);

                    if (_order.OrderReady() && text.Confirmation != "")
                    {
                        SetNewCurrentForm(text.Confirmation);
                    }
                    FormInterpretationAlgorithm(_currentForm);
                }
            }
            else
            {
                _speaker.SpeakAsync($"Proszę powtórzyć");
            }
        }
コード例 #10
0
 private void CreateRecogStream()
 {
     recSt?.Dispose();
     recSt = Observable.CombineLatest(ClipImages.Select(clip => clip.Text)).Subscribe(list => RecognizedText.OnNext(list.ToList()));
 }
コード例 #11
0
        public MainWindowViewModel()
        {
            StartCapture = new ReactiveCommand();
            StartCapture.Subscribe(() =>
            {
                if (CreateCaptureItemForWindow(SelectedWindow.Value.Hwnd, out var result))
                {
                    var item = (GraphicsCaptureItem)Marshal.GetObjectForIUnknown(result);
                    CurrentGraphicsCaptureItem.Value = item;
                    util.StartCaptureInternal(item);
                }
            });

            AddClip.Subscribe(() =>
            {
                if (util == null)
                {
                    return;
                }
                var clip = new App1.ClipImage();
                var vm   = new ClipImageViewModel(clip);
                var co   = new App1.ClipImageConteir(clip);
                util.ClipImages.Add(clip, co);
                ClipImages.Add(vm);
                CreateRecogStream();
            });
            RemoveClip.Subscribe(vm =>
            {
                if (vm == null)
                {
                    return;
                }
                if (util != null)
                {
                    var co = util.ClipImages.GetValueOrDefault(vm.ClipImage);
                    util.ClipImages.Remove(vm.ClipImage);
                    co.Dispose();
                }
                if (SelectedClipImage.Value == vm)
                {
                    SelectedClipImage.Value = null;
                }
                ClipImages.Remove(vm);
                CreateRecogStream();
            });
            ScriptReslut = Observable.CombineLatest(Script, RecognizedText.Pairwise(), (script, pair) => (script, pair)).SelectMany(async scriptData =>
            {
                try
                {
                    var state = await CSharpScript.RunAsync <ScriptResult>(scriptData.script, globals: new ScriptModel(scriptData.pair.OldItem, scriptData.pair.NewItem));
                    return(state.ReturnValue);
                }
                catch (Exception e)
                {
                    return(new ScriptResult
                    {
                        IsRead = false,
                        Text = e.ToString()
                    });
                }
            }
                                                                                                                                    ).ToReadOnlyReactiveProperty();

            ScriptReslut.Where(result => result != null).Where(result => !string.IsNullOrWhiteSpace(result.Text)).Where(result => result.IsRead).Select(result => result.Text).Distinct().Subscribe(async text =>
            {
                if (!Reading.Value)
                {
                    return;
                }
                var json = System.Text.Json.JsonSerializer.Serialize(new VoiceloidParam
                {
                    Effects = new VoiceloidEffects
                    {
                        Volume     = Volume.Value,
                        Speed      = Speed.Value,
                        Pitch      = Pitch.Value,
                        Intonation = Intonation.Value
                    },
                    Talktext = text
                },
                                                                     new System.Text.Json.JsonSerializerOptions {
                    PropertyNamingPolicy = System.Text.Json.JsonNamingPolicy.CamelCase
                });
                var content = new StringContent(json, Encoding.UTF8, @"application/json");
                try
                {
                    await httpClient.PostAsync("http://localhost:7180//PLAY2/1700", content);
                }
                catch { }
            });

            var byteArray = Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "SeikaServerUser", "SeikaServerPassword"));

            httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
            RefreshWindow.Subscribe(() => RefreshWindows());
            RefreshWindows();
        }