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

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") }} Audio settings saved.
{% endif %}

Dictation {% if values.stt_enabled %}on {% else %}off{% endif %}

Adds a microphone to the composer. Recordings are sent to this endpoint and never written to disk.

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

Encrypted at rest. Clear the field to remove it.

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.

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

Read aloud {% if values.tts_enabled %}on {% else %}off{% endif %}

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

Where /v1/audio/speech lives — Kokoro-FastAPI, OpenAI, or anything else speaking it.

{% if voice_error %} Could not read the voice list: {{ voice_error }} {% else %} Read from the endpoint. Save and test to refresh it. {% endif %}

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

{% endblock %}