Speech Presets
Speech presets let you create shortcut replacement rules for commonly used phrases. When the ASR result matches a trigger phrase, it is automatically replaced with your preset content, greatly improving repeated input efficiency.
Naming note
The feature is called "Speech Presets" in the app and lives under Settings → System → Other Settings → Speech Presets. This page uses "speech presets" throughout.
Overview
How it works
Logic:
- Perform speech recognition normally
- Match the transcript against preset triggers
- If matched (exact or case-insensitive), replace with preset content
- Otherwise keep original transcript
Good for
Recommended
- ✅ common phrases: email, phone number, address
- ✅ canned replies: "OK", "Received", etc.
- ✅ terms: "ASR" → "Automatic Speech Recognition"
- ✅ long templates: signatures, disclaimers
- ✅ emoji combos: e.g. "haha" → "hahaha 😄"
Data storage
Presets are stored locally on the device. Each preset = Name (trigger) + Content (replacement text).
| Item | Description |
|---|---|
| Preset list | all preset data, included in config backup export/import |
| Current preset | records the preset selected on the settings page; not used for matching |
Usage
Create a preset
- Open
Settings → System → Other Settings → Speech Presets - Tap "Add" — a new preset is created and selected automatically
- Enter a trigger in "Preset name" (e.g. "my email")
- Enter the full text in "Preset content" (e.g. "example@domain.com")
- Edits are saved automatically
Naming tips
- Keep trigger phrases short and easy to say
- Make triggers unique to avoid conflicts
- Prefer consistent patterns like "my ", " address", etc.
Use a preset
- Use voice input as usual
- Speak a preset's Name (e.g. "my email")
- The transcript is replaced with that preset's Content automatically
- The final text is inserted into the editor
Full flow example:
You say: "my email"
↓ [ASR]
Transcript: "my email"
↓ [Preset match]
Hit preset: Name "my email" → Content "example@domain.com"
↓ [Replace]
Final output: "example@domain.com"Edit a preset
- Open
Settings → System → Other Settings → Speech Presets - Select the preset in the "Current preset" dropdown
- Modify "Preset name" or "Preset content"; edits are saved automatically
Delete a preset
- Open
Settings → System → Other Settings → Speech Presets - Select the preset in the "Current preset" dropdown
- Tap "Delete" and confirm
Matching rules
Exact match first
- Exact match: transcript equals the preset Name exactly (including spaces and case)
- Case-insensitive match: same content but different case
Examples
| Trigger | Transcript | Match | Type |
|---|---|---|---|
| "my email" | "my email" | ✅ | exact |
| "my email" | "my email" | ❌ | whitespace differs |
| "ASR" | "asr" | ✅ | case-insensitive |
| "received" | "received it" | ❌ | not equal |
| "ok" | " ok " | ✅ | trimmed spaces |
Practical examples
Personal info
Contact details
[
{
"name": "my email",
"content": "your.email@example.com"
},
{
"name": "my phone",
"content": "13800138000"
},
{
"name": "my address",
"content": "Room XX, No. XX Road, Chaoyang District, Beijing"
}
]Social accounts
[
{
"name": "my WeChat",
"content": "wxid_1234567890"
},
{
"name": "my Twitter",
"content": "@YourTwitterHandle"
},
{
"name": "my GitHub",
"content": "https://github.com/yourusername"
}
]Templates
Email signature
[
{
"name": "email signature",
"content": "Best regards,\\n\\nJohn Doe\\nSenior Engineer\\nACME Corp\\nPhone: +1-xxx\\nEmail: john@example.com"
}
]Disclaimer
[
{
"name": "disclaimer",
"content": "This message is for reference only and does not constitute investment advice."
}
]How it interacts with other features
With AI post-processing
Speech presets run before AI post-processing:
ASR → [speech preset replacement] → [AI post-processing] → insertWith ASR providers
Speech presets are provider-agnostic:
- ✅ works for all providers
- ✅ works for cloud and local engines
- ✅ works for both streaming and non-streaming modes
Best practice: pick an accurate ASR provider so trigger phrases are recognized correctly.
With floating ball
Floating ball voice input fully supports speech presets:
Floating ball recording → ASR → preset match → insert into active editorNotes
Trigger design principles
Avoid conflicts
- ❌ avoid very common phrases (e.g. "ok", "thanks")
- ❌ avoid too-short triggers (single syllable)
- ❌ avoid conflicting replacements for common expressions
Recommended trigger design
- ✅ use fixed patterns ("my ", " address")
- ✅ use proper nouns (company email, home address)
- ✅ use abbreviations (ASR, LLM)
- ✅ use unique phrases ("insert signature", "append disclaimer")
Performance
- Count: matching walks the preset list one by one, so a very large list may slightly affect performance
- Content length: unlimited, but very long content may affect UX
Data safety
- Local storage: all presets are stored on the device
- Backup: back up your presets regularly with the in-app backup feature
- Privacy: avoid storing sensitive information (e.g. passwords) in presets
FAQ
A preset does not trigger
Checklist:
- ✅ the preset was added successfully (visible in the list)
- ✅ the trigger phrase is spelled correctly
- ✅ the transcript matches the preset Name (check spaces and punctuation)
- ✅ the transcript is trimmed (no leading/trailing spaces)
Common causes:
- Transcript contains punctuation: "my email." does not match "my email"
- Transcript contains extra spaces: "my email" does not match "my email"
- Case mismatch: handled automatically; if it does not work, please report a bug
Related
- Voice Input Basics - how recognition works
- AI Post-processing - what happens to preset content afterwards