static async Task Main(string[] args) { var file = new Uri("https://tra7db0afiles01.blob.core.windows.net/mp3files/01-_In_the_Beginning.mp3"); AzureCognitiveServicesClient client = new AzureCognitiveServicesClient(); (Transcription response, HttpStatusCode code) = await client.SubmitTranscriptionRequestAsync(file); if (code != HttpStatusCode.Created) { Console.WriteLine($"Transcription failed with status code of {code}"); return; } Console.WriteLine($"Transcription submitted at {response.Self} with a status of {response.Status}"); Transcription currentStatus; HttpStatusCode currentStatusCode; do { Console.WriteLine($"Sleeping for 1 minute...."); Thread.Sleep(10000); (currentStatus, currentStatusCode) = await client.CheckTranscriptionRequestAsync(new Uri(response.Self)); if (currentStatusCode != HttpStatusCode.OK) { Console.WriteLine($"Transcription Status Checked failed with status code of {currentStatusCode}"); return; } else { Console.WriteLine($"Transcription Current status {currentStatus.Status}"); } } while(currentStatus.Status != "Succeeded"); Console.WriteLine($"Transcription succeeded. Downloading results from {currentStatus.Links.Files}"); (TranscriptionResults result, HttpStatusCode currentStatusCode2) = await client.DownloadTranscriptionResultAsync(new Uri(currentStatus.Links.Files)); var firstChannel = result.CombinedRecognizedPhrases.FirstOrDefault(); Console.WriteLine($"Results:\n{firstChannel.Display}"); }
public async Task <ActionResult> Transcribe(TradiureTranscriptionRequest request, CancellationToken cancellationToken) { try { _logger.LogInformation($"{request.TranscriptionId}. {request.BlobUri} was successfullly received by Dapr PubSub"); state = await _client.GetStateEntryAsync <TraduireTranscription>(Components.StateStoreName, request.TranscriptionId.ToString()); state.Value ??= new TraduireTranscription(); (TranscriptionResults result, HttpStatusCode code) = await _cogsClient.DownloadTranscriptionResultAsync(new Uri(request.BlobUri)); switch (code) { case HttpStatusCode.OK: _logger.LogInformation($"{request.TranscriptionId}. Transcription from '{request.BlobUri}' was saved to state store "); var firstChannel = result.CombinedRecognizedPhrases.FirstOrDefault(); await _serviceClient.PublishNotification(request.TranscriptionId.ToString(), state.Value.Status.ToString()); await UpdateStateRepository(TraduireTranscriptionStatus.Completed, firstChannel.Display); _logger.LogInformation($"{request.TranscriptionId}. All working completed on request"); return(Ok(request.TranscriptionId)); default: _logger.LogInformation($"{request.TranscriptionId}. Transcription Failed for an unexpected reason. Added to Failed Queue for review"); var failedEvent = await UpdateStateRepository(TraduireTranscriptionStatus.Failed, code, request.BlobUri); await _client.PublishEventAsync(Components.PubSubName, Topics.TranscriptionFailedTopicName, failedEvent, cancellationToken); break; } } catch (Exception ex) { _logger.LogWarning($"Nuts. Something really bad happened processing {request.BlobUri} - {ex.Message}"); } return(BadRequest()); }