private async void InstantMessageReceived(object sender, MessageSentEventArgs e) { var text = e.Text.Replace(Environment.NewLine, string.Empty); string myRemoteParticipantUri = (sender as InstantMessageModality).Endpoint.Uri.Replace("sip:", string.Empty); var username_string = (sender as InstantMessageModality).Participant.Contact.GetContactInformation(ContactInformationType.DisplayName);; try { //LogMessage(myRemoteParticipantUri, text); string strResult = ""; apiAi = Get_apiai_object_from_username(myRemoteParticipantUri); List <AIContext> aicontext = new List <AIContext>(); AIContext user_info = new AIContext(); user_info.Name = "skype_username="******"speech"].ToString(); strResult = ret_text; (sender as InstantMessageModality).BeginSendMessage(strResult, null, null); } catch (Exception ex) { //LogMessage(myRemoteParticipantUri, ex.Message); } }
public override void StartListening(RequestExtras requestExtras = null) { if (!recognitionActive) { this.requestExtras = requestExtras; var sttIntent = new Intent(RecognizerIntent.ActionRecognizeSpeech); sttIntent.PutExtra(RecognizerIntent.ExtraLanguageModel, RecognizerIntent.LanguageModelFreeForm); var language = config.Language.code.Replace('-', '_'); sttIntent.PutExtra(RecognizerIntent.ExtraLanguage, language); sttIntent.PutExtra(RecognizerIntent.ExtraLanguagePreference, language); // WORKAROUND for https://code.google.com/p/android/issues/detail?id=75347 // TODO Must be removed after fix in Android sttIntent.PutExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[] { }); RunInUIThread(() => { InitializeRecognizer(); speechRecognizer.StartListening(sttIntent); recognitionActive = true; }); } else { Log.Warn(TAG, "Trying to start recognition while another recognition active"); } }
public AIRequest (string text, RequestExtras requestExtras):this(text) { if (requestExtras != null) { requestExtras.CopyTo(this); } }
public AIResponse VoiceRequest(Stream voiceStream, RequestExtras requestExtras = null) { var request = new AIRequest(); request.Language = config.Language.code; request.Timezone = TimeZone.CurrentTimeZone.StandardName; request.SessionId = SessionId; if (requestExtras != null) { requestExtras.CopyTo(request); } try { var httpRequest = (HttpWebRequest)WebRequest.Create(config.RequestUrl); httpRequest.Method = "POST"; httpRequest.Accept = "application/json"; httpRequest.Headers.Add("Authorization", "Bearer " + config.ClientAccessToken); var jsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var jsonRequest = JsonConvert.SerializeObject(request, Formatting.None, jsonSettings); if (config.DebugLog) { Debug.WriteLine("Request: " + jsonRequest); } var multipartClient = new MultipartHttpClient(httpRequest); multipartClient.connect(); multipartClient.addStringPart("request", jsonRequest); multipartClient.addFilePart("voiceData", "voice.wav", voiceStream); multipartClient.finish(); var responseJsonString = multipartClient.getResponse(); if (config.DebugLog) { Debug.WriteLine("Response: " + responseJsonString); } var aiResponse = JsonConvert.DeserializeObject <AIResponse>(responseJsonString); CheckForErrors(aiResponse); return(aiResponse); } catch (Exception e) { throw new AIServiceException(e); } }
public ActionResult SendTextMessage(String text, List <AIContext> contexts) { if (HomeController.apiAi == null) { var config = new AIConfiguration("2fe096a4e267427c9d3443810a7b82e2", SupportedLanguage.English); HomeController.apiAi = new ApiAi(config); } RequestExtras re = new RequestExtras(); // TODO: Get the context //re.Contexts = (List<AIContext>)HttpContext.Session["Contexts"]; re.Contexts = contexts; AIResponse response = HomeController.apiAi.TextRequest(text, re); if (response.IsError) { Console.Out.Write("There is an error"); return(Json(new { Response = "error" }, JsonRequestBehavior.AllowGet)); } else { Console.Out.Write(response.Result.Fulfillment.Speech); if (response.Result.Contexts != null) { contexts = new List <AIContext>(); foreach (var aoc in response.Result.Contexts.ToList()) { AIContext ac = new AIContext(); ac.Lifespan = aoc.Lifespan; ac.Name = aoc.Name; ac.Parameters = aoc.Parameters.ToDictionary(k => k.Key, k => k.Value.ToString());; contexts.Add(ac); } } else { contexts = null; } return(Json(new { Response = response.Result.Fulfillment.Speech, contexts = contexts })); } }
static void WaitText() { string text = Console.ReadLine(); RequestExtras extras = new RequestExtras(); AIRequest request = new AIRequest(text); request.SessionId = _SessionId; AIResponse response = _ApiAi.TextRequest(request); HandleResponse(response); }
public static string GetResponse(string inputMessage) { var config = new AIConfiguration(ConfigurationManager.AppSettings["ApiAi-ClientAccessToken"], SupportedLanguage.English); ApiAi apiAi = new ApiAi(config); RequestExtras extras = new RequestExtras(contexts, entities); var response = apiAi.TextRequest(inputMessage, extras); var outcontexts = response.Result.Contexts; var output = response.Result.Fulfillment.Speech; return(output); }
protected void ClearRecognizer() { if (speechRecognizer != null) { lock (speechRecognizerLock) { if (speechRecognizer != null) { speechRecognizer.Destroy(); speechRecognizer = null; requestExtras = null; } } } }
public override void Cancel() { if (recognitionActive) { RunInUIThread(() => { lock (speechRecognizerLock) { if (recognitionActive) { speechRecognizer.Cancel(); recognitionActive = false; requestExtras = null; } } }); } }
private void test_function() { string username = "******"; ApiAi apiAi = Get_apiai_object_from_username(username); List <AIContext> aicontext = new List <AIContext>(); AIContext user_info = new AIContext(); user_info.Name = "skype_username=test"; aicontext.Add(user_info); List <Entity> entity = new List <Entity>(); var extras_info = new RequestExtras(aicontext, entity); var response = apiAi.TextRequest("I m cold, from someone says", extras_info); Newtonsoft.Json.Linq.JObject res_data = (Newtonsoft.Json.Linq.JObject)response.Result.Fulfillment.Messages[0]; string ret_text = res_data["speech"].ToString(); MessageBox.Show("for " + username + " : " + ret_text); username = "******"; apiAi = Get_apiai_object_from_username("user2"); response = apiAi.TextRequest("yes", extras_info); res_data = (Newtonsoft.Json.Linq.JObject)response.Result.Fulfillment.Messages[0]; ret_text = res_data["speech"].ToString(); MessageBox.Show("for " + username + " : " + ret_text); username = "******"; apiAi = Get_apiai_object_from_username(username); response = apiAi.TextRequest("no", extras_info); res_data = (Newtonsoft.Json.Linq.JObject)response.Result.Fulfillment.Messages[0]; ret_text = res_data["speech"].ToString(); MessageBox.Show("for " + username + " : " + ret_text); username = "******"; apiAi = Get_apiai_object_from_username(username); response = apiAi.TextRequest("332", extras_info); res_data = (Newtonsoft.Json.Linq.JObject)response.Result.Fulfillment.Messages[0]; ret_text = res_data["speech"].ToString(); MessageBox.Show(ret_text); }
public virtual string getIntentApiAi(string str, string context) { try { RequestExtras exstra = new RequestExtras(); var contextAI = new AIContext(); contextAI.Name = context; contextAI.Lifespan = 10; exstra.Contexts = new List <AIContext>(); exstra.Contexts.Add(contextAI); var response = apiAi.TextRequest(str, exstra); var intent = response.Result.Metadata.IntentName; return(intent); } catch (Exception ex) { return(null); } }
public override void Cancel() { lock (audioRecordLock) { // cancel recording if necessary if (isRecording) { StopRecording(); isRecording = false; requestExtras = null; OnListeningFinished(); } // cancel any operation var cts = cancellationTokenSource; if (cts != null && !cts.IsCancellationRequested) { cts.Cancel(); } } }
public static AIResponse TextRequest(this RasaAi rasa, string text, RequestExtras requestExtras) { return(rasa.TextRequest(new AIRequest(text, requestExtras))); }
public IActionResult GetResponseFromDialogFlow(string question, string context, string conversationId) { var config = new AIConfiguration("27a5dfa1bde94f2eb109717143748e78", SupportedLanguage.Italian); var apiAi = new ApiAiSDK.ApiAi(config); switch (context) { case "mail": try { var addr = new System.Net.Mail.MailAddress(question); question = "mailUtente"; } catch (Exception) { context = "InvalidMail"; question = "mailUtenteNonValida"; } break; case "seriale": question = "serialeUtente"; var requests = _dbContext.Get <Freight>(Consts.FreightTable).FindAll().AsQueryable(); var freight = requests.FirstOrDefault(x => x.FreightDescriptions == question); if (freight != null && freight.HasSupport) { return(Ok(new { data = "I dati relativi al suo ticket sono : seriale : " + freight.FreightDescriptions + "marca : " + freight.Brand + "modello :" + freight.Model, context = "" })); } else { return(Ok(new { data = "Il suo ticket è stato rifiutato", context = "" })); } case "nomecognome": question = "nomeCognomeUtente"; break; } var contexts = new List <AIContext> { new AIContext { Name = context, Lifespan = 1 } }; var requestExtras = new RequestExtras { Contexts = contexts }; var response = apiAi.TextRequest(question, requestExtras); var responseText = response.Result.Fulfillment.Speech; if (responseText.Contains("0") && responseText.Contains("#")) { var link = responseText.Substring(responseText.IndexOf("#", StringComparison.Ordinal) + 1); responseText = responseText.Remove(responseText.IndexOf("#", StringComparison.Ordinal)); responseText = responseText.Replace("0", link); } var messageDescriptor = new MessageDescriptor { OpenTicket = response.Result.Metadata.IntentName.Contains("ConfermaAperturaTicket"), Question = question, Response = responseText, SessionId = response.SessionId, TimeStamp = DateTime.Now, ConversationId = conversationId, TicketRefused = response.Result.Metadata.IntentName.Contains("RifiutoAperturaTicket"), IntentName = response.Result.Metadata.IntentName }; _dbContext.Set(messageDescriptor, Consts.MessageDescriptorTable); return(Ok(new { data = responseText, context = response.Result.Contexts.FirstOrDefault()?.Name })); }
/// <summary> /// Starts the voice recording /// </summary> public abstract void StartListening(RequestExtras requestExtras = null);