# Turn on voice

Turn on **Voice mode** to add a microphone button to the chat and a voice bar to your app. For what voice changes for your users, see [Voice](https://docs.faustine.ai/web-agents/voice/).

## Before you begin

- You have an OpenAI API key. Voice runs on OpenAI Realtime, so it needs one even when your model provider is not OpenAI.

## Add the OpenAI key for voice

The key is one setting for the whole workspace. Until it is set, the **Voice mode** switch of every agent is disabled and the row says why.

1. In the portal, go to [**Settings**](https://auth.faustine.ai/go?to=%2Fsettings%3Ftab%3Dprovider) and select **Model Provider**.
2. In the **Voice** row, select **Edit**.
3. Select **OpenAI** and enter the key in **API key**. The key is used only for voice. The portal does not show it again.
4. Select **Continue**, then **Test connection**. The result has a line for voice: **Voice key working**, or **Voice key failed** with the reason.
5. Select **Save changes**.

The **Voice** row now shows **OpenAI · Realtime** and **Key configured**. A new key applies to voice sessions within five minutes.

To remove the key, edit the **Voice** row, select **Not configured** and save. Voice then stops working for every agent in the workspace.

## Turn on voice

1. In the portal, go to [**Web Agents**](https://auth.faustine.ai/go?to=%2Fweb-assistants) and select your agent.
2. Select the **Look & feel** tab and find **Voice**.
3. Turn on **Voice mode**. The rest of the settings appear, and the **Live preview** switches to the voice bar.
4. In **Opens in**, select **Chat** or **Voice**. This is what the launcher opens.
5. Under **Voice bar**, select **Pill**, **Dock** or **Orb**, then a **Position**.
6. In **Voice**, select a voice. To hear it, select the play button next to the list. The sample is a few seconds of speech in the selected language, billed to the OpenAI account of the voice key.
7. In **Language**, select a language, or leave **Match the user (auto)**.
8. Select **Save changes**.

Voice is saved to the draft. Your users get it when you [publish a version](https://docs.faustine.ai/web-agents/publish-a-version/) and [deploy it](https://docs.faustine.ai/web-agents/deploy-a-version/).

## Make the voice speak first

1. In the **Voice** section, turn on **Greeting**.
2. Enter what the voice says when the bar opens, up to 300 characters. While the field is empty, **Generate with AI** writes a greeting from the agent's persona.
3. Select **Save changes**.

## Set the voice's style

In **Voice style**, enter instructions for the voice only, such as its tone, how formal it is or phrases to avoid. The field takes 2000 characters. What the agent knows and does still comes from its persona.

## Turn voice off

Turn off **Voice mode** and select **Save changes**. After the next publish and deploy, the microphone button is gone and the agent is chat only. The other voice settings are kept.

## Troubleshooting

| Symptom | Cause | Fix |
| --- | --- | --- |
| The **Voice mode** switch is disabled | The workspace has no OpenAI key for voice. Voice runs on OpenAI Realtime, which other model providers do not offer. | [Add the OpenAI key for voice](#add-the-openai-key-for-voice). |
| The voice bar opens and the agent does not answer, or a voice sample does not play | OpenAI rejects the voice key, or the account has no access to the Realtime models. | Under **Settings** > **Model Provider**, edit the **Voice** row and run **Test connection**. Replace the key if the test fails. |
| Voice is on in the portal and your app has no microphone button | The change is in the draft. | Publish a version and deploy it. |

## Next steps

- [Voice](https://docs.faustine.ai/web-agents/voice/): the bar shapes, voices and languages.
- [Set the greeting, placeholder and shortcut](https://docs.faustine.ai/web-agents/greeting-and-shortcut/): the chat's own greeting.
- [Publish a version](https://docs.faustine.ai/web-agents/publish-a-version/): send voice to your users.
