From 9d658627a47350d0e3a294f7160c7d5a0c5613ce Mon Sep 17 00:00:00 2001 From: Gabry848 Date: Sat, 7 Mar 2026 15:00:38 +0100 Subject: [PATCH 1/2] fix(voice): rimuovi clearChunks ridondante dopo stopPlayback in interrupted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit stopPlayback() resetta già tutto lo stato interno dell'AudioPlayer (chunkCounter, pendingChunks, allChunksReceived, sessionId++). Chiamare clearChunks() subito dopo causava un doppio incremento di sessionId senza alcun beneficio. Co-Authored-By: Claude Sonnet 4.6 --- src/hooks/useVoiceChat.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/hooks/useVoiceChat.ts b/src/hooks/useVoiceChat.ts index fb6bc1e..c14a83b 100644 --- a/src/hooks/useVoiceChat.ts +++ b/src/hooks/useVoiceChat.ts @@ -192,7 +192,7 @@ export function useVoiceChat() { case 'speech_stopped': // VAD OpenAI: utente ha smesso di parlare — il mic resta acceso, - // il server gate blocca i frame finché OpenAI non è pronto ad ascoltare + // OpenAI processa il turno e risponde in autonomia setState('processing'); break; @@ -233,7 +233,6 @@ export function useVoiceChat() { // Ferma solo la riproduzione audio, il mic resta acceso if (audioPlayerRef.current) { await audioPlayerRef.current.stopPlayback(); - audioPlayerRef.current.clearChunks(); } setState('ready'); break; @@ -384,8 +383,8 @@ export function useVoiceChat() { try { // Callback invocato per ogni chunk audio PCM16 a 24kHz. - // Il mic rimane sempre acceso: è il server gate in voice_bridge.py - // a bloccare i frame durante l'elaborazione dell'agente. + // Il mic rimane sempre acceso: è il VAD server-side di OpenAI + // a gestire i turni e le interruzioni automaticamente. const onChunk = (base64Chunk: string) => { try { const arrayBuffer = base64ToArrayBuffer(base64Chunk); From 31cf656a0d5b9bc0d555165496ad49ebd738af4d Mon Sep 17 00:00:00 2001 From: Gabry848 Date: Sat, 7 Mar 2026 15:00:38 +0100 Subject: [PATCH 2/2] refactor(voice): aggiorna commenti obsoleti su server gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rimossi riferimenti al 'server gate in voice_bridge.py' che non esiste più dopo la refactor lato server. Il VAD è ora gestito interamente dal server-side VAD di OpenAI Realtime API. Co-Authored-By: Claude Sonnet 4.6