Tutorial Center Advanced

Complete Voice Guide

Let them understand what you say (STT), and let them respond with their own voice (TTS). How to choose trigger modes, how to set up various voice services, and how to train a custom voice — all covered here.

~10 min Advanced

What Voice Can Do

Once voice is set up, your time together becomes much more immersive:

  • In-game voice chat — no need to stop and type; just talk to them directly while playing.
  • Phone calls — call them on the Virtual Phone for real-time voice conversations, and even look at the screen together.
  • Their voice — text message read-aloud, in-game speech, and call responses all use their own voice.

Two concepts to understand first: STT (Speech-to-Text) handles "they understand you," and TTS (Text-to-Speech) handles "they speak to you." They are configured separately and work independently — if you just want them to have a voice while you keep typing, you only need to set up TTS.

Speech Recognition (STT)

KOA's speech recognition runs locally on your computer: the recognition model is built into the launcher, no API key is needed, and your voice is never uploaded to any server.

You only need to configure two things, both on the launcher's API page:

  • Recognition language — select the language you normally speak for better accuracy.
  • Trigger mode — "Smart Detection" or "Push to Talk," explained in the next section.

The first time you use voice, the launcher will automatically prepare the recognition model (a progress bar will appear if a download is needed). Just wait a moment — after that, it's instant.

Two Trigger Modes

Choose the trigger mode that suits you on the API page:

ModeHow It WorksBest For
Smart Detection (VAD) Automatically detects when you're speaking and sends the recognized text when you stop Immersive voice chat: keep your hands on keyboard and mouse, talk as naturally as you would with a teammate
Push to Talk Press V to start speaking, press again when done Noisy environment (roommate talking, music playing), or you don't want them hearing every side comment

A small difference to note: in Minecraft, press V to use voice; in Don't Starve Together, toggle the STT switch on the game panel for continuous voice chat.

Text-to-Speech (TTS) Overview

TTS gives them a voice. The most important thing to remember: TTS is configured on the TTS tab within character settings, not the API page — because voice follows the character. Each lover can have their own voice, and it switches automatically when you switch characters.

Open the "Profiles" page → enter your lover's edit page → find the "TTS" tab, and choose a voice service:

ServiceCostFeatures
Edge TTSFreeZero-config, works out of the box with preset voices
ElevenLabsPay per useHighly realistic voices, supports custom voice cloning
MiniMax TTSPay per useRich voice selection, supports voice codes for custom tones
OpenAI TTS (Compatible)Pay per useCompatible with third-party services like SiliconFlow
GPT-SoVITS Emotion-Specialized (Local)FreeBuilt-in KOA training tool, train your own voice from scratch
GPT-SoVITS Inference Package (Local)FreeUnlimited local inference, use pre-trained models directly
GPT-SoVITS Native (Local)FreeConnect to the official GPT-SoVITS directly

The four cloud services above are listed from easiest to hardest to configure. The three GPT-SoVITS local options need no internet — voice data never leaves your computer. The difference is what you already have: if you have a pre-trained model, choose "Inference Package"; if you want to train from scratch, choose "Emotion-Specialized"; if you're already running the official version, choose "Native."

Edge Free TTS

The lowest barrier option: no API key needed, completely free. On the TTS tab, select Edge TTS, pick a preset voice you like, and save. Note: a network proxy may be required.

Start with Edge to give them a voice — if you later want something more fitting for their personality, you can upgrade to one of the options below.

ElevenLabs TTS

Extremely natural and realistic voice quality, with support for custom voice cloning. ElevenLabs offers a limited free tier; usage beyond that is billed per use.

  1. Sign Up for ElevenLabs

    Go to the ElevenLabs website, create an account, and get your API Key from your profile settings.

  2. Enter in KOA

    On your character's "TTS" tab, select "ElevenLabs," enter your API Key, and choose a voice that suits them from the voice list.

  3. Preview and Save

    Preview to confirm it matches their vibe, then save.

MiniMax TTS

