feat: um segundo som avisa que ela terminou de ouvir - #12
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O par fica completo
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 noOuvido: 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
🤖 Generated with Claude Code
https://claude.ai/code/session_0173mr3mDsAKQuPUNaPghe9v