public async Task <string> TranscriptAsync(Stream wavVoiceStream)
        {
            var audio = await RecognitionAudio.FromStreamAsync(wavVoiceStream);

            var client = SpeechClient.Create();
            var config = new RecognitionConfig
            {
                LanguageCode = LANGUAGE
            };
            var response = await client.RecognizeAsync(config, audio);

            var alternative = response.Results.FirstOrDefault()?.Alternatives.FirstOrDefault();

            return(alternative?.Transcript ?? string.Empty);
        }
Example #2
0
        public async Task <IActionResult> InsertAudio(int caminhaoId, IFormFile file)
        {
            try
            {
                MemoryStream msAudio = new MemoryStream();
                file.CopyTo(msAudio);

                /* Grava no S3*/
                var link = await _serv.SalvaAudioNoS3(msAudio);

                /* Transcreve audio */
                string AudioTranscrito = String.Empty;

                var speech   = SpeechClient.Create();
                var response = speech.Recognize(new RecognitionConfig()
                {
                    Encoding     = RecognitionConfig.Types.AudioEncoding.EncodingUnspecified,
                    LanguageCode = "pt-br",
                },
                                                await RecognitionAudio.FromStreamAsync(file.OpenReadStream()));

                foreach (var result in response.Results)
                {
                    foreach (var alternative in result.Alternatives)
                    {
                        AudioTranscrito = alternative.Transcript;
                    }
                }

                await _serv.SalvaMensagemBanco(link, AudioTranscrito, 1, caminhaoId, "you");

                return(Ok(file));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }