Melhorias: wake word, push-to-talk, LEDs¶
O whispa-pi vem com gravação ativada por voz (VAD do sox) ou gravação de duração fixa (arecord). Eis melhorias comuns, todas opcionais e compatíveis com offline.
Wake word ("Hey Pi")¶
Acrescenta uma palavra de ativação sempre à escuta para não depender da deteção de silêncio:
- openWakeWord — aberto, offline, palavras à medida.
- Porcupine — muito preciso (o tier gratuito precisa de chave).
Padrão: corre o detetor de wake word num pequeno processo sempre ativo; quando dispara,
chama appliance.runOnce(). Como o Appliance expõe runOnce(), podes acioná-lo a
partir de qualquer trigger.
Botão push-to-talk (GPIO)¶
Liga um botão momentâneo a um pino GPIO e dispara um turno ao premir:
import { Appliance, ArecordRecorder, AplayPlayer } from 'whispa-pi';
// ex.: com onoff ou @raspberrypi/gpio
button.on('press', () => appliance.runOnce());
Usa o ArecordRecorder (segundos fixos) ou inicia/pára a gravação ao premir/largar.
LEDs de estado¶
Dá feedback com um LED (ou o anel de um ReSpeaker): parado → a ouvir → a pensar → a falar. Liga-te ao ciclo de vida do appliance:
new Appliance({
recorder, pipeline, player,
onTurn: () => led.idle(),
});
// define led.listening() antes de gravar, led.thinking() antes do turn, etc.,
// compondo o teu próprio runOnce, ou estendendo o Appliance.
Ferramentas & ações domóticas¶
Como o "cérebro" é o teu LlmEngine, podes acrescentar tool-calling lá dentro (timers,
luzes, chamadas HTTP) sem mexer no loop de áudio. Mantém as ações locais para continuar
offline.
Melhores vozes / idiomas¶
O Piper tem muitas vozes e idiomas — troca o piperModel por outro .onnx. Para
não-inglês, escolhe também um modelo whisper compatível (multilingue base/small).