Transcripcion realtime y cambio a la tanscripcion large. Conexion al modelo large v3.

This commit is contained in:
2025-07-02 16:23:19 -03:00
parent 77f87c3655
commit 46df5fc5eb
12 changed files with 211 additions and 24 deletions

View File

@ -1,11 +1,13 @@
defmodule Recognition_VADWeb.DataChannel do
use Phoenix.Channel
require Logger
def join("data:lobby", _params, socket) do
Phoenix.PubSub.subscribe(Recognition_VAD.PubSub, "audio_output")
{:ok, socket}
end
# Parcial
def handle_info({:realtime, msg}, socket) do
push(socket, "realtime", msg)
@ -14,15 +16,27 @@ defmodule Recognition_VADWeb.DataChannel do
# Completo
def handle_info({:broadcast_audio, msg}, socket) do
push(socket, "transcription", msg)
push(socket, "realtime", msg)
{:noreply, socket}
end
def handle_info({:audio_saved, %{path: _path}}, socket) do
{:noreply, socket}
end
def handle_in("start_recording", _params, socket) do
GenServer.cast(Recognition_VAD.AudioProcessor, :reset)
{:noreply, socket}
end
# Recibe audio codificado en base64 (para transporte seguro)
def handle_in("audio_chunk", %{"data" => base64_chunk, "sample_rate" => sample_rate}, socket) do
Logger.debug("📥 Recibido audio_chunk con sample_rate=#{sample_rate}")
case Base.decode64(base64_chunk) do
{:ok, binary_audio} ->
Recognition_VAD.WhisperStreamer.push_chunk(binary_audio, sample_rate)
# GenServer.cast(Recognition_VAD.AudioProcessor, :save_wav)
GenServer.cast(Recognition_VAD.AudioProcessor, {:chunk, binary_audio, sample_rate}) # ✅ activa esta línea
{:noreply, socket}
:error ->
@ -32,11 +46,14 @@ defmodule Recognition_VADWeb.DataChannel do
end
def handle_in("save_audio", _params, socket) do
GenServer.cast(Recognition_VAD.AudioProcessor, :save_wav)
{:noreply, socket}
end
def handle_in(_unknown, _payload, socket) do
{:noreply, socket}
end
end