Skip to content

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).