Picovoice Wordmark
Start Building
Introduction
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryPicovoice picoLLMGPTQ
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice ZebraHelsinki-NLP/opus_mt
Introduction
AndroidC.NETFlutteriOSJavaLinuxmacOSNode.jsPythonRaspberry PiReactReact NativeWebWindows
AndroidC.NETFlutteriOSJavaNode.jsPythonReactReact NativeWeb
SummaryPicovoice LeopardAmazon TranscribeAzure Speech-to-TextGoogle ASRGoogle ASR (Enhanced)IBM Watson Speech-to-TextWhisper Speech-to-Text
FAQ
Introduction
AndroidC.NETFlutteriOSJavaLinuxmacOSNode.jsPythonRaspberry PiReactReact NativeWebWindows
AndroidC.NETFlutteriOSJavaNode.jsPythonReactReact NativeWeb
Cheetah Model API
SummaryPicovoice CheetahAzure Real-Time Speech-to-TextAmazon Transcribe StreamingGoogle Streaming ASRMoonshine StreamingVosk StreamingWhisper.cpp Streaming
FAQ
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryAmazon PollyAzure TTSElevenLabsOpenAI TTSPicovoice OrcaChatterbox-TTS-TurboKokoro-TTSKitten-TTS-Nano-0.8-INT8Pocket-TTSNeu-TTS-Nano-Q4-GGUFPiper-TTSSoprano-TTSSupertonic-TTS-2ESpeak-NG
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice KoalaMozilla RNNoise
Introduction
AndroidCiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidCNode.jsPythoniOSWeb
SummaryPicovoice EaglepyannoteSpeechBrain
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice FalconAmazon TranscribeAzure Speech-to-TextGoogle Speech-to-Textpyannote
Introduction
AndroidArduinoCChrome.NETEdgeFirefoxFlutteriOSJavaLinuxmacOSMicrocontrollerNode.jsPythonRaspberry PiReactReact NativeSafariWebWindows
AndroidC.NETFlutteriOSJavaMicrocontrollerNode.jsPythonReactReact NativeWeb
SummaryPicovoice PorcupineSnowboyPocketSphinx
Wake Word TipsFAQ
Introduction
AndroidArduinoCChrome.NETEdgeFirefoxFlutteriOSJavaLinuxmacOSMicrocontrollerNode.jsPythonRaspberry PiReactReact NativeSafariWebWindows
AndroidC.NETFlutteriOSJavaMicrocontrollerNode.jsPythonReactReact NativeWeb
Rhino Model API
SummaryPicovoice RhinoGoogle DialogflowAmazon LexIBM WatsonMicrosoft LUIS
Expression SyntaxFAQ
Introduction
AndroidArduinoC.NETiOSLinuxmacOSMicrocontrollerNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSMicrocontrollerNode.jsPythonWeb
SummaryPicovoice CobraWebRTC VADSilero VAD
FAQ
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice BatSpeechbrain Language ID
Introduction
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
AndroidC.NETFlutteriOSNode.jsPythonReact NativeWeb
Introduction
C.NETNode.jsPython
C.NETNode.jsPython
FAQGlossary

Cheetah Model API

The Cheetah Model API trains a Speech-to-Text model from a YAML content definition. Send a YAML content as a request and receive a trained .pv model file in response, ready for on-device inference with Cheetah.


Base URL

All routes are relative to the following base URL:

https://rest.picovoice.ai

Authentication

Every request must be authenticated with your AccessKey passed in the x-api-key header. You can obtain a free AccessKey from the Picovoice Console.

x-api-key: ${ACCESS_KEY}

Requests made without a valid AccessKey are rejected with a 403 Forbidden response.


Train a Model

POST /{language}/api/cat

Trains a Cheetah model for the given language, model_type and target engine from a YAML definition. On success, the response body is the binary .rhn model file.

Path Parameters

  • language string — The language of the context. Must be one of the supported language values (e.g. en).

Headers

  • x-api-key string — Required. Your AccessKey from the Picovoice Console.

Body Parameters

The request body is a JSON object with the following fields:

  • engine string — Required. The target engine to train the model for. Must be one of the supported engine values. For Cheetah Speech-to-Text use cheetah.
  • model_type string — Required. The target model variant. Must be one of the supported model type values.
  • yaml_content string — Required. The content definition, as a YAML string. Follow the format as exported from the Picovoice Console.

Example Request

A successful request returns a 303 See Other redirect pointing to the trained model. The -L flag tells curl to follow that redirect automatically and download the .pv file:

curl -L \
-H "x-api-key: ${ACCESS_KEY}" \
-o "${OUTPUT_PATH}" \
-d '{"engine": "${ENGINE}", "model_type": "${MODEL_TYPE}", "yaml_content": "${YAML_STRING}"}' \
"https://rest.picovoice.ai/${LANGUAGE}/api/cat"

Replace the placeholders with your own values:

  • ${ACCESS_KEY} — your AccessKey from the Picovoice Console.
  • ${OUTPUT_PATH} — the local path to write the returned .pv model to (e.g. ./cheetah_params.pv).
  • ${ENGINE} — a supported engine value (e.g. cheetah).
  • ${MODEL_TYPE} — a supported model type value (e.g. cheetah).
  • ${YAML_STRING} — your content definition as a YAML string.
  • ${LANGUAGE} — a supported language value (e.g. en).

Responses

  • 200 OK — Returned when the 303 redirect is followed. The response body is the binary .pv model file.
  • 303 See Other — Training succeeded. The response carries a Location header with a URL to the trained model. Follow this redirect (e.g. with curl -L) to download it and receive the 200 OK above.
  • 400 Bad Request — The request was malformed, the engine/model_type value was invalid, or the yaml_content was not valid YAML / used an incorrect content format.
  • 403 Forbidden — The AccessKey is missing or invalid.

Supported Languages

The language path parameter accepts one of the following values:

LanguageValue
Englishen
Frenchfr
Germande
Italianit
Mandarin Chinesezh
Portuguesept
Spanishes

Supported Engines

The engine body parameter accepts one of the following values:

EngineValue
Cheetahcheetah
Leopardleopard

Supported Model Types

The model_type body parameter accepts one of the following values:

Model TypeValue
defaultdefault

Was this doc helpful?

Issue with this doc?

Report a GitHub Issue
Cheetah Model API
  • Base URL
  • Authentication
  • Train a Model
  • Path Parameters
  • Headers
  • Body Parameters
  • Example Request
  • Responses
  • Supported Languages
  • Supported Engines
  • Supported Model Types
© 2019-2026 Picovoice Inc.PrivacyTerms