-
Notifications
You must be signed in to change notification settings - Fork 128
Picovoice
Picovoice provides two on-device AI engines used by Whisplay AI Chatbot:
- Leopard – offline, low-latency speech-to-text (ASR)
- Orca – offline, neural text-to-speech (TTS)
Both engines run entirely on-device with no cloud calls, making them suitable for privacy-sensitive or internet-restricted deployments. They share a single PICOVOICE_ACCESS_KEY. A free AccessKey (with usage limits) is available at https://console.picovoice.ai/.
Note: Picovoice packages are already bundled as optional dependencies of Whisplay AI Chatbot (
@picovoice/leopard-nodeand@picovoice/orca-node). You do not need to install them separately.
Leopard transcribes pre-recorded audio files. It requires no network connection once installed and produces accurate English (or custom-language) transcriptions.
Set ASR_SERVER=picovoice in your .env file:
ASR_SERVER=picovoice
# Your AccessKey from https://console.picovoice.ai/
PICOVOICE_ACCESS_KEY=your_picovoice_access_key
# Optional: path to a custom Leopard language model file (.pv)
# Leave unset to use the built-in English model.
# PICOVOICE_LEOPARD_MODEL_PATH=/path/to/leopard_params.pvPicovoice supports custom language models and acoustic adaptation for domain-specific vocabulary. Download a custom .pv model from the Picovoice Console and point PICOVOICE_LEOPARD_MODEL_PATH to it.
Orca synthesizes natural-sounding speech on-device. It produces a .wav file per utterance.
Set TTS_SERVER=picovoice in your .env file:
TTS_SERVER=picovoice
# Your AccessKey from https://console.picovoice.ai/
PICOVOICE_ACCESS_KEY=your_picovoice_access_key
# Optional: path to a custom Orca voice model file (.pv)
# Leave unset to use the built-in English female voice.
# PICOVOICE_ORCA_MODEL_PATH=/path/to/orca_params.pvCustom Orca voice models (e.g., different languages or voice styles) can be downloaded from the Picovoice Console. Set PICOVOICE_ORCA_MODEL_PATH to point to the downloaded .pv file.
You can mix and match providers. The following example uses Picovoice for both ASR and TTS while using OpenAI as the LLM backend:
ASR_SERVER=picovoice
LLM_SERVER=openai
TTS_SERVER=picovoice
PICOVOICE_ACCESS_KEY=your_picovoice_access_key
OPENAI_API_KEY=your_openai_api_key| Variable | Required | Default | Description |
|---|---|---|---|
PICOVOICE_ACCESS_KEY |
Yes | (none) | AccessKey from console.picovoice.ai |
PICOVOICE_LEOPARD_MODEL_PATH |
No | built-in English | Path to a custom Leopard .pv model |
PICOVOICE_ORCA_MODEL_PATH |
No | built-in English female voice | Path to a custom Orca .pv model |
- The Picovoice free tier AccessKey has a limited number of requests per month. Check your usage on the Picovoice Console.
- Leopard is a file-based transcription engine (not streaming). Audio is recorded first, then transcribed in one call, which is consistent with how Whisplay handles audio input.
- Orca generates audio synchronously. The synthesized
.wavfile is saved to the chatbot'sdata/tts/directory and played back automatically. - Both engines support ARM64 (Raspberry Pi 4/5, Radxa Zero 3W, etc.) and x86_64 platforms.