SoulCast Getting Started Guide
SoulCast is a local-first AI chat and roleplay app. Bring your own API key to talk with an assistant, or create character cards for immersive roleplay.
This guide follows the product flow: Setup → Basic configuration → AI chat → Roleplay → Sherpa-ONNX on-device speech. When you finish, you will have a working first-time setup and both kinds of conversation ready.
1. Setup
1.1 Open the app
- Launch SoulCast.
- A brief splash screen appears (icon and “SoulCast”) with status text: “Starting…”, “Entering the app…”, then “Ready”.
- You land on the main chat screen automatically.
No sign-up or login is required. Chats, characters, and settings are stored on your device by default.
1.2 Learn the main UI
The app centers on the main chat screen. Use the left drawer for sessions and features:
Main chat
├─ Left drawer (menu)
│ ├─ New chat
│ ├─ Characters
│ ├─ Files
│ ├─ Recent sessions
│ └─ Settings
└─ Top bar “Session info”
An empty session shows: “What would you like to talk about? Start a new conversation below.”
The input placeholder is “Ask SoulCast”.
Important: You can explore the UI immediately, but you will not get AI replies until you finish the provider and model setup in the next section.
2. Basic configuration
Entry: open the drawer from the top-left on the home screen → Settings at the bottom.
2.1 Suggested general settings (optional)
In Settings, adjust as needed:
| Category | Item | Notes |
|---|---|---|
| General | Theme | Light / Dark |
| General | Language | Simplified Chinese / English |
| User | Nickname | Used as the user variable in prompts |
2.2 Required: configure an AI provider and model
Without an available model, sending a message prompts you to configure a provider or pick a model. Follow these steps.
Step A: Add a provider
- Settings → Providers
- Tap Add provider (or Import provider and paste JSON)
- Fill in:
- Provider name: e.g. OpenAI, DeepSeek, OpenRouter
- Base URL: e.g.
https://api.openai.com - API path: e.g.
/v1 - API Key: your key
- Request protocol: Chat Completions or Responses (per provider support)
- Save the provider
Step B: Add and enable a model
- On the provider page, open the Models tab
- Use Fetch models to pull the list, or Add model manually
- Set input / output formats (for text chat, at least enable “Text”; enable “Image” when you need image generation)
- Turn on Enable model and save
Step C: Select the model in chat
- Return to the main chat screen
- Tap the model button in the input area (it may say “Select model”)
- Choose the model you just enabled
Basic AI capability is ready.
2.3 Common advanced settings (optional)
After the required setup, tune as needed:
| Setting | Purpose |
|---|---|
| Response mode | Normal / Streaming (streaming recommended) |
| Model settings | Context message count, Temperature, Top-p, Top-k, tool-call rounds |
| Prompts | Custom system prompts for normal chat and roleplay templates |
| Worldbook | Reusable lore libraries you can bind to characters or sessions |
| Memory write frequency | Whether and how often long-term memory is summarized |
| Message display | Show or hide tool messages and memory messages |
| Tool configuration | Keys and parameters for map, weather, image generation, etc. |
| MCP servers | Connect external MCP tools for chat |
| Speech models / speech output | Download on-device ASR/TTS for voice input and read-aloud |
Enable tools for a given chat from the Tools / MCP panels at the bottom of the chat screen; keep secrets in Settings.
3. Basic AI chat
Normal sessions use the app-level assistant persona (adjustable under Settings › Prompts). Good for Q&A, writing, tools, and everyday use.
3.1 Start a new conversation
Either:
- Type in the current empty session; or
- Open the drawer → New chat
Confirm a usable model is selected in the input area.
3.2 Send and control
- Type in “Ask SoulCast”
- Tap Send
- During generation, tap Stop to interrupt
Useful extras:
- Voice input: download a speech model in Settings, set it as default, and grant microphone permission
- Type
@to open the plugin menu (e.g. Create image) - Tools panel: toggle built-in agent tools (time, location, weather, map, image gen, depending on config)
- MCP panel: toggle connected remote tools
3.3 Manage sessions
Open the drawer and check Recent:
- Pin / unpin
- Rename
- View info
- Delete (also clears that session’s messages)
After the first meaningful exchange, the system may auto-title the session.
3.4 Session info
From the top bar, open Session info to view or edit:
- Basic: summary, session system prompt, session worldbook, clear chat
- Long-term memory: managed by category (relationships, world lore, plot, preferences, constraints, other)
“Clear chat” removes messages only; basic config and long-term memory stay.
3.5 Message actions
On assistant messages you can usually:
- Regenerate and switch among versions
- Continue after an interrupt
- Copy
- Play (requires a default TTS setup)
4. Roleplay chat
Roleplay is driven by character cards: name, persona, scene, greetings, and more are injected into the roleplay prompt. The chat screen can also use the character avatar as an immersive background.
4.1 Create a character
- Drawer → Characters
- Tap New character (or Import character card, JSON / PNG)
- Fill in or generate details, then Save
Option 1: AI-assisted generation (recommended to start)
- On the edit screen, use AI assist
- Describe the idea in one or two sentences, e.g. “A tsundere fox shrine maiden living in an old temple”
- Pick a text model → Generate
- Review the filled fields, edit as needed, then save
Option 2: Fill in manually
Main sections and fields:
| Section | Common fields |
|---|---|
| Basics | Name, avatar, bio |
| Persona | Personality, speaking style, appearance |
| Scene & dialogue | Scene, main greeting, alternate greetings, example dialogue, hard limits |
| Card extensions | Tags, character system prompt, post-history instructions, creator notes, worldbook |
Avatars can come from the photo library, the file library, or AI generation from a prompt (requires an image-capable model).
Save the character before binding a worldbook. Worldbook entries can inject extra lore when keywords match in chat.
4.2 Start a character chat
- In Characters, select a character or tap Start chat
- If there are multiple greetings, choose a greeting in the bottom sheet
- The app creates a new character session (title is usually the character name; each start creates a new session)
- If a greeting is configured, an assistant opening message appears, then you continue on the main chat screen
Differences vs normal chat:
| Normal chat | Roleplay | |
|---|---|---|
| Entry | Drawer “New chat” | Characters “Start chat” |
| Prompts | App-level system prompt | Roleplay template + character card fields |
| Background | Standard UI | Full-screen character background when an avatar exists |
| Empty state | SoulCast prompt copy | Often starts with the greeting |
In roleplay sessions, deep-thinking display may appear as “inner monologue”. From session info you can Edit character, or review long-term memory and worldbook bindings for that session.
4.3 Make roleplay more immersive (advanced)
- Settings › Worldbook: create lore libraries and keyword entries
- Bind primary/extra worldbooks on the character page, or a session worldbook in session info
- Adjust roleplay-related templates under Settings › Prompts as needed
- Set a suitable memory write frequency so relationships and plot can accumulate automatically
5. Sherpa-ONNX on-device speech
SoulCast speech recognition (ASR) and speech synthesis (TTS) are powered by Sherpa-ONNX. Models run on-device and do not go through a cloud speech service. The app does not ship built-in download URLs—paste an official model archive URL yourself.
5.1 Capabilities and entry points
| Capability | Settings entry | In chat |
|---|---|---|
| Speech recognition (ASR) | Settings › Speech models | Voice input in the composer: speech → text in the input box |
| Speech synthesis (TTS) | Settings › Speech models + Speech output | Play on a message: read the assistant reply aloud |
Current support:
- ASR: streaming Online Transducer (typically streaming zipformer / zipformer2 packages with
encoder/decoder/joinerandtokens.txt) - TTS: VITS, Matcha, Kokoro, Pocket, Supertonic
Not supported yet: offline non-streaming ASR, streaming CTC-only packages, and TTS packages outside the adapted families.
5.2 Install a model (common steps)
- Open Settings › Speech models
- Tap Add model
- Choose type: Speech recognition (ASR) or Speech synthesis (TTS)
- Paste the model archive download URL (
.tar.bz2/.zip) - Optionally set a display name → Add
- Tap Download in the list and wait until status goes from “Extracting…” to Ready
- Tap Set as default for that model (ASR and TTS each need their own default)
With a default ASR ready, voice input works; with a default TTS ready, message playback works.
5.3 Speech output settings (TTS)
Settings › Speech output:
| Item | Notes |
|---|---|
| Speaker | Applies to multi-speaker models (VITS / Matcha / Kokoro / Supertonic); pick by name or sid |
| Speed | 1.0 is normal, roughly 0.5–2.0 |
| Reference audio (Pocket) | Pocket TTS requires a reference .wav to clone a voice; use a sample from the package or import a local file |
For non-Pocket models, choosing a speaker and speed is usually enough.
5.4 Recommended models
These URLs come from official Sherpa-ONNX releases and can be pasted into “Download URL”. Full lists:
- ASR: asr-models
- TTS: tts-models
- Docs: Pre-trained models
ASR (voice input) — prefer streaming Zipformer Transducer
| Scenario | Package | Approx. size | Download URL |
|---|---|---|---|
| Chinese default (balanced) | sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30 |
~127 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30.tar.bz2 |
| Higher Chinese accuracy (heavier) | sherpa-onnx-streaming-zipformer-zh-xlarge-int8-2025-06-30 |
Larger | https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-zh-xlarge-int8-2025-06-30.tar.bz2 |
| Chinese–English bilingual | sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20 |
~380 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2 |
| Smaller Chinese package | sherpa-onnx-streaming-zipformer-zh-14M-2023-02-23-mobile |
~52 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-zh-14M-2023-02-23-mobile.tar.bz2 |
Beginner default: install zh-int8-2025-06-30 first and set it as the default ASR.
Do not pick packages with
ctcin the name, or non-streamingoffline packages—the app expects streaming Transducer layouts, so those will not work for voice input.
TTS (message read-aloud) — prefer Chinese VITS
| Scenario | Package | Approx. size | Download URL |
|---|---|---|---|
| Chinese default (light multi-speaker) | vits-icefall-zh-aishell3 |
~30 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-icefall-zh-aishell3.tar.bz2 |
| Better Chinese quality (multi-speaker) | vits-zh-aishell3 |
~140 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-zh-aishell3.tar.bz2 |
| Chinese 5 speakers | sherpa-onnx-vits-zh-ll |
~113 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/sherpa-onnx-vits-zh-ll.tar.bz2 |
| Chinese–English Matcha | matcha-icefall-zh-en |
~75 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/matcha-icefall-zh-en.tar.bz2 |
| Multilingual (large) | kokoro-int8-multi-lang-v1_1 |
~140 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kokoro-int8-multi-lang-v1_1.tar.bz2 |
| Voice cloning (Pocket) | sherpa-onnx-pocket-tts-int8-2026-01-26 |
~94 MB | https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/sherpa-onnx-pocket-tts-int8-2026-01-26.tar.bz2 |
Beginner default: install vits-icefall-zh-aishell3, set it as the default TTS, then try a few speaker sids under Speech output.
For character-style voices, try official character packages (e.g. vits-zh-hf-keqing, vits-zh-hf-eula) from the same tts-models release.
5.5 Quick check
- ASR: on the chat screen tap Voice input → grant microphone → speak Chinese → text appears in the input → Send
- TTS: tap Play on an assistant message → you hear read-aloud; adjust speaker and speed under Speech output
5.6 Notes
- Model files are large; prefer Wi‑Fi. Keep the app in the foreground while downloading and extracting.
- ASR and TTS defaults are independent—set each as default separately.
- Pocket TTS cannot synthesize without a reference audio; pick a package sample or import a
.wavunder Speech output › Reference audio. - Some packages such as
vits-melo-tts-*may ship a problematicmodel.int8.onnxand fail on certain devices; for Chinese, prefer the icefall / aishell3 recommendations above. - On-device model storage can be viewed and cleaned under Settings › Storage.
6. FAQ
| Issue | What to do |
|---|---|
| Prompted for API key / select model / no models available | Go to Settings › Providers, add a provider, add and enable a model, then select it in chat |
| Voice input unavailable | In Settings › Speech models, download an ASR model, set it as default, and allow microphone access (see chapter 5) |
| Message playback unavailable | In Settings › Speech models, download a TTS model and set it as default; Pocket also needs a reference audio under Speech output |
| Image creation or AI avatar fails | Confirm a provider has a model with “Image” output, and pick the right image model in tools/avatar flows |
| MCP panel is empty | In Settings › MCP servers, add, enable, and confirm a successful connection |
| Character worldbook cannot be bound | Save the character first, then add worldbooks on the character |
7. Recommended first path (~10 minutes)
- Open the app and enter the main screen
- Settings › Providers: fill Base URL and API Key, add and enable at least one text model
- Select the model on the main chat screen, send “Hello”, confirm normal chat works
- Characters › New character: use AI assist to create and save a character
- Start chat, pick a greeting, continue in roleplay
After that, explore worldbooks, long-term memory, tools, and speech when you need them. For voice input / read-aloud, see chapter 5.