A richer selection of voices, plus support for voice codes — enter a voice code to use a custom tone, giving them a truly unique voice.

  1. Sign Up on MiniMax Open Platform

    Register on the MiniMax Open Platform and follow their instructions to obtain your API credentials.

  2. Enter in KOA

    On the character's TTS tab, select MiniMax, enter your platform credentials, and choose a voice — or enter a voice code if you have one.

  3. Preview and Save

    Preview to confirm it matches their vibe, then save.

OpenAI-Compatible TTS

Beyond the official OpenAI service, any service compatible with the OpenAI TTS API works — such as SiliconFlow and similar platforms.

Configuration: on the TTS tab, select OpenAI TTS, change the API address to the one provided by your service, enter that service's key, and choose a voice.

GPT-SoVITS Emotion-Specialized Training Tool

Want them to speak in a voice that's uniquely yours? KOA includes a visual voice training tool — from preparing materials to training to deployment, everything happens in your browser with point-and-click simplicity, no command-line knowledge needed. Once training is complete, deploy as a local TTS service with one click, and KOA connects to it automatically.

This tool is built on the open-source project GPT-SoVITS and its community ecosystem. It is a free tool bundled with KOA, not part of the paid activation features. Please use trained voices for personal purposes only and comply with local regulations.

What You Need

  • NVIDIA dedicated GPU — training requires GPU computing power; integrated graphics won't work. The tool includes a VRAM reference table to help you determine if your GPU is sufficient.
  • GPT-SoVITS official integration package — approximately 8 GB, providing the runtime environment and pre-trained models needed for training. Download instructions are available within the tool page, sourced from official channels.
  • Character voice material — a clean voice recording of the character (game voiceover, anime dialogue, etc.). The tool has built-in slicing and labeling features.
  1. Download the Official Integration Package

    In the launcher's "Tools" page, find "GPT-SoVITS Emotion-Specialized Training Tool" and follow the on-page instructions to download and extract the official GPT-SoVITS integration package. For RTX 50-series GPUs, download the version with the -nvidia50 suffix.

  2. Bind the Directory

    In the tool page, select the directory where you extracted the integration package. KOA will automatically detect it and inject the training panel files. When KOA updates, the panel will update automatically as well.

  3. Launch the Panel and Train

    Click "Launch" and the panel will open in your browser. The panel includes a complete beginner guide — just follow along: create a project, import audio, auto-slice and label, format, then start training. Training time depends on your GPU and data volume, typically ranging from tens of minutes to a few hours.

  4. Deploy as a TTS Service

    After training is complete, deploy with one click from the panel's deployment page. The first deployment requires an internet connection to install a few small dependencies; after that, no network is needed.

  5. Connect to KOA

    On the character's "TTS" tab, select "GPT-SoVITS Emotion-Specialized (Local)." The address is pre-filled by default (http://127.0.0.1:9881). Refresh the voice list, select your trained model, and you can even pick a speaking emotion for each of their lines.

The training panel remains available while the KOA launcher is running. When you close the launcher, the panel and deployment service will shut down together (if training is in progress, a confirmation prompt will appear first).

Daily Use: One-Click API Launch

After training and deploying once, you don't need to open the panel and go through the deployment process every time. The "Tools" page provides a one-click API launch shortcut card — just click it to start the TTS service for KOA, skipping the panel entirely.

GPT-SoVITS Inference Package

If you already have a trained GPT-SoVITS model (trained it yourself or got a pre-made one from the community), you can use the Inference Package to run it directly — no retraining needed, just drop the model in and go.

  1. Download the Inference Package

    Go to the aihobbyist/GPT-SoVITS-Inference page on ModelScope, download and extract the package. Two versions are available — cu124 and cu128 — corresponding to different CUDA versions: pick cu128 if your GPU driver is recent; if it fails to start, try the other one.

  2. Add Your Model

    Place your trained GPT / SoVITS models and reference audio files into the inference package's model directory, following the included example structure (model name / reference language / emotion reference audio).

  3. Start the API Service

    Run the API startup script in the inference package and note the port shown in the console window (usually 8001). Keep this window open while using KOA.

  4. Connect to KOA

    On the character's "TTS" tab, select "GPT-SoVITS Inference Plugin (Local)." Set the API address to http://127.0.0.1:8001 (use the port shown in the previous step's console window, and always use 127.0.0.1 — do not use 0.0.0.0). Refresh the voice list, select your model, and you can also pick a speaking emotion for them.

