/// <summary>
 /// 关闭语音识别方法
 /// </summary>
 /// <param name="service"></param>
 /// <param name="callback"></param>
 /// <returns></returns>
 public static async Task CloseAsync(this RecognizerService service, Func <RecognizerStatus, string?, Task> callback)
 {
     var option = new RecognizerOption()
     {
         MethodName = "bb_azure_close_recognizer",
         Callback   = callback
     };
     await service.InvokeAsync(option);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 关闭语音识别方法
 /// </summary>
 /// <param name="service"></param>
 /// <param name="callback"></param>
 /// <returns></returns>
 public static async Task CloseAsync(this RecognizerService service, Func <RecognizerStatus, string?, Task>?callback = null)
 {
     var option = new RecognizerOption()
     {
         MethodName = "bb_baidu_speech_close",
         Callback   = callback
     };
     await service.InvokeAsync(option);
 }
Ejemplo n.º 3
0
 private async Task OnStart()
 {
     if (ButtonText == "开始识别")
     {
         await RecognizerService.RecognizeOnceAsync(Recognize, 5000);
     }
     else
     {
         Start      = false;
         ButtonText = "开始识别";
         StateHasChanged();
         await RecognizerService.CloseAsync(Recognize);
     }
 }
Ejemplo n.º 4
0
    /// <summary>
    /// 语音识别方法
    /// </summary>
    /// <param name="service"></param>
    /// <param name="callback"></param>
    /// <param name="autoRecoginzerElapsedMilliseconds">默认 5000 毫秒后自动识别,设置 0 时禁用</param>
    public static async Task RecognizeOnceAsync(this RecognizerService service, Func <RecognizerStatus, string?, Task> callback, int?autoRecoginzerElapsedMilliseconds = null)
    {
        var option = new RecognizerOption()
        {
            MethodName = "bb_baidu_speech_recognizeOnce",
            Callback   = callback
        };

        // 设置自动识别时间
        if (autoRecoginzerElapsedMilliseconds.HasValue)
        {
            option.AutoRecoginzerElapsedMilliseconds = autoRecoginzerElapsedMilliseconds.Value;
        }
        await service.InvokeAsync(option);
    }
Ejemplo n.º 5
0
        public RecognizerInfoOutput FetchInstruction([FromBody] RecognizerInfoInput input)
        {
            RecognizerInfoOutput output = new RecognizerInfoOutput();

            if (input == null)
            {
                Response.StatusCode = 400;
                output.Result       = "INPUT_IS_NULL";
            }
            else
            {
                RecognizerService recogService = new RecognizerService(input.RecognizerId, input.RecognizerKey, _db);
                if (recogService.IsAuthentic)
                {
                    RecognizerTask task = recogService.GetLastUnreadTask();
                    if (task == null)
                    {
                        output.Result = "NO_NEW_TASK";
                    }
                    else
                    {
                        task.Status       = 2;
                        task.DateModified = DateTime.UtcNow.AddHours(8);
                        _db.SaveChanges();

                        output.TaskId         = task.Id;
                        output.Command        = task.Command;
                        output.PrimaryValue   = task.PrimaryValue;
                        output.SecondaryValue = task.SecondaryValue;
                        output.Result         = "OK";
                    }
                }
                else
                {
                    Response.StatusCode = 400;
                    output.Result       = "CREDENTIAL_ERROR";
                }
            }

            return(output);
        }
Ejemplo n.º 6
0
        public RecognizerInfoOutput MarkTaskComplete([FromBody] RecognizerInfoInput input)
        {
            RecognizerInfoOutput output = new RecognizerInfoOutput();

            if (input == null)
            {
                Response.StatusCode = 400;
                output.Result       = "INPUT_IS_NULL";
            }
            else
            {
                RecognizerService recogService = new RecognizerService(input.RecognizerId, input.RecognizerKey, _db);
                if (recogService.IsAuthentic)
                {
                    RecognizerTask task = recogService.Recognizer.List_RecognizerTask.Where(e => e.Id.Equals(input.RecognizerTaskId) && e.Deleted == false).FirstOrDefault();
                    if (task == null)
                    {
                        Response.StatusCode = 400;
                        output.Result       = "TASK_NOT_EXIST";
                    }
                    else
                    {
                        task.DateModified = DateTime.UtcNow.AddHours(8);
                        task.Status       = 3;
                        _db.SaveChanges();

                        output.Result = "OK";
                    }
                }
                else
                {
                    Response.StatusCode = 400;
                    output.Result       = "CREDENTIAL_ERROR";
                }
            }
            return(output);
        }
Ejemplo n.º 7
0
 private async Task OnTimeout()
 {
     await RecognizerService.CloseAsync(Recognize);
 }
 public TryController(StorageService storageService, RecognizerService recognizerService)
 {
     _storageService    = storageService;
     _recognizerService = recognizerService;
 }
Ejemplo n.º 9
0
        public async Task <RecognizerInfoOutput> GetStatus([FromBody] RecognizerInfoInput input)
        {
            RecognizerInfoOutput output = new RecognizerInfoOutput();

            if (input == null)
            {
                Response.StatusCode = 400;
                output.Result       = "INPUT_IS_NULL";
            }
            else
            {
                AspUserService aspUser = new AspUserService(_db, this);

                if (aspUser.IsAdmin)
                {
                    RecognizerService recogService = new RecognizerService(input.RecognizerId, _db);

                    if (!recogService.IsExist)
                    {
                        Response.StatusCode = 400;
                        output.Result       = "RECOGNIZER_NOT_EXIST";
                    }
                    else
                    {
                        string trainingStatus = "NONE";
                        if (!string.IsNullOrEmpty(input.Type))
                        {
                            if (input.Type.Equals("REGISTER_NEW_FACE"))
                            {
                                string            personGroupId = _db.SiteConfigs.Where(e => e.Key.Equals("PERSONGROUP")).FirstOrDefault().Value;
                                Uri               uri           = new Uri("https://bcp-facial.cognitiveservices.azure.com/face/v1.0/persongroups/" + personGroupId + "/training");
                                HttpClientHandler handler       = new HttpClientHandler();
                                HttpClient        client        = new HttpClient(handler);
                                //string respond = null;
                                client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "8d4c42ecbb784d909275492115ea56f0");
                                HttpResponseMessage response = await client.GetAsync(uri);

                                string siteUrl = _db.SiteConfigs.Where(e => e.Key.Equals("SITEURL")).First().Value;
                                string respond = await response.Content.ReadAsStringAsync();

                                dynamic jsonObj = JsonConvert.DeserializeObject(respond);
                                if (jsonObj.status != null)
                                {
                                    trainingStatus = jsonObj.status;
                                }
                                else
                                {
                                    trainingStatus = "NONE";
                                }
                            }
                        }
                        output.RecognizerId     = recogService.Recognizer.Id;
                        output.RecognizerStatus = recogService.GetStatus();
                        output.LastActivity     = recogService.GetDurationSince();

                        if (trainingStatus == "running")
                        {
                            output.Result = "TRAINING_IN_PROGRESS";
                        }
                        else
                        {
                            output.Result = "OK";
                        }
                    }
                }
                else
                {
                    Response.StatusCode = 400;
                    output.Result       = "NO_PRIVILEGE";
                }
            }
            return(output);
        }