@framers/agentos-ext-porcupine
v0.2.4
Published
Wake-word detection via Picovoice Porcupine for AgentOS voice pipeline
Readme
Porcupine wake word detection
This pack gives an agent a wake word provider backed by Picovoice Porcupine through @picovoice/porcupine-node.
Installation
npm install @framers/agentos-ext-porcupinePeer dependencies: @framers/agentos (>=0.10.40) and @picovoice/porcupine-node (^3.0.0).
Usage
import { AgentOS } from '@framers/agentos';
const agentos = await AgentOS.create({
extensionManifest: {
packs: [
{
package: '@framers/agentos-ext-porcupine',
options: { keywords: ['porcupine'] },
},
],
},
extensionSecrets: {
PICOVOICE_ACCESS_KEY: process.env.PICOVOICE_ACCESS_KEY!,
},
});Configuration
| Option | Secret id | Environment variable | Required | Default |
| --- | --- | --- | --- | --- |
| accessKey (standalone provider only) | PICOVOICE_ACCESS_KEY (pack factory) | None | Yes, provider interface | Empty string in pack factory |
| keywords | None | None | No | ['porcupine'] |
| sensitivities | None | None | No | 0.5 per keyword |
Notes
The pack registers a wake-word-provider with id porcupine, enabled by default. The factory reads the access key through getSecret; it does not read an environment variable or an accessKey option.
createPorcupine also exports a standalone provider factory accepting accessKey, keywords and sensitivities. The sensitivity array must match the keyword array in length, according to the options interface.
The native SDK loads on the first detect call. Audio frames must match the SDK frame size and use signed PCM at its fixed sample rate; the provider ignores the supplied sample rate argument. Detection returns an object containing keyword, confidence and providerId, or null. reset does nothing; dispose releases the native engine. The pack passes an empty access key to the SDK when the secret is absent and does not validate it itself.
License
Apache-2.0
