{% extends "admin/_layout.html" %} {% from "_macros.html" import icon %} {% set section = "audio" %} {% block title %}{{ t("Audio") }} - {{ brand.name }}{% endblock %} {% block heading %}{{ t("Audio") }}{% endblock %} {% block admin_content %}

{{ t("Two endpoints speaking the OpenAI audio API: one that turns speech into text so a message can be dictated, one that reads a reply out. They are configured separately because they usually are separate servers — whisper.cpp and Kokoro, say, or Speaches for both.") }}

{% if saved %}
{{ icon("check", "icon--sm") }} {{ t("Audio settings saved.") }}
{% endif %}

{{ t("Dictation") }} {% if values.stt_enabled %}{{ t("on") }} {% else %}{{ t("off") }}{% endif %}

{{ t("Adds a microphone to the composer. Recordings are sent to this endpoint and never written to disk.") }}

{{ tm("Where /v1/audio/transcriptions lives — whisper.cpp's whisper-server, Speaches, or anything else speaking it. With or without /v1; either is understood.") }}

{{ t("Encrypted at rest. Clear the field to remove it.") }}

{{ tm("A server hosting one model ignores this and uses whatever it was started with — whisper-1 is then just a label. It only selects anything on a server that hosts several.") }}

{{ tm("An ISO code such as en or sk. Leave empty to let the server detect it, which is what whisper does best.") }}

{{ t("Read aloud") }} {% if values.tts_enabled %}{{ t("on") }} {% else %}{{ t("off") }}{% endif %}

{{ t("Adds a speaker button to every reply. Each reader can pick their own voice in their settings; what is chosen here is the default.") }}

{{ tm("Where /v1/audio/speech lives — Kokoro-FastAPI, OpenAI, or anything else speaking it.") }}

{% if voice_error %} {{ t("Could not read the voice list: %(error)s", error=voice_error) }} {% else %} {{ t("Read from the endpoint. Save and test to refresh it.") }} {% endif %}

{{ t("Only the starting value for each account — anyone can turn it off in their own settings, and nobody is made to listen.") }}

{# What speech costs, in money, like a model's prices. #}

{{ t("Price") }}

{{ t("What speech costs, in %(currency)s — in the browser and through the API alike. 0 is free, which is what a server of your own usually is.", currency=currency_sign) }}

{{ t("Per minute of recording, by the length the server reports, or the recording's own.") }}

{{ t("Per character read aloud.") }}

{% endblock %}