AI engines (ASR / TTS / LLM)
Pick and tune CrossMeet's 3 swappable AI engines — speech recognition (ASR), speech synthesis (TTS), and translation LLM.
CrossMeet splits its AI stack into 3 independently swappable engines: ASR (listen), LLM (translate), TTS (speak). This guide covers selection, API keys, local install, and tuning.
1. Architecture
You speak → mic → ASR → source → LLM → translation → TTS → vMic → other side
↓ ↑
VAD / segmentation Glossary + RAG injected
Each engine is swappable independently. Example combo: local Whisper (ASR) + Claude (LLM) + Aliyun TTS.
2. ASR (speech recognition)
Comparison
| Engine | Speed | Accuracy | Offline | Cost | Best for |
|---|---|---|---|---|---|
| Whisper-faster (local) | Medium (fast on GPU) | Excellent | ✅ | Free | Privacy / long sessions |
| Whisper API | Fast | Excellent | ❌ | $6/M sec | Occasional use |
| Aliyun ASR | Fast | Best for Chinese | ❌ | Per-second | Chinese-heavy |
| Qwen3-ASR | Fast | Excellent Chinese | ❌ | Per-token | Chinese + multimodal |
| Azure Speech | Fast | Excellent | ❌ | Per-char | Enterprise Azure contracts |
Recommended combos
- Daily engineering chat: Whisper-faster local + GPU (privacy + zero cost)
- Important client meetings: Whisper API (cloud, reliable)
- Chinese-heavy: Aliyun ASR + Qwen3 fallback
Configure API key
Settings → AI Engines → engine card → enter API key + Region
Install local Whisper
- AI Engines → Whisper-faster card → Install Local
- Pick a model size (match your hardware):
- base (300 MB) — 8 GB RAM ok, basic quality
- medium (1.5 GB) — 16 GB RAM, good quality
- large-v3 (3 GB) — 16 GB+ RAM + GPU 6 GB+, excellent
- Wait for download (5–15 minutes)
- Enable GPU: check Use CUDA (NVIDIA driver ≥ 525)
Key parameters
Settings → ASR → Advanced:
| Parameter | Default | Notes |
|---|---|---|
vad_threshold |
0.3 | Silence detection sensitivity — lower for noisy rooms (0.2) |
min_silence_ms |
500 | Silence ms to mark end-of-sentence |
partial_freq_ms |
300 | How often partial transcripts emit |
language |
auto | Force language code (auto-detect occasionally misfires) |
prompt |
(empty) | LLM-style prompt to help with proper nouns |
Tuning tip: before a meeting, try a sample sentence in settings, dial in until it feels right.
3. LLM (translation model)
Comparison
| Engine | Translation quality | Speed | Context | Cost |
|---|---|---|---|---|
| Claude 3.5 Sonnet | Highest | Fast | 200K | $3/M in, $15/M out |
| GPT-4o | High | Fast | 128K | $2.5/M in, $10/M out |
| GPT-4o-mini | Good | Very fast | 128K | $0.15/M in, $0.6/M out |
| Gemini 1.5 Pro | High | Medium | 1M | $1.25/M in, $5/M out |
| Qwen3-Max | High (best EN↔ZH) | Fast | 128K | Per-token |
| Local Llama 3.1 70B (Ollama) | Medium | Slow | 128K | Free |
Recommended
- Business meetings: Claude 3.5 Sonnet (most natural, least "AI translation" feel)
- Budget-conscious: GPT-4o-mini (ultra-low cost, good enough daily)
- Local privacy: Ollama + Llama 3 / Qwen2 70B (needs 64 GB+ RAM or GPU)
Custom prompt templates
Settings → LLM → Prompt Templates:
You are a professional translator.
Translate from {source_lang} to {target_lang}.
Glossary (MUST follow):
{glossary}
Reference (use if relevant):
{rag_chunks}
Context (previous 3 sentences):
{history}
Sentence to translate:
{text}
Output ONLY the translation, no explanation:
Variables:
{source_lang}/{target_lang}— language codes{glossary}— active glossary terms{rag_chunks}— RAG-retrieved chunks{history}— last N sentences{text}— sentence to translate
4. TTS (speech synthesis)
See Virtual microphone.
Key parameters
Settings → TTS → Advanced:
| Parameter | Default | Notes |
|---|---|---|
voice |
Engine default | Voice selection |
speed |
1.0 | Playback speed 0.5–2.0 |
pitch |
0 | Pitch shift −10 to +10 |
stability |
0.5 | ElevenLabs only — voice stability |
Multi-voice
Configure different voices per language / persona:
- English (primary): OpenAI TTS —
alloy(neutral, professional) - Chinese (primary): Aliyun TTS —
xiaoyun(warm female) - Japanese (secondary): Edge TTS —
ja-JP-NanamiNeural
Settings → TTS → Multi-Voice to configure.
5. Hot-swap shortcuts
The top dropdown in the main UI:
Ctrl+1— switch ASR to engine slot 1 (defined in Settings)Ctrl+2— switch LLM to engine slot 2Ctrl+3— switch TTS to engine slot 3
Useful when a meeting suddenly turns sensitive and you want to jump to local engines.
6. Where to get API keys
| Service | URL | Required config |
|---|---|---|
| OpenAI | platform.openai.com | API key |
| Anthropic | console.anthropic.com | API key |
| Google AI | aistudio.google.com | API key |
| Aliyun | dashscope.console.aliyun.com | API key + Region |
| Azure | portal.azure.com | Endpoint + Key + Region |
7. Self-hosted / private endpoints
CrossMeet is OpenAI-API-compatible — point it at any private endpoint:
Settings → LLM → Custom Endpoint
Base URL: https://your-proxy.com/v1
API Key: your-internal-key
Model: claude-3-5-sonnet (any name — your proxy decides)
Works with: corporate proxies, local Ollama, One-API / LiteLLM gateways.
8. LAN API sharing
Expose local engines to other machines on your LAN:
- Settings → Networking → LAN API
- Enable → pick which engines to expose (ASR / TTS / LLM)
- Set an access token
- On other machines, configure CrossMeet:
- Base URL:
http://your-ip:7860/v1 - API Key: your token
- Base URL:
Great for: one GPU workstation serving 10 thin-laptop teammates.
9. Troubleshooting
| Symptom | Check |
|---|---|
| ASR outputs garbage | language set to auto — may be detecting the wrong language |
| LLM drops text | Prompt may be cut off / glossary may be overflowing context |
| TTS silent | Audio settings → confirm output device |
| Cloud engine timeout | API key balance, network reachability, firewall egress |
| Local engine slow | GPU enabled? Model size too large? |
More: Troubleshooting.