whisper large v3, arranque run.sh

This commit is contained in:
2025-08-04 19:23:40 +00:00
parent 08cf12beb1
commit 4a22a68ce3
1244 changed files with 235 additions and 207 deletions

View File

@ -9,6 +9,7 @@ defmodule WhisperWeb.VadLive do
socket
|> assign(:transcription, "")
|> assign(:started, false)
|> assign(:transcriptions, [])
{:ok, socket}
end
@ -18,31 +19,50 @@ defmodule WhisperWeb.VadLive do
{:noreply, assign(socket, started: true)}
end
def handle_info({:transcription, raw_json}, socket) do
new_text =
raw_json
|> Jason.decode!()
|> get_in(["chunks", Access.at(0), "text"])
{:noreply, update(socket, :transcription, &(&1 <> " " <> new_text))}
def handle_event("stop_vad", _params, socket) do
push_event(socket, "stop-vad", %{})
{:noreply, assign(socket, started: false)}
end
def handle_info({:transcription, %{"received_at" => ts, "text" => new_text}}, socket) do
updated_transcriptions =
[%{received_at: ts, text: new_text} | socket.assigns.transcriptions]
|> Enum.sort_by(& &1.received_at)
final_text =
updated_transcriptions
|> Enum.map_join(" ", & &1.text)
socket =
socket
|> assign(:transcriptions, updated_transcriptions)
|> assign(:transcription, final_text)
{:noreply, socket}
end
def render(assigns) do
~H"""
~H"""
<div id="vad-container" phx-hook="VadHook">
<button phx-click="start_vad" class="btn btn-primary">🎙 Iniciar VAD</button>
<%= if !@started do %>
<button phx-click="start_vad" class="btn btn-primary">🎙 Iniciar VAD</button>
<% end %>
<div id="vad-status" class="mt-4 text-sm text-gray-700"></div>
</div>
<div id="transcriptionContainer" class="w-full max-w-2xl space-y-4">
<%= if @transcription != "" do %>
<div class="p-4 bg-gray-100 rounded shadow-md">
<h2 class="text-sm font-semibold text-gray-700 mb-2">✅ Transcripción</h2>
<p class="text-green-600 whitespace-pre-wrap break-words text-sm leading-relaxed"><%= @transcription %></p>
</div>
<div class="p-4 bg-gray-100 rounded shadow-md">
<h2 class="text-sm font-semibold text-gray-700 mb-2">✅ Transcripción</h2>
<p class="text-green-600 whitespace-pre-wrap break-words text-sm leading-relaxed">
<%= @transcription %>
</p>
</div>
<% end %>
</div>
"""
"""
end
end