> ## Documentation Index
> Fetch the complete documentation index at: https://docs.heylinger.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enable voice

> Turn on recording, dictation, and Grok Live voice mode on a Linger server with your own keys.

Voice is off until you add a key. Two keys turn on two separate paths. Set either one or both:

* **`SONIOX_API_KEY`** turns on recording, dictation, and archive recovery. Linger uses **Soniox** for streaming speech recognition.
* **`XAI_API_KEY`** turns on Grok Live voice mode. Live does not need Soniox.

LiveKit carries real-time audio between the browser and the voice workers. Docker Compose already runs LiveKit and the voice workers, so on that install you only add a key. This page covers the keys, the microphone rule, LiveKit settings, and voice in a development checkout.

![A meeting recorder shows a live transcript, and the recording and follow-up draft land in the Another Me chat.](https://mintcdn.com/lev9-doc/242t0Vu04dEWZBPx/images/feature-voice.jpg?fit=max\&auto=format\&n=242t0Vu04dEWZBPx\&q=85\&s=5e8491c9387fd6b82854f4d9948b0def)

A recording with a live transcript.

## Add your voice keys

Get a Soniox key from [soniox.com](https://soniox.com) and an xAI key from xAI. Then set the keys on a Docker Compose install.

**1. Edit .env**

Set the key for each path you want in the `.env` file of your checkout:

```bash theme={null}
SONIOX_API_KEY=<your Soniox API key>
XAI_API_KEY=<your xAI API key>
```

Leave a key empty to keep its path off.

**2. Apply the change**

```bash theme={null}
docker compose up --detach --wait
```

Soniox and xAI are hosted services. Audio goes to them under your key, so check their terms against your data rules.

## Which key turns on which feature?

Each voice feature depends on one key. An empty key keeps its feature off.

| Key | What it turns on | Voice mode button |
| - | - | - |
| `SONIOX_API_KEY` | Recording, dictation, and archive recovery | Dictates, when only this key is set |
| `XAI_API_KEY` | Grok Live voice mode, on its own | Starts Live. See [Voice Mode](https://docs.heylinger.com/voice/voice-mode.md). |

Recording transcripts separate speakers. Dictation does not. In Live, your captions come from Grok's own transcription, not from Soniox. Each voice worker takes a limited number of sessions at a time.

## Can I use the microphone from another computer?

Only over HTTPS. Browsers allow the microphone only on `localhost` or HTTPS. Voice from another computer needs an HTTPS proxy in front of port 3000.

HTTPS may not be enough on its own. Browsers connect to LiveKit at `LIVEKIT_URL`, not through port 3000. [Serve other computers on your network](https://docs.heylinger.com/admin/network.md) explains this limit. Test a real recording from another computer before you rely on it.

## Do I need to configure LiveKit?

Not on Docker Compose with the defaults. `LIVEKIT_URL`, `LIVEKIT_API_KEY`, and `LIVEKIT_API_SECRET` default to the LiveKit service in the root `docker-compose.yml` and its development key pair.

The LiveKit server takes the same key pair as the Linger services. If you change the pair, change both sides together. A production server uses its own pair.

## Run voice in a development checkout

`pnpm dev` starts no containers. While `SONIOX_API_KEY` or `XAI_API_KEY` is set in `.env`, it runs `livekit-server` from your `PATH` on the ports and keys of the three `LIVEKIT_*` variables. Install it first: `brew install livekit` on macOS, or `curl -sSL https://get.livekit.io | bash` on Linux. Without it, `pnpm dev` prints how to install it and voice cannot connect. The Node services start the voice workers themselves.

Recordings also need FFmpeg. Put `ffmpeg` and `ffprobe` on the `PATH` of the server process. [Contribute](https://docs.heylinger.com/developers/contribute.md) covers the rest of the development setup.

## Keep learning

> [card] [Meetings](https://docs.heylinger.com/voice/meetings.md)
>
> Record a meeting with a live transcript.

> [card] [Voice Mode](https://docs.heylinger.com/voice/voice-mode.md)
>
> Talk to Linger by dictation or in a live conversation.

> [card] [Serve other computers on your network](https://docs.heylinger.com/admin/network.md)
>
> Put HTTPS in front of port 3000.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.