{# The Transcription step (ADR-0027): ASR backend and checkpoint readiness, from service.agent_flow.transcription_status. It is its own file because the explicit download action re-renders just this step in place (#setup-transcription) after the user asks for the checkpoint -- the hello-world acceptance check never downloads, so this is the one place setup triggers a first-use fetch. #}
  • {{ tr("Transcription") }}

    {% if transcription.state == 'ok' %}

    {{ tr("Transcription is ready here: the {backend} backend runs on this machine.", backend=transcription.backend) }}

    {% if transcription.backend == 'apple-speech' %}

    {{ tr("That backend is model-free: it needs no checkpoint on this system.") }}

    {% else %}

    {{ tr("Checkpoint on disk: {model}.", model=transcription.model) }}

    {% endif %} {% elif transcription.state == 'backend' %}

    {{ tr("No ASR backend is available on this machine yet. Install one, then reload this page; Settings → Backends names what each backend needs.") }}

    {% else %}

    {{ tr("The {backend} backend needs a model checkpoint, and none is on disk yet. Download it here, or place a ggml checkpoint in the directory below.", backend=transcription.backend) }}

    {% endif %} {% if error %} {% endif %}

    {{ tr("Models directory: {models_dir}", models_dir=transcription.models_dir) }}

    {% if transcription.models_present %}

    {{ tr("Models on disk: {models}", models=transcription.models_present | join(', ')) }}

    {% else %}

    {{ tr("No model checkpoints are on disk yet.") }}

    {% endif %} {% if transcription.state == 'model' %}
    {{ tr("It is fetched once and verified against a pinned checksum; this can take a few minutes.") }}
    {% endif %}
    {{ tr("Next: Agent") }} {{ tr("Skip") }}