public async Task <IActionResult> SpeechToText([FromBody] JObject request) { var watch = System.Diagnostics.Stopwatch.StartNew(); string methodName = "SpeechToText"; ResponseDTO response = new ResponseDTO(); try { Log.Write(appSettings, LogEnum.DEBUG.ToString(), label, className, methodName, $"REQUEST: {JsonConvert.SerializeObject(request)}"); SpeechToTextRequest requestBody = request.ToObject <SpeechToTextRequest>(); response.Result = await SpeechToTextService.SpeechToText(appSettings, requestBody); response.Success = true; watch.Stop(); Log.Write(appSettings, LogEnum.DEBUG.ToString(), label, className, methodName, $"RESULT: {JsonConvert.SerializeObject(response)} Execution Time: {watch.ElapsedMilliseconds} ms"); return(Ok(response)); } catch (Exception e) { response.Success = false; response.Msg = e.Message; watch.Stop(); Log.Write(appSettings, LogEnum.ERROR.ToString(), label, className, methodName, $"ERROR: {JsonConvert.SerializeObject(request)}"); Log.Write(appSettings, LogEnum.ERROR.ToString(), label, className, methodName, $"ERROR: {e.Source + Environment.NewLine + e.Message + Environment.NewLine + e.StackTrace}"); return(BadRequest(response)); } }
private SpeechToTextResponse Request(string linear16AudioAsBase64, string url) { var request = new SpeechToTextRequest(linear16AudioAsBase64); var jsonRequest = JsonConvert.SerializeObject(request, JsonSettings); var requestContent = new StringContent(jsonRequest, Encoding.UTF8, "application/json"); if (!string.IsNullOrWhiteSpace(_apiKey)) { _httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {_apiKey}"); } var requestUrl = UseProxyIfPossible(BaseUrl + url); var result = _httpClient.PostAsync(requestUrl, requestContent).Result; var response = result.Content.ReadAsStringAsync().Result; return(JsonConvert.DeserializeObject <SpeechToTextResponse>(response)); }