Skip to content

Começar

Requisitos

  • Node.js 20 ou superior
  • Para um setup offline real: whisper.cpp, Ollama e Piper — ver setup.md. Podes desenvolver e testar com os motores mock sem instalar nada.

Instalação

npm install whispa

O loop

O VoicePipeline corre áudio → texto → LLM → texto → áudio e mantém o histórico da conversa, por isso um turno falado inteiro é uma única chamada:

import { VoicePipeline, WhisperCppStt, OllamaLlm, PiperTts } from 'whispa';

const pipeline = new VoicePipeline({
  stt: new WhisperCppStt({ model: 'models/ggml-base.en.bin' }),
  llm: new OllamaLlm({ model: 'llama3.2' }),
  tts: new PiperTts({ model: 'voices/en_US-amy-medium.onnx' }),
  systemPrompt: 'És um assistente de voz conciso.',
  maxHistory: 20,
});

const { transcript, reply, audio } = await pipeline.turn('gravacao.wav');

Passos individuais

const texto = await pipeline.listen('gravacao.wav'); // STT
const resposta = await pipeline.respond(texto);      // LLM (atualiza histórico)
const wav = await pipeline.speak(resposta);          // TTS

Desenvolver sem ferramentas nativas

import { VoicePipeline, MockStt, EchoLlm, MockTts } from 'whispa';
const p = new VoicePipeline({ stt: new MockStt('olá'), llm: new EchoLlm(), tts: new MockTts() });

Correr a partir do código

git clone https://github.com/marcelogdomingues/whispa
cd whispa
npm install
npm run demo
npm test