Picovoice/cheetah

On-device streaming speech-to-text engine powered by deep learning

What is Picovoice / Cheetah?

Cheetah is a real‑time, on‑device speech‑to‑text engine. It runs completely offline – the audio never leaves the device – and is built to be small enough to run on phones, embedded boards (Raspberry Pi), browsers and desktop OSes.

Core capabilities

  • Streaming transcription – you feed it short audio frames and get back partial transcripts; when an utterance ends you receive a final transcript.
  • Word‑level metadata – optional APIs return timestamps and confidence for each word.
  • Multi‑language – English, French, German, Italian, Portuguese and Spanish out‑of‑the‑box; other languages are available to commercial customers.
  • Cross‑platform – native C library with bindings for Python, Java, .NET, Node.js, React, React‑Native, Flutter, iOS, Android, and Web (plain JS or React). It also ships pre‑built binaries for Linux, macOS, Windows and Raspberry Pi.
  • Privacy‑first – all processing happens locally; an AccessKey is only used to unlock the SDK and enforce licensing.

How you use it (typical flow)

  1. Obtain an AccessKey from the Picovoice console (required for every SDK).
  2. Create a Cheetah instance with the AccessKey and a model file (the default model is bundled, custom models can be trained via Picovoice Console).
  3. Feed audio frames (16‑bit PCM) to process (or process_annotated). The call returns a partial transcript and a flag indicating whether the utterance has ended.
  4. When is_endpoint is true, call flush (or flush_annotated) to get the final transcript.
  5. Release resources when finished.

Example (Python)

import pvcheetah
handle = pvcheetah.create(access_key='YOUR_KEY')
while True:
    partial, is_endpoint = handle.process(get_next_frame())
    if is_endpoint:
        final = handle.flush()

The README provides analogous snippets for C, Swift, Java, Kotlin, Dart, JavaScript, C# and more.

Demos & SDKs

The repo ships a set of ready‑to‑run demos (mic input, audio‑file mode) for each supported language/platform, plus package listings for Maven, npm, PyPI, CocoaPods, NuGet, Pub and more.

Who might need it?

  • Mobile apps that need offline voice commands or dictation.
  • Embedded devices (e.g., smart speakers, robots) where sending audio to the cloud is undesirable.
  • Web applications that want on‑device transcription without a server round‑trip.
  • Any product that values low latency, small footprint and data privacy.

Bottom line: Cheetah is a genuine, production‑grade speech‑to‑text SDK focused on on‑device, low‑resource use‑cases, with a broad ecosystem of language bindings and demo code.

Related

  • Project
  • Project
  • Project
  • Project
  • Project