private async Task <TranscriptionResponse> UploadAudioSample(string url) { var transcriptionRequest = new TranscriptionRequest { AudioUrl = url, WebhookUrl = "https://e07ee3af6977.ngrok.io/api/download" }; return(await _assemblyAiService.SubmitAudioFileAsync(transcriptionRequest)); }
private async Task <TranscriptionResponse> UploadAudioSample(string url) { var transcriptionRequest = new TranscriptionRequest { AudioUrl = url, WebhookUrl = "https://1e95034e54fa.ngrok.io/api/download" }; return(await _transcriptionService.SubmitAudioFileAsync(transcriptionRequest)); }
public async Task RequestTranscriptAsync(TranscriptionRequest transcriptionRequest) { await Connection.ConcurrencyRetryBlock(async() => { var file = await Connection.File.GetAsync(transcriptionRequest.FileIdentifier); file.Write("attribute.requestedBy", Connection.UserIdentifier); await Connection.File.PutAsync(file); }); await Connection.Queue.EnqueueAsync("Voicebase", new FileBasedMessage(transcriptionRequest.FileIdentifier)); }
public override async Task TranscribeAudioStream(TranscriptionRequest request, IServerStreamWriter <TranscriptionReply> responseStream, ServerCallContext context) { var TranscriptionId = Guid.NewGuid(); var createdTime = DateTime.UtcNow.ToString(); var reply = new TranscriptionReply { TranscriptionId = TranscriptionId.ToString(), CreateTime = DateTime.UtcNow.ToString(), LastUpdateTime = DateTime.UtcNow.ToString(), Status = TraduireTranscriptionStatus.Started.ToString(), BlobUri = request.BlobUri, TranscriptionText = string.Empty }; _logger.LogInformation($"Transcription request was received."); try{ var state = await _daprClient.UpdateState(TranscriptionId, request.BlobUri); _logger.LogInformation($"{TranscriptionId}. Transcription request was successfullly saved as to {Components.StateStoreName} State Store"); await responseStream.WriteAsync(reply); await _daprClient.PublishEvent(TranscriptionId, request.BlobUri, context.CancellationToken); _logger.LogInformation($"{TranscriptionId}. {request.BlobUri} was successfullly published to {Components.PubSubName} pubsub store"); reply.Status = TraduireTranscriptionStatus.SentToCognitiveServices.ToString(); reply.LastUpdateTime = DateTime.UtcNow.ToString(); await responseStream.WriteAsync(reply); TraduireTranscription currentState; do { await Task.Delay(TimeSpan.FromSeconds(waitTime)); currentState = await _daprClient.GetState(TranscriptionId); _logger.LogInformation($"{TranscriptionId}. Transcription status is {currentState.Status}"); reply.Status = currentState.Status.ToString(); reply.LastUpdateTime = DateTime.UtcNow.ToString(); await responseStream.WriteAsync(reply); } while(currentState.Status != TraduireTranscriptionStatus.Completed); _logger.LogInformation($"{TranscriptionId}. Attempting to download completed transcription"); reply.TranscriptionText = currentState.TranscriptionText; await responseStream.WriteAsync(reply); } catch (Exception ex) { _logger.LogWarning($"Failed to transcribe {request.BlobUri} - {ex.Message}"); reply.Status = TraduireTranscriptionStatus.Failed.ToString(); reply.LastUpdateTime = DateTime.UtcNow.ToString(); await responseStream.WriteAsync(reply); } }
public async Task <TranscriptionResponse> SubmitAudioFileAsync(TranscriptionRequest transcriptionRequest) { return(await _helper.SubmitAsync(transcriptionRequest)); }
public StringContent ConvertToStringContent(TranscriptionRequest transcriptionRequest) { string jsonString = JsonSerializer.Serialize(transcriptionRequest, _serializeOptions); return(new StringContent(jsonString, Encoding.UTF8, "application/json")); }
public async Task <TranscriptionResponse> SubmitAsync(TranscriptionRequest transcriptionRequest) { StringContent payload = ConvertToStringContent(transcriptionRequest); return(await PostAsync(payload)); }
public async Task RequestTranscriptAsync(TranscriptionRequest transcriptionRequest) { await Connection.Queue.EnqueueAsync("Voicebase", new FileBasedMessage(transcriptionRequest.FileIdentifier)); }