{% extends "base.html" %} {% set labels = { "welcome": "Welcome", "media": "Media folders", "vocabulary": "Vocabulary", "llm": "LLM enhancement", "services": "Model services", "finish": "Finish", } %} {% block title %}Voxint setup — {{ labels[step.value] }}{% endblock %} {# The wizard runs before onboarding, so the protected top nav (Runs / Review) would only bounce the operator back here. Replace it with a step indicator. #} {% block nav %}
    {% for s in steps %}
  1. {{ loop.index }}{{ labels[s.value] }}
  2. {% endfor %}
{% endblock %} {% block body %}
{% if error %}{% endif %} {% if step.value == "welcome" %}

Welcome to Voxint

Voxint transcribes your audio and video, separates who spoke when, and lets you attribute each voice to a real person — so you get a searchable, speaker-labelled transcript you can trust.

This quick setup takes about two minutes. Every step is optional and you can revisit it later.

Get started →
{% elif step.value == "media" %}

Media folders

Voxint reads media from under {{ media_root }}. Register one folder per line (paths relative to that root); leave blank to skip.

{% if media_folders %}

Registered: {% for f in media_folders %}{{ f }}{% if not loop.last %}, {% endif %}{% endfor %}

{% endif %}

Scan for existing media

Optionally look through your registered folders for audio/video that isn't in Voxint yet, and queue it for transcription.

Continue →
{% elif step.value == "vocabulary" %}

Custom vocabulary

Add names, jargon, acronyms, and preferred spellings — one per line. Voxint feeds these to transcription and to name attribution, so unusual terms come out right. They apply to your next run with no restart needed.

Continue →
{% elif step.value == "llm" %}

LLM transcript enhancement (optional)

When enabled, Voxint sends transcript segments to an OpenAI-compatible model to clean them up and surface likely speaker names. It's best-effort — a slow or failing model never blocks a run; enhancement is simply skipped.

{% if llm_key_present %}

An LLM_API_KEY is set in the environment. ✓

{% else %}

No LLM_API_KEY is set. The key is configured in the environment (never stored here); set it and restart the worker before enabling.

{% endif %} {% if not llm_budget_ok %}

The configured LLM run budget doesn't fit the transcription stage lease, so enhancement can't be enabled until that's adjusted.

{% endif %}
Continue →
{% elif step.value == "services" %}

Model services

Voxint's transcription, diarization, and speaker-embedding run as separate model services (GPU or CPU tier). Here's whether each is reachable right now:

{% for svc in services %}
{{ svc.name }} {{ svc.detail }}{% if svc.latency_ms is not none %} · {{ "%.0f"|format(svc.latency_ms) }} ms{% endif %}
{% endfor %}

If a service is down, start the model services — the GPU overlay (compose.gpu.yaml) or, with no NVIDIA GPU, the CPU overlay (compose.cpu.yaml); see the README's quickstart. This check is advisory — you can finish setup regardless. But a run submitted while a service it needs is down will retry with backoff (about five attempts over roughly an hour and a half) and then land failed; once the services are up, requeue it from the run's page.

Re-check Continue →
{% elif step.value == "finish" %}

You're all set

{% if tutorial_available %}

Finishing starts a short guided tutorial on a bundled three-speaker sample. You can re-run this setup — or the tutorial — any time from Settings.

{% else %}

Finishing opens the review console. You can re-run this setup any time from Settings.

Tip: run voxint tutorial seed to enable the guided tutorial on a bundled three-speaker sample.

{% endif %} {% endif %}
{% endblock %}