No URL is imposed: you enter your server’s. Without a configured and reachable transcription server, Syntheo transcribes nothing, and because the audio is never kept, it cannot catch up on the transcription later.
Before you start
You need:- a real-time transcription server, for example vLLM with a Realtime model (Voxtral Realtime), speaches (formerly faster-whisper-server), or a Nemotron ASR NIM;
- an OpenAI-compatible LLM server, for example vLLM, Ollama, llama.cpp server, LM Studio, SGLang, TGI, or an LLM NIM;
- the base URL of each server and, if the server requires one, its API key.
The ports depend on how you start each server. If two servers run on the same machine, give them different ports.
Syntheo accepts plain HTTP only to a private host:
localhost, [::1], .local names, and the IPv4 addresses 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, and 100.64.0.0/10 (the range Tailscale uses), as well as Tailscale .ts.net names. Everywhere else, including for an internal host name such as gpu.entreprise.lan, the URL must use HTTPS; otherwise saving is refused with the message “Use HTTPS: HTTP is only accepted on this machine or a private network.”. The URL must contain neither credentials nor query parameters.The server card
Each page shows a “My server” card. It works the same way for transcription and for synthesis:- “Server address”: the base address of your server. It is saved automatically as you type.
- “Test connection”: queries the server and shows the result in the status pill. Syntheo also tests the connection as soon as an address is saved.
- “Model”: the served models, as radio buttons. Click a model to choose it. If yours does not appear, click “Enter another name” and type its exact identifier.
- “Advanced” (collapsed): the “API key (optional)” field and “Reset this server…”, which forgets the address and the key after confirmation (“Forget this server’s address and key?”).
- “Help” (collapsed): a reminder of the protocols and typical addresses.
If something fails, a message under the card title says what to do, for example: “The server did not answer at localhost:8000/v1. Check that it is running and that you are on the right network (VPN, Tailscale), then test again.”
Set up transcription
1
Open the Transcription page
In Settings, “My servers” group, open Transcription.
2
Enter the server address
In “Server address”, enter your server’s address, for example
http://localhost:8000/v1 for vLLM or speaches, or http://localhost:9000/v1/realtime for a NIM. For a NIM, http://localhost:9000 also works: Syntheo always uses the /v1/realtime path.3
Enter the API key (optional)
If your server requires a key, open “Advanced” and fill in “API key (optional)”. Leave the field empty for a server without authentication.
4
Test the connection
Click “Test connection”. Syntheo detects the server’s protocol:
- “OpenAI · Realtime and batch”: for vLLM, speaches, or faster-whisper-server. Live transcription goes through the
/v1/realtimeWebSocket; importing an audio file goes through/v1/audio/transcriptions. - “NVIDIA NIM · WebSocket”: for an NVIDIA Speech NIM server deployed on your side. The gRPC endpoint hosted by NVIDIA is not supported.
5
Choose the model
With the OpenAI protocol, the “Model” list shows the models your server publishes. Syntheo preselects the first one; click another one to change it.A NIM does not publish its model list. Syntheo therefore offers the known identifiers:
nemotron-asr-streaming (English), parakeet-tdt-0.6b-v3 (multilingual), parakeet-tdt-0.6b-v2 (English), and cache-aware-parakeet-rnnt-multi-asr-streaming-sortformer (multilingual, with speakers). nemotron-asr-streaming is chosen by default.http://localhost:9000 (a NIM, then “Use this protocol”), a port where nothing listens such as http://localhost:8001/v1 (“Unreachable”), or http://gpu.entreprise.lan/v1 (HTTP refused). Open “Advanced” and “Help”, then click another model.
Live transcription or file only
Syntheo transcribes meetings during the capture, and only then: since the audio is never kept, there is no transcription afterward. The chosen model must therefore be able to stream in real time.- With the OpenAI protocol, any on-premise model (for example Voxtral Realtime on vLLM) is treated as a real-time model. The OpenAI API’s “file” model names (
whisper-1,gpt-4o-transcribe,gpt-4o-mini-transcribe…) only serve for imports: Syntheo refuses to start a capture with them, with the message “This model only transcribes after the recording, which would require keeping the audio. Choose a real-time transcription model.”. - With NVIDIA NIM, all models are real-time. Importing an audio file then goes through the same real-time stream as a meeting: see Import a recording.
Set up synthesis
1
Open the Synthesis page
In Settings, “My servers” group, open Synthesis.
2
Enter the server address
Syntheo accepts any server that exposes the OpenAI API (
/v1/chat/completions and /v1/models), not just vLLM. In “Server address (OpenAI-compatible: vLLM, Ollama, llama.cpp, LM Studio)”, enter for example http://localhost:11434/v1 for Ollama or http://localhost:8080/v1 for llama.cpp server. Keep the /v1 suffix.3
Enter the API key (optional)
Open “Advanced” and fill in “API key (optional)” only if your server requires one (for example vLLM started with
--api-key). It is sent in the Authorization: Bearer header.4
Test the connection and choose the model
Click “Test connection”. Syntheo reads the list from
/v1/models: only the models loaded by your server appear. Click the model to use.5
Set the reasoning effort (optional)
“Reasoning effort” offers “Auto”, “Low”, “Medium”, and “High”. “Auto” lets the server decide. More effort gives finer summaries, but slower ones. The other values only apply with a model that can reason and a server that accepts this parameter.
http://localhost:1234/v1 (LM Studio) to see the model list change. Choose “High” in “Reasoning effort”, then another model: the effort goes back to “Auto”, because it depends on the model.
What goes to your servers
- The transcription server receives the audio of the capture, the dictation, or the imported file, as it streams. Syntheo does not write this audio to disk.
- The LLM server receives the text the task needs: transcript, notes, summary template instructions, question asked in the chat.
- No header identifies your device. Syntheo contacts no other inference service and never falls back to a third-party service if your server does not answer: it shows an error.
Troubleshooting
To work without an internet connection, see Use Syntheo without a network.