Settings, profiles, and analysis knobs¶
How to change TranscriptX behaviour from the GUI, env, and config files — without mixing up the several things named “profile”.
Where to start¶
Goal |
Where |
|---|---|
Everyday analysis depth (which modules run) |
Run Analysis preset: Quick / Balanced / Thorough / Custom — edit policies under Settings → Analysis |
Charts page Overview strip (which charts, order) |
Settings → Configuration → Charts overview ( |
Overview / Insights page panels (layout profiles) |
Settings → Dashboard Builder — see dashboard_builder.md |
Common model and similarity knobs |
Settings → Configuration → Common Settings |
Full registry of knobs |
Settings → Configuration → enable Show advanced/raw settings editor |
Named module/workflow presets (disk JSON) |
Profiles page (sidebar) — activate from Configuration for Project / Run |
Paths, watcher, speakers, LLM models, questions |
Other Settings tabs (Storage, Watcher, Speakers, Interface, Models, Questions, Corrections) |
Auto-name / auto-link after ingest |
Settings → Speakers — auto-identify.md ( |
Duplicate recordings / transcripts |
Settings → Storage → Duplicate library files (preview, then typed |
Show/hide instructional ⓘ tips (widget help + Speakers methodology notes) |
Settings → Interface → Help / info tips ( |
Action-menu icon vs text |
Settings → Interface → Action appearance ( |
Install capability ( |
Env / install marker — see installation details; not the Profiles page |
Speaker identity/voice stores are a separate subsystem (Settings → Speakers), including ingest auto-name / auto-link defaults (config_dir/identify.json, all off until you enable them). Operator guide: auto-identify.md. Contracts: speaker_profiles_v1, speaker_profiles_voice_v1, STORAGE.md.
Analysis presets¶
When you run analysis, choose a Preset that determines which modules run:
Quick — no LLM modules and no heavy modules (fast local path). Modules that hard-depend on excluded heavy/LLM modules are omitted so the DAG cannot pull them back in.
Balanced — recommended default: non-heavy modules plus a limited heavy allowlist (
semantic_similarity,fine_grained_emotion) and global transcript LLM summary only (llm_summary).Thorough — all suitable modules for the target (including LLM and heavy).
Custom — pick exactly which modules to run for this launch.
Edit Quick / Balanced / Thorough policies (and optional full module overrides) under Settings → Analysis. Mode quick vs full still controls depth knobs (semantic/NER limits) for the chosen preset.
Single-speaker / unnamed-speaker behavior¶
By default, modules require human-named speakers. Diarized placeholders (SPEAKER_00, …) do not count until you name speakers in Speaker Identification. Modules that need multiple speakers (conversation loops, contagion, interactions, semantic similarity, Q&A, echoes, and others) skip when the named-speaker count is below their minimum. For group runs, the module list is filtered by the minimum named speaker count across members.
To run modules on diarized labels without naming speakers:
Global: Settings →
analysis.allow_unnamed_speakers(or envTRANSCRIPTX_ANALYSIS_ALLOW_UNNAMED_SPEAKERS)Per run: Run Analysis checkbox Allow analysis without named speakers
Either knob ungates the pipeline (global or per-run). When ungated, speaker-count gates use turn-taking labels and per-speaker artifacts include unidentified speakers.
Configuration scopes¶
Effective config for a run merges layers (highest wins first):
Environment (
TRANSCRIPTX_*)Run override (or Draft override when no run is selected)
Project
config.jsonBuilt-in defaults (plus active module/workflow profiles loaded into the runtime facade)
Authoritative precedence and path roots: STORAGE.md.
In Settings → Configuration:
Scope |
Editable? |
Persists to |
|---|---|---|
Default |
Read-only |
— |
Project |
Yes |
|
Draft override |
Yes (no Active Profiles) |
|
Run override |
Yes (needs a run selected) |
under the run directory |
Draft overrides are reported with run-layer provenance (source: run) by design — see STORAGE.
Common vs advanced knobs¶
Charts overview (Configuration, edit mode): checkbox + ordered list for
dashboard.overview_charts. Empty list → registry defaults for the run kind (transcript vs group). See group_charts_default_overview.md.Common Settings are a curated allowlist (
COMMON_SETTINGS_SCHEMA): models, semantic similarity, a few workflow/output/display keys.Speakers:
analysis.allow_unnamed_speakers— when on, analysis runs on diarized labels (SPEAKER_00, …) without naming; default off. Per-run override: Run Analysis checkbox.
Advanced/raw exposes every registered config leaf (except profile activation keys). Registry fields may mark
advanced=Truefor documentation; the GUI does not yet use that flag to partition the form — the toggle is the partition.Prefer Common or Analysis presets unless you know why a leaf matters.
Smart rename (device filenames)¶
Settings → Configuration → Rename (also under Advanced as input.*):
Knob |
Default |
Meaning |
|---|---|---|
|
|
|
|
|
Deterministic template rendered from the recording datetime |
|
|
Legacy YYMMDD_ + stem prefill when smart mode is |
Supported pattern tokens: {yymmdd}, {yyyymmdd}, {yyyy}, {yy}, {mm}, {dd}, {hhmmss}, {hhmm}, {hh}, {period} (morning/afternoon/evening/night), {n} (collision sequence), {stem}.
Device stems understood include RYYYYMMDD-HHMMSS, YYYYMMDDHHMMSS, and YYMMDD-HHMMSS. In rename forms, the date root is prefilled and other tokens appear as clickable append buttons.
“Profile” taxonomy (do not conflate)¶
Name |
Meaning |
Surface |
|---|---|---|
Install profile |
|
|
Analysis UI preset |
Quick / Balanced / Thorough module sets |
Run Analysis + Settings → Analysis |
Module / workflow profile |
Named JSON under |
Profiles page + Active Profiles in Configuration |
In-config semantic profiles |
Mapping |
Advanced config / code — shares activation key naming with disk profiles; different store |
UI layout profiles |
Ordered blocks for Overview / Insights |
Settings → Dashboard Builder ( |
STT command profiles |
Named JSON under |
Transcribe Audio |
Merge source profile |
Match + day/gap rules for Tools → Merge suggestions / auto-merge |
Merge tab expander; |
Merge dismissed groups |
Auto-merge Don’t suggest again keys (rule + stem) |
Auto-merge tab; |
Speaker profile |
Longitudinal identity (+ optional voice) |
Settings → Speakers — see Speakers |
Tracked files under repo data/profiles/*/default.json are fixtures / allowlisted samples. Runtime defaults are virtual (dataclass/Pydantic); ProfileManager does not treat disk default as loadable user presets. Runtime profiles live under {config_dir}/profiles/ (override with TRANSCRIPTX_PROFILES_DIR).
Env overrides¶
Copy .env.example to .env. Infra path keys (TRANSCRIPTX_*_DIR, host/port, downloads, …) are separate from config-bag overrides. Set TRANSCRIPTX_CONFIG_STRICT=1 to reject unknown TRANSCRIPTX_* keys.
Legacy TRANSCRIPTX_AUDIO_*_ENABLED variables are rejected — use the corresponding *_MODE keys.
Speakers¶
Settings → Speakers controls the Speakers directory filters and optional local voice matching. Canonical files live under speaker_profiles/ (STORAGE.md, speaker_profiles_v1).
Directory toggles (session): include ignored appearances in headline totals; show archived; show merged.
Local voice matching (optional extra speaker_match):
Read the privacy notice and enable matching. Consent is
privacy.voice_settings.json. Defaults off. Opt-in enrols nothing.Set Max confirmed links per voice enrol (default 40) if you need a larger bootstrap.
Enrol trusted voice for all profiles — reference samples from every active profile that already has confirmed links. Per-profile enrol also exists on the Speakers dossier Voice tab.
Pre-load voice suggestions — analyse every non-ignored managed occurrence into
.cache/voicefor Speaker Identification. Speaker ID Analyse all speakers does the same for the open transcript only.
Order: name and link a seed cast → Enrol all → Pre-load → confirm suggestions in Speaker Identification. Empty corpus → analyse succeeds with no match. Scores never auto-name. Full walkthrough: Assist naming with voice.