Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
 public async Task <TranscriptionResponse> SubmitAudioFileAsync(TranscriptionRequest transcriptionRequest)
 {
     return(await _helper.SubmitAsync(transcriptionRequest));
 }
Ejemplo n.º 6
0
        public StringContent ConvertToStringContent(TranscriptionRequest transcriptionRequest)
        {
            string jsonString = JsonSerializer.Serialize(transcriptionRequest, _serializeOptions);

            return(new StringContent(jsonString, Encoding.UTF8, "application/json"));
        }
Ejemplo n.º 7
0
        public async Task <TranscriptionResponse> SubmitAsync(TranscriptionRequest transcriptionRequest)
        {
            StringContent payload = ConvertToStringContent(transcriptionRequest);

            return(await PostAsync(payload));
        }
Ejemplo n.º 8
0
 public async Task RequestTranscriptAsync(TranscriptionRequest transcriptionRequest)
 {
     await Connection.Queue.EnqueueAsync("Voicebase", new FileBasedMessage(transcriptionRequest.FileIdentifier));
 }