# Voices and versions

> What a Kheelona voice is, where to find the voices you can use, and why a session always keeps one version.

Source: https://docs.voice.kheelona.com/concepts/voices/

A **Kheelona voice** is a complete character: how it sounds, its personality, how it speaks and how strict its safety
rules are. You pick a voice. You never pick or see what runs underneath.

Each voice has an ID, such as `lumi-dragon`, which you pass as `voice_id` when you create a session.

## Find your voices

You only see the voices Kheelona has enabled for your account, and that list can differ from another partner's. There is
no public catalogue. Look in two places:

- the **Voices** page of your console: each voice with its name, its safety level and a sample clip to listen to;
- `GET /v1/voices` with your API key (the `voices:read` scope): the same list as data. See
  [List voices](https://docs.voice.kheelona.com/reference/generated/api/listvoices.md).

The docs use `lumi-dragon` as the example voice. Yours may be different.

## Versions

A voice changes over time as Kheelona improves it. Each change is published as a new **version**, and a published version
never changes afterwards.

- **A new session uses the current version** and keeps exactly that version until it ends. If Kheelona publishes an
  update in the middle of a conversation, that conversation is not affected.
- `session.ready` and the answer of `POST /v1/sessions` tell you which version a session has pinned
  (`voice.id`, `voice.version`, `voice.name`).
- A voice behaves the same for as long as its version is the same. If you need to know when it changes, check the
  version in `GET /v1/voices`.

## Languages

Every voice can be used in all 11 languages; see the stages: Malayalam and Assamese are alpha, and their spoken use is early. You choose which languages a
session uses when you create it. See [Languages](https://docs.voice.kheelona.com/concepts/languages.md) for how to declare them and
[Supported languages](https://docs.voice.kheelona.com/reference/languages.md) for the notes on each language and its stage.

## Safety level

Each voice has a safety level, `child` or `general`, set by Kheelona. You cannot change it, and your `instructions` cannot
switch it off. See [Safety levels](https://docs.voice.kheelona.com/concepts/safety-levels.md).

## Instructions

You can add `instructions` to a session, for example the child's first name. They shape the voice for that session. They
are never stored in readable form. See [Sessions](https://docs.voice.kheelona.com/concepts/sessions.md).
