From 9f5b1ec087144da7bde537d152a985354dc5eae5 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Fri, 6 Feb 2026 18:03:44 +0700 Subject: [PATCH] docs: document voice provider configuration and local defaults --- .../website/src/routes/docs/configuration.tsx | 71 ++++++++++++++++++- packages/website/src/routes/docs/index.tsx | 6 +- 2 files changed, 74 insertions(+), 3 deletions(-) diff --git a/packages/website/src/routes/docs/configuration.tsx b/packages/website/src/routes/docs/configuration.tsx index fe7522fc9..96b671c60 100644 --- a/packages/website/src/routes/docs/configuration.tsx +++ b/packages/website/src/routes/docs/configuration.tsx @@ -79,6 +79,73 @@ function Configuration() { +
+

Voice

+

+ Voice is provider-based per feature: dictation STT, realtime voice STT, and voice TTS can each + use local or openai. + Defaults are local for all three. +

+
+{`{
+  "version": 1,
+  "features": {
+    "dictation": { "stt": { "provider": "local" } },
+    "voiceMode": {
+      "stt": { "provider": "local" },
+      "tts": { "provider": "local" }
+    }
+  },
+  "providers": {
+    "sherpaOnnx": {
+      "modelsDir": "~/.paseo/models/sherpa-onnx",
+      "autoDownload": true,
+      "stt": { "preset": "parakeet-tdt-0.6b-v3-int8" },
+      "tts": { "preset": "pocket-tts-onnx-int8" }
+    }
+  }
+}`}
+        
+

+ Local voice uses ONNX models (sherpa-onnx + PocketTTS). Default presets are + parakeet-tdt-0.6b-v3-int8 for STT and + pocket-tts-onnx-int8 for TTS. +

+

+ With local provider enabled and auto-download on (default outside tests), missing model files are + downloaded at daemon startup into $PASEO_HOME/models/sherpa-onnx. + Downloads are only performed for missing files. +

+

+ Local ONNX execution is CPU-first by default. It works without GPU requirements, but performance + depends on your machine. +

+

+ To force OpenAI for voice/dictation, configure OpenAI providers explicitly and provide + OPENAI_API_KEY. If OpenAI is selected but credentials are + missing, daemon startup fails fast. +

+
+{`{
+  "version": 1,
+  "features": {
+    "dictation": { "stt": { "provider": "openai" } },
+    "voiceMode": {
+      "stt": { "provider": "openai" },
+      "tts": { "provider": "openai" }
+    }
+  },
+  "providers": {
+    "openai": { "apiKey": "..." }
+  }
+}`}
+        
+

+ Realtime voice can create/manage coding agents. Use clear prompts and explicit paths, because + those agents can be launched in arbitrary working directories by request. +

+
+

Common env vars

@@ -101,4 +171,3 @@ function Configuration() { ) } - diff --git a/packages/website/src/routes/docs/index.tsx b/packages/website/src/routes/docs/index.tsx index 0ba254e3c..afd9cbbd9 100644 --- a/packages/website/src/routes/docs/index.tsx +++ b/packages/website/src/routes/docs/index.tsx @@ -87,14 +87,16 @@ function GettingStarted() {

Voice Setup

- Voice features currently require an OpenAI API key. Set it as an environment variable before running the server: + Voice supports two providers: local (default) and OpenAI. Local uses ONNX models and will + download missing model files automatically at daemon startup.

$ export OPENAI_API_KEY=your-key-here

- Local voice support is coming soon. + Set OPENAI_API_KEY if you want OpenAI speech providers. + For local defaults and model presets, see Configuration.