GPT-SoVITS Native

If you're already running the official GPT-SoVITS api_v2.py, you can connect directly — no need to switch to the Inference Package.

On the character's "TTS" tab, select "GPT-SoVITS Native (Local)" and enter your API address (default is http://127.0.0.1:9880).

The official version does not provide a model list endpoint, so KOA cannot automatically fetch the voice list — you'll need to manually enter the reference audio path and other parameters on the TTS tab. If that feels cumbersome, consider switching to the Inference Package or Emotion-Specialized Training Tool above — just move your models over, no retraining needed.

Bilingual Mode

If their character speaks a foreign language, or you want to practice a language while spending time together — enable Bilingual Mode on the TTS tab in character settings. Virtual Phone texts and voice calls will be presented bilingually, so you can both read and understand without switching to a dictionary app.

Troubleshooting

They can't hear me

  • Check microphone permissions in Windows Settings and make sure the microphone isn't being used by another program.
  • Verify the trigger mode on the API page: if "Push to Talk" is selected, you need to press V to start recognition.
  • Make sure the recognition language matches the language you're actually speaking.

They don't speak

  • Confirm you've selected and saved a service on the TTS tab within character settings (not the API page).
  • When using MiniMax / OpenAI-compatible services, check that your credentials are valid and your balance is sufficient.
  • Check the launcher's "Logs" page for TTS-related errors — the cause is usually visible there.

Emotion-Specialized Training Tool won't start

  • Check if port 9877 is already in use — if you manually ran the panel before, close that instance and launch from KOA instead.
  • Confirm the bound directory is the extracted official GPT-SoVITS integration package (it should contain a runtime folder and a GPT_SoVITS folder).

Can't connect to KOA after Emotion-Specialized deployment

  • Confirm the deployment succeeded on the panel's deployment page (no errors in the deployment log).
  • On the character's "TTS" tab, make sure you selected "GPT-SoVITS Emotion-Specialized (Local)" and not a different GPT-SoVITS option.
  • Keep the address at the default http://127.0.0.1:9881 — don't change it unless you manually changed the deployment port.

GPT-SoVITS Inference Package can't find models / voice list is empty

  • Make sure you're running the "Inference Package" (the inference-specialized version maintained by AI-Hobbyist) — the official version doesn't have a model list endpoint, so KOA can't read its models. If you're using the official version, switch to the "GPT-SoVITS Native (Local)" channel, or switch to the Inference Package.
  • The port in the API address must match what's shown in the Inference Package's console window (usually 8001), and make sure that window is still open.
  • Use 127.0.0.1 for the address — don't use 0.0.0.0 (that's the listening notation for the service, not the access address).

Local TTS stops working while gaming

If they normally speak fine but go silent once you launch a game (especially GPU-intensive ones like Minecraft) — TTS inference and the game are competing for GPU resources. GPT-SoVITS inference tries to use as much VRAM as possible by default, and games also need lots of VRAM — when both run together and VRAM runs out, TTS fails silently (no error, no warning, just no sound).

Try these solutions in recommended order:

  • Limit TTS VRAM usage — find the Python startup file for your GPT-SoVITS inference service (api_v2.py or similar), locate import torch near the top, and add this line right after it:
    torch.cuda.set_per_process_memory_fraction(0.4)
    This caps TTS at 40% of VRAM, leaving room for the game. Recommended values: 0.4 for 12 GB cards, 0.45 for 8 GB, 0.5 for 6 GB. If TTS errors even without a game running after adding this, increase the number.
  • Lower game graphics settings — disabling shaders, reducing render distance, and lowering resolution all free up significant VRAM for TTS. Shaders have the biggest impact: they can consume an extra 4-6 GB of VRAM.
  • Switch to a GPU-free TTS — if your GPU simply can't handle both, switch TTS to Edge TTS (free and doesn't use the GPU) or another cloud service, and game performance won't be affected at all.

To check VRAM usage: open Task Manager, go to "Performance," then "GPU," and look at "Dedicated GPU Memory." If it's close to the total, you're running out of VRAM.

Still can't solve it? Export a diagnostic package and reach out through the channels listed in the Help Center.