All checks were successful
Deploy ASP.NET MVC to OCI / build-and-deploy (push) Successful in 22m1s
71 lines
2.9 KiB
Plaintext
71 lines
2.9 KiB
Plaintext
@{
|
|
ViewData["Title"] = "Áudio para Texto (Transcrição)";
|
|
var culture = ViewContext.RouteData.Values["culture"] as string ?? "pt-BR";
|
|
Layout = "_Layout";
|
|
}
|
|
|
|
<div class="text-center mb-5">
|
|
<h1 class="display-4">@ViewData["Title"]</h1>
|
|
<p class="lead">Converta áudios do WhatsApp, reuniões ou gravações em texto automaticamente usando IA.</p>
|
|
</div>
|
|
|
|
<div class="row justify-content-center">
|
|
<div class="col-md-8">
|
|
<div class="card shadow-custom p-4">
|
|
<form asp-action="Transcribe" method="post" enctype="multipart/form-data">
|
|
<div class="mb-4">
|
|
<label for="audioFile" class="form-label h5">Selecione o arquivo de áudio</label>
|
|
<input type="file" class="form-control form-control-lg" id="audioFile" name="audioFile" accept="audio/*" required>
|
|
<div class="form-text mt-2">Formatos suportados: MP3, WAV, OGG, OPUS, M4A, etc.</div>
|
|
</div>
|
|
|
|
<div class="d-grid gap-2">
|
|
<button type="submit" class="btn btn-primary btn-lg">
|
|
<i class="bi bi-mic-fill me-2"></i>Transcrever Áudio
|
|
</button>
|
|
</div>
|
|
</form>
|
|
|
|
@if (ViewBag.Error != null)
|
|
{
|
|
<div class="alert alert-danger mt-4" role="alert">
|
|
<i class="bi bi-exclamation-triangle-fill me-2"></i>@ViewBag.Error
|
|
</div>
|
|
}
|
|
|
|
@if (ViewBag.Result != null)
|
|
{
|
|
<div class="mt-5">
|
|
<h4 class="mb-3">Transcrição:</h4>
|
|
<div class="p-3 bg-light border rounded" style="min-height: 150px; white-space: pre-wrap;">@ViewBag.Result</div>
|
|
|
|
<div class="mt-3 d-flex gap-2">
|
|
<button class="btn btn-outline-secondary btn-sm" onclick="copyTranscription()">
|
|
<i class="bi bi-clipboard me-1"></i>Copiar Texto
|
|
</button>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
|
|
<div class="mt-5">
|
|
<h3 class="h5 mb-3"><i class="bi bi-shield-check me-2"></i>Privacidade e Tecnologia</h3>
|
|
<p class="text-muted small">
|
|
Seu áudio é processado usando a tecnologia <strong>OpenAI Whisper</strong> rodando diretamente em nosso servidor.
|
|
Não enviamos seus dados para APIs externas e os arquivos temporários são deletados imediatamente após a conversão.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@section Scripts {
|
|
<script>
|
|
function copyTranscription() {
|
|
const text = document.querySelector('.bg-light.border.rounded').innerText;
|
|
navigator.clipboard.writeText(text).then(() => {
|
|
alert('Transcrição copiada!');
|
|
});
|
|
}
|
|
</script>
|
|
}
|