コード例 #1
0
        public override async Task <SpeechEnroller.Result> TrainAsync()
        {
            if (IsSessionOpen && !IsSessionClosing)
            {
                IsSessionClosing = true;
                EnrollResults.Clear();
                Content.Clear();

                Uri uri = Configuration.Server.BuildEndpoint(URI_PATH_TRAIN);

                Logger?.LogDebug("SpeechEnroller_HttpClient_Version1.TrainAsync(): URI: " + uri.ToString());

                using (var request = BuildRequest(CallMode.Train, uri))
                {
                    try
                    {
                        await HandleResponse(CallMode.Train, request, await mHttpClient.SendAsync(request));
                    }
                    catch (HttpRequestException ex)
                    {
                        EnrollResult = SpeechEnroller.Result.Timeout;
                        Logger?.LogError(ex);
                    }
                    return(EnrollResult);
                }
            }
            return(EnrollResult = SpeechEnroller.Result.Invalid);
        }
コード例 #2
0
        public override SpeechEnroller.Result Post()
        {
            if (IsSessionOpen && !IsSessionClosing)
            {
                EnrollResults.Clear();

                Uri uri = Configuration.Server.BuildEndpoint(URI_PATH_PROCESS);

                Logger?.LogDebug("SpeechEnroller_HttpClient_Version1.Post(): URI: " + uri.ToString());

                using (var request = BuildRequest(CallMode.Process, uri))
                {
                    try
                    {
                        var responseTask = mHttpClient.SendAsync(request);

                        responseTask.RunSynchronously();

                        var resultTask = HandleResponse(CallMode.Process, request, responseTask.Result);

                        resultTask.RunSynchronously();
                    }
                    catch (HttpRequestException ex)
                    {
                        EnrollResult = SpeechEnroller.Result.Timeout;
                        Logger?.LogError(ex);
                    }
                    return(EnrollResult);
                }
            }
            return(EnrollResult = SpeechEnroller.Result.Invalid);
        }
コード例 #3
0
        public override void Cancel(string reason, SpeechEnroller.CancelCallback callback)
        {
            if (IsSessionOpen && !IsSessionClosing)
            {
                IsSessionClosing = true;
                EnrollResults.Clear();
                Content.Clear();

                if (string.IsNullOrEmpty(reason))
                {
                    reason = "Unknown";
                }
                else
                {
                    reason = reason.Replace(' ', '-').Substring(0, System.Math.Min(reason.Length, 64));
                }

                Uri uri = Configuration.Server.BuildEndpoint(URI_PATH_CANCEL, reason);

                Logger?.LogDebug("SpeechEnroller_HttpClient_Version1.Cancel(callback): URI: " + uri.ToString());

                using (var request = BuildRequest(CallMode.Cancel, uri))
                {
                    var task = mHttpClient.SendAsync(request).ContinueWith((requestTask) => {
                        if (requestTask.IsFaulted)
                        {
                            EnrollResult = SpeechEnroller.Result.Timeout;
                            Logger?.LogError(requestTask.Exception);
                            callback?.Invoke();
                            return;
                        }
                        HandleResponse(CallMode.Cancel, request, requestTask.Result).ContinueWith((responseTask) => {
                            if (responseTask.IsFaulted)
                            {
                                EnrollResult = SpeechEnroller.Result.Timeout;
                                Logger?.LogError(responseTask.Exception);
                                callback?.Invoke();
                                return;
                            }
                            callback?.Invoke();
                        });
                    });

                    if (task.IsFaulted)
                    {
                        EnrollResult = SpeechEnroller.Result.Timeout;
                        Logger?.LogError(task.Exception);
                        callback?.Invoke();
                    }

                    return;
                }
            }
            EnrollResult = SpeechEnroller.Result.Invalid;
            callback?.Invoke();
        }
コード例 #4
0
        public override void Train(SpeechEnroller.TrainCallback callback)
        {
            if (IsSessionOpen && !IsSessionClosing)
            {
                IsSessionClosing = true;
                EnrollResults.Clear();
                Content.Clear();

                Uri uri = Configuration.Server.BuildEndpoint(URI_PATH_TRAIN);

                Logger?.LogDebug("SpeechEnroller_HttpClient_Version1.Train(callback): URI: " + uri.ToString());

                using (var request = BuildRequest(CallMode.Train, uri))
                {
                    var task = mHttpClient.SendAsync(request).ContinueWith((requestTask) => {
                        if (requestTask.IsFaulted)
                        {
                            EnrollResult = SpeechEnroller.Result.Timeout;
                            Logger?.LogError(requestTask.Exception);
                            callback?.Invoke(EnrollResult);
                            return;
                        }
                        HandleResponse(CallMode.Train, request, requestTask.Result).ContinueWith((responseTask) => {
                            if (responseTask.IsFaulted)
                            {
                                EnrollResult = SpeechEnroller.Result.Timeout;
                                Logger?.LogError(responseTask.Exception);
                                callback?.Invoke(EnrollResult);
                                return;
                            }
                            callback?.Invoke(EnrollResult);
                        });
                    });

                    if (task.IsFaulted)
                    {
                        EnrollResult = SpeechEnroller.Result.Timeout;
                        Logger?.LogError(task.Exception);
                        callback?.Invoke(EnrollResult);
                    }

                    return;
                }
            }
            callback?.Invoke(EnrollResult = SpeechEnroller.Result.Invalid);
        }
コード例 #5
0
        public override bool Cancel(string reason)
        {
            if (IsSessionOpen && !IsSessionClosing)
            {
                IsSessionClosing = true;
                EnrollResults.Clear();
                Content.Clear();

                if (string.IsNullOrEmpty(reason))
                {
                    reason = "Unknown";
                }
                else
                {
                    reason = reason.Replace(' ', '-').Substring(0, System.Math.Min(reason.Length, 64));
                }

                Uri uri = Configuration.Server.BuildEndpoint(URI_PATH_CANCEL, reason);

                Logger?.LogDebug("SpeechEnroller_HttpClient_Version1.Cancel(): URI: " + uri.ToString());

                using (var request = BuildRequest(CallMode.Cancel, uri))
                {
                    try
                    {
                        var responseTask = mHttpClient.SendAsync(request);

                        responseTask.RunSynchronously();

                        var resultTask = HandleResponse(CallMode.Cancel, request, responseTask.Result);

                        resultTask.RunSynchronously();

                        return(resultTask.Result);
                    }
                    catch (HttpRequestException ex)
                    {
                        EnrollResult = SpeechEnroller.Result.Timeout;
                        Logger?.LogError(ex);
                    }
                }
            }
            return(false);
        }
コード例 #6
0
 protected void ResetEnroller()
 {
     SessionId = "";
     Codec     = WaveFormatEncoding.Unknown;
     Profiles.Clear();
     EnrollResults.Clear();
     EnrollResult = SpeechEnroller.Result.NeedMore;
     MetaData.Clear();
     ExtraData.Clear();
     Content.Clear();
     CookieContainer     = new CookieContainer();
     TotalSnippetsSent   = 0;
     TotalAudioBytesSent = 0;
     TotalProcessCalls   = 0;
     SpeechRequired      = 0;
     SpeechExtracted     = 0;
     IsSessionOpen       = false;
     IsSessionClosing    = false;
     IsTooSoft           = false;
     IsTooLoud           = false;
 }