Skip to content

feat: um segundo som avisa que ela terminou de ouvir - #12

Merged
kerlonr merged 1 commit into
mainfrom
feat/bip-de-fim
Sep 3, 2026
Merged

feat: um segundo som avisa que ela terminou de ouvir#12
kerlonr merged 1 commit into
mainfrom
feat/bip-de-fim

Conversation

@kerlonr

@kerlonr kerlonr commented Sep 3, 2026

Copy link
Copy Markdown
Member

O par fica completo

  • sobe quando a janela de escuta abre → "pode falar"
  • desce quando a captura da frase seguinte fecha → "pronto, ouvi, deixa comigo"

O mesmo par invertido, e não dois sons sem relação: invertido se lê de imediato como abre e fecha; dois timbres diferentes seriam duas coisas a decorar.

A decisão que importa: o aviso vem do microfone, não do reconhecimento

O instante em que a pessoa pode parar de falar é o instante em que a captura fecha — 0,8 s depois do fim da fala. Esperar a transcrição custaria mais 1,9 s neste Pi (medido: whisper base, 1930 ms), e o som chegaria depois de ela já ter desistido de esperar por ele.

Isso exigiu um gancho novo, e ele é um protocolo à parte (AvisaAoFecharFrase) em vez de mais um método no Ouvido: o Vosk decide sozinho onde a frase termina, dentro do próprio reconhecimento, e não tem esse instante para anunciar. Quem tem, oferece; quem não tem continua sendo um ouvido completo.

Só com a janela aberta

Um microfone aberto numa sala fecha uma captura a cada frase que alguém diz por perto — sem essa guarda o robô apitaria o dia inteiro para conversas que não são com ele.

Quem pergunta tudo de uma vez ("Atlas, quantos alunos tem?") não ouve o par: a janela só abre quando o nome vem sozinho. Nesse caso o aviso é a própria resposta, que chega em ~2 s.

E o aviso falha em silêncio: ele é conforto, e a frase recém-capturada é o que a pessoa acabou de dizer. Um alto-falante que sumiu não pode custar a pergunta.

Verificação

  • 738 testes passam (eram 725)
  • os novos cobrem o par (que um sobe e o outro desce, medido por cruzamentos de zero — se um dia virarem o mesmo som, o robô passa a avisar duas vezes a mesma coisa), o gatilho e o gancho
  • os dois sons foram tocados no alto-falante do robô real

🤖 Generated with Claude Code

https://claude.ai/code/session_0173mr3mDsAKQuPUNaPghe9v

O par fica completo: sobe quando a janela de escuta abre ("pode falar"), desce
quando a captura da frase seguinte fecha ("pronto, ouvi, deixa comigo"). O
mesmo par invertido, e nao dois sons sem relacao — invertido se le de imediato
como abre e fecha; dois timbres diferentes seriam duas coisas a decorar.

**O aviso vem do microfone, nao do reconhecimento.** E a decisao que importa
aqui. O instante em que a pessoa pode parar de falar e o instante em que a
captura fecha — 0,8 s depois do fim da fala. Esperar a transcricao para avisar
custaria mais 1,9 s neste Pi (medido: whisper `base`, 1930 ms), e o som chegaria
depois de ela ja ter desistido de esperar por ele.

Isso exigiu um gancho novo, e ele e um protocolo a parte
(`AvisaAoFecharFrase`) em vez de mais um metodo no `Ouvido`: o Vosk decide
sozinho onde a frase termina, dentro do proprio reconhecimento, e nao tem esse
instante para anunciar. Quem tem, oferece; quem nao tem continua sendo um
ouvido completo.

**So com a janela aberta.** Um microfone aberto numa sala fecha uma captura a
cada frase que alguem diz por perto; sem essa guarda o robo apitaria o dia
inteiro para conversas que nao sao com ele. Com a janela aberta — ou seja,
alguem acabou de chamar o nome dela —, o que fechou e quase certamente a
pergunta.

Quem pergunta tudo de uma vez ("Atlas, quantos alunos tem?") nao ouve o par: a
janela so abre quando o nome vem sozinho. Nesse caso o aviso e a propria
resposta, que chega em cerca de dois segundos.

E o aviso falha em silencio: ele e conforto, e a frase recem-capturada e o que
a pessoa acabou de dizer. Um alto-falante que sumiu nao pode custar a pergunta.

738 testes passam (eram 725). Os novos cobrem o par (que um sobe e o outro
desce, medido pelos cruzamentos de zero — se um dia virarem o mesmo som, o robo
passa a avisar duas vezes a mesma coisa), o gatilho (toca com a janela aberta,
cala com ela fechada) e o gancho (avisa uma vez por frase, nao avisa por ruido
descartado, e uma falha nao perde a frase).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0173mr3mDsAKQuPUNaPghe9v
@kerlonr
kerlonr merged commit e7eb3fd into main Sep 3, 2026
5 checks passed
@kerlonr
kerlonr deleted the feat/bip-de-fim branch September 3, 2026 22:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant