Installation

There is no installer and no public package yet: the steps below are for those who have been given access to the source repository. If you do not have it, ask for it on the contact page.

Requirements

Windows

One command tells you where a machine stands: the environment check reports what is present, what is missing and the command that installs it, and in fix mode it installs the items one by one after asking. Only the virtual cable needs administrator rights; everything else installs as your own user.

check-environment.cmd
check-environment.cmd -Fix
What What for Note
Windows x64the caption window and the servicesWindows 11, or Windows 10 version 2004 or newer if the captions must stay out of screen sharing; on Windows 10 and LTSC editions the winget package manager has to be installed once by hand.
.NET 10 SDK, PowerShell 7building and running the programs; the launcher scriptsBoth are installed by the fix mode through winget.
NVIDIA graphics card with a current driverthe caption server, the translator and the voice serviceAmpere and newer cards use the CUDA 13 runtime, older ones (Turing, for example) CUDA 12; the caption server offers to download the runtime it needs. Without a card the caption server runs on the CPU, slower, and says so at start-up. The card can also be in another machine on your network.
Python 3.10–3.12the voice engine (cloned and built-in voices)Python 3.13 is not suitable, nor is the Microsoft Store edition; the environment preparer offers to install 3.12. The in-process voice needs no Python.
PostgreSQL in Docker Desktopthe account service's databaseThe account service's launcher runs it in a container; Docker Desktop builds on WSL, and the fix mode installs it if it is missing. It is needed only on the machine where the account service runs with its own database.
FFmpegthe command-line caption client (reading video and audio files)If it is missing, the client offers to download and set it up.
Virtual audio cable: VB-CABLE, and the A+B pack for both directionsthe call's audio in and the interpreter's voice outDonation-based, so we do not distribute it: the packages are downloaded by hand and placed in the Resources folder, from where the install scripts find them. One cable serves the incoming-only mode, both directions need two.
Headphoneswhenever the interpreter speaksFrom a speaker the interpreter's own voice would get back into the captioning.
Internet for the first downloadsthe tools and the modelsAfter that everything runs offline; the models are stored under the data root.

macOS

On macOS the same environment check runs from check-environment.command (a double-click in the Finder works too). The fix mode does not install the missing items by itself, because they may ask for an administrator password: it prints the command that installs them – Microsoft's install script (dotnet-install.sh) for the .NET SDK, the Homebrew command for the rest.

./check-environment.command
./check-environment.command -Fix
What What for Note
Mac with Apple siliconthe caption window and the servicesmacOS 14.2 or later. The services do not run on an Intel-based Mac. The caption window needs an active display: on a Mac without one only the services run.
.NET 10 SDK, PowerShell 7building and running the programs; the launcher scriptsWith Homebrew: brew install --cask powershell and brew install --cask dotnet-sdk. Without PowerShell 7 no launcher starts, and it says so; the finished LiveCaption Pro.app no longer needs the .NET SDK to run.
The Apple silicon GPU (Metal)the caption server, the translator and the voice serviceThe caption server and the translator accelerate through Metal, the voice engine on the mps device. There is no separate video memory: the models share the unified memory with the system. If Metal does not start, the caption server says so and switches to the CPU.
Python 3.10–3.12the voice engine (cloned and built-in voices)On macOS 3.12 is the default: the environment preparer first uses uv's own interpreter, then Homebrew's python@3.12 (brew install uv or brew install python@3.12).
PostgreSQL 18 from Homebrewthe account service's databasebrew install postgresql@18. The project gets its own database cluster from it, in its own folder under the data root and on the loopback address only; Docker is not needed.
FFmpegthe command-line caption client (reading video and audio files)brew install ffmpeg – the client's own downloader works on Windows only.
Virtual audio cable: BlackHole 2ch (or 16ch)the call's audio in and the interpreter's voice outbrew install --cask blackhole-2ch. One device serves both directions: its playback and recording ends are the same. If it does not appear among the audio devices after installing, restart the Mac – restarting the audio system is not enough. The Windows cable installer does not run on macOS.
Permissions: Microphone and system audio recordingcapturing the audiomacOS gives them to whoever is responsible for the launch: the terminal application when started from a script, the program itself for LiveCaption Pro.app started from the Finder. With an ad hoc signature (no certificate) it may ask again after every program update. The macOS Live Captions source also needs the Accessibility permission.
Headphoneswhenever the interpreter speaksFrom a speaker the interpreter's own voice would get back into the captioning.
Internet for the first downloadsthe tools and the modelsAfter that everything runs offline; the models are stored under the data root.

Video memory

The three engines share one card, and the caption server sizes its model pool to the memory left free – which is why the start order is fixed. These are the measured configurations; if the card is smaller, the translator picks a smaller model variant, or the services move to the machine that has the card.

What we measured Result Under what conditions
Video memory for the three engines together 22.3 GB Measured on one machine with the largest translator model. On a 20 GB card the translator runs as 12b Q4_K_M (measured 7.5 GB), on a 32 GB card as 12b Q8_0.
Video memory of the translator with the smaller model variant 7.5 GB TranslateGemma 12b Q4_K_M; the Q8 variant needs 16.7 GB.
Video memory of the voice service 2.3 GB XTTS-v2; the in-process voice needs none.

Measurement machine: NVIDIA GeForce RTX 5090, Intel Core i9-13900K, 128 GB RAM; September 2026. Other machines give other numbers; this page publishes no numbers measured on a Mac. The interpreter timings are medians (p50): half of the sentences were faster; the 95th percentile and the share of sentences skipped under load are on the How it works page.

macOSOn Apple silicon there is no separate video memory: the caption server works from Metal's recommended working set and the system's free memory, so it also sees what a translator running beside it has taken. This page publishes no configurations measured on a Mac.

The first start, in order

The order matters: every service authenticates through the account service, so that one has to exist before the others start.

  1. Clone the repository

    Clone the source repository with its full history onto the machine. Everything below runs from its root folder.

  2. Check the environment, then fix it

    The report mode changes nothing. The fix mode asks per item, says in advance how big the download is and whether it needs administrator rights, and installs what is missing.

    check-environment.cmd
    check-environment.cmd -Fix

    macOSOn macOS PowerShell 7 comes first; after that check-environment.command reports and fixes the same way, and for the Homebrew items it only prints the command.

    brew install --cask powershell
    ./check-environment.command
    ./check-environment.command -Fix
  3. Start the account service

    Start it in its own, visible window: the first start creates an administrator and prints its random password once – never into a log. Then log in on its admin page, where the interface immediately asks for a new password, and issue keys for the clients on the Keys page.

    AccountServer\start-accountserver.cmd
    http://127.0.0.1:8101/admin

    macOSOn macOS the launcher's .command pair runs, and the database needs no Docker: a native cluster of its own is created with Homebrew's postgresql@18 programs.

    brew install postgresql@18
    AccountServer/managed-postgres.command
    AccountServer/start-accountserver.command
  4. Connect the services to the account service

    The peer setup script issues the three services' tokens, checks them with an authenticated test, and then activates the account service's address. The address is an environment variable that running windows do not see: close every open window afterwards.

    AccountServer\setup-account-peers.ps1 -Tokens
    AccountServer\setup-account-peers.ps1 -Check
    AccountServer\setup-account-peers.ps1 -Activate

    macOSOn macOS setup-account-peers.command takes the same switches; the persistent variables go into the user's environment file there (~/.config/live-caption-pro/environment), and the launchers read them from it.

    AccountServer/setup-account-peers.command -Tokens
    AccountServer/setup-account-peers.command -Check
    AccountServer/setup-account-peers.command -Activate
  5. A key for the command-line scripts

    The batch captioning and the file translators use their own key, kept in a persistent environment variable per service. The key generator issues it without ever showing it, and an existing key is never overwritten. The scripts also ask for it themselves the first time they run without one.

    generate-api-key.cmd

    macOSOn macOS generate-api-key.command issues it, with the same switches; the key goes into the persistent environment file.

    ./generate-api-key.command
  6. The daily launcher

    One launcher brings up the four background services in the fixed order – account service, then the translator and the voice service, then the caption server – each in its own window. The caption window has a launcher of its own; a server machine does not need it. Whatever runs on another machine is left out with a switch.

    launch-system.cmd
    LiveCaption\start-livecaptionpro.cmd

    macOSOn macOS launch-system.command brings up the services, and LiveCaption/start-livecaptionpro-avalonia.command starts the caption window. The services start in Terminal windows, so a graphical session is needed – this does not work over SSH. Publishing produces a self-contained LiveCaption Pro.app bundle that can also be started from the Finder or the Dock; while it runs, the program lives in the menu bar.

    ./launch-system.command
    LiveCaption/start-livecaptionpro-avalonia.command
  7. Keys and mode in the caption window

    On the Servers tab of the settings window enter the three services' addresses and keys; on the Usage tab choose what you use the program for, and the tab writes out what to set where.

    macOSOn macOS recording the microphone and the system audio needs a permission, and the program encrypts the keys with a key kept in the macOS Keychain: keys copied over from Windows have to be entered again.

The same steps with every command and the expected output are in the guides:

Environment variables

These variables shape where the product keeps its data and how the parts find each other. A change reaches only the windows opened afterwards.

Variable What it does
LCP_HOMEThe data root: models, calibration, logs and recordings live under it. Without it everything stays in the user profile's local application data.
LCP_LANGUAGEThe language the machine would decide by itself: the log language and the interface language in automatic mode. Values: auto, hu, en.
LCP_ACCOUNT_URLThe address of the account service. Mandatory: without it the three services do not start. The peer setup script sets it.
LCP_ACCOUNT_TOKEN_<SERVICE>The peer token of one service (the name ends with the service's name). Read by the service itself; it never goes on a command line.
LCP_SCRIPT_KEY_<SERVICE>The command-line scripts' own key for one service. The key generator writes it; the scripts read it.
LCP_INSTANCEThe name of a service instance when several instances run on one machine.

Removal

One command removes what the product installed or downloaded and leaves the workstation clean. By default it only reports what would go and how much space it would free; deletion asks per item, and the machine-level tools – Python, the .NET SDK, PowerShell 7, the audio cable – have to be requested separately, because others on the machine may use them. It never touches the repository, its history or the test data.

uninstall-environment.cmd
uninstall-environment.cmd -Remove

macOSOn macOS the removal tool has no launcher and has not been measured there: the items installed with Homebrew are removed with brew uninstall.

Need access? Write to us.

Tell us what you would use it for and in what environment; we answer with the access and a quote.

Request a quote Have a question? Write to us.

Hiba történt az oldal futtatásakor. / An error occurred while running the page. Újratöltés / Reload 🗙