Skip to content

Picovoice

Jdaie Lin edited this page Mar 3, 2026 · 1 revision

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-node and @picovoice/orca-node). You do not need to install them separately.


Using Picovoice as ASR (Leopard)

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

Custom Language Models

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


Using Picovoice as TTS (Orca)

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

Custom Voice Models

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


Using Both Picovoice ASR and TTS Together

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

Full .env Reference

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

Notes

  • 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 .wav file is saved to the chatbot's data/tts/ directory and played back automatically.
  • Both engines support ARM64 (Raspberry Pi 4/5, Radxa Zero 3W, etc.) and x86_64 platforms.

Clone this wiki locally