What is transkribierBAR?
transkribierBAR turns speech in audio and video files into text. You upload a file or record directly in the browser. You correct the text in the browser while the recording plays, and download it as subtitles (SRT, VTT), as plain text (TXT) or as JSON. On request, a language model summarizes the content, writes minutes, refines the text or translates it.
What you can use transkribierBAR for
- Research interviews: transcribe interviews with each speaker's contributions kept apart, then give each speaker a name.
- Meetings: record a meeting and turn it into minutes or notes that follow your agenda.
- Teaching: create subtitles for lecture and teaching videos, correct them and translate them into other languages.
Access
Sign in at transcription.uni-osnabrueck.de with your Uni-Login. You then see the overview of your transcriptions. The interface is available in German and English.
Retention
Every uploaded file is deleted automatically after a fixed period, together with all transcriptions and results that belong to it.
| Uploaded file | Deleted |
|---|---|
| Standard | 3 days after upload |
| Archived | 180 days after archiving |
The "Archive" section explains how to archive a file.
Data protection and consent
Your data stays at the university. transkribierBAR runs on servers of Osnabrück University, and so do its speech recognition and its AI features. Your files and texts are not passed on to external providers. In the app, only you can see your transcriptions. For more, see the privacy notice.
Get consent first. Only record conversations, and only upload recordings, if everyone who speaks in them has agreed.
Questions
If you have questions or problems, write to virtuos@uos.de.
Getting Started
The flow
You start in the overview of your transcriptions. From there you upload a file or record in the browser. You work on the finished transcription in the detail view.
Your first transcription
- In the overview, click + Upload and choose an audio or video file. Or click + Record to record in the browser; when you stop, transkribierBAR uploads the recording automatically. + Record only appears if your browser supports recording.
- Choose the Transcription language. The default is Auto-detect. Under Quality, choose the model; the default is large-v3-turbo. If your installation offers only one model, the field is named Model and shows it.
- Detect speakers is on and separates the contributions of different people. If only one person speaks, you can turn it off.
- Click Transcribe. If the upload is still running, the button reads Transcribe when ready; the transcription then starts by itself once the file is uploaded.
- Wait until the transcription is done. The status shows Queued… while it waits and Transcribing… while it runs.
- If you stayed on the page, the finished transcription opens in the detail view by itself. Otherwise click it in the overview.
Leaving the page? While a file is uploading, leaving the page cancels the upload. Once the transcription is running, you can leave the page; it continues on the server.
The detail view
The player plays the recording. Below it, choose a tab:
- Subtitles: correct the text and name the speakers under Speaker Names. This is also where you start Refine with LLM and Translate.
- Analysis: create a summary, meeting minutes or your own analysis.
- SRT, VTT, JSON and TXT: view the result in that format and download it.
Where to find things
The header contains:
- ? opens this help at the section for the current view.
- Presets manages your saved presets.
- Settings manages your API tokens.
- DE switches the interface to German.
- Logout signs you out.
On narrow screens these items are in the Menu (the icon with three lines). From any other view, ← Transcriptions takes you back to the overview.
Archive
My Transcriptions
After signing in you see the overview. Under My Transcriptions it lists all your transcriptions, newest first.

- The title with the filename below it, or only the filename if there is no title. The pencil icons next to them rename them (see "Renaming").
- The model, the status, the creation date and, if the transcription is archived, a shield icon. The status is green "Completed", yellow "Pending" or "Processing" (waiting or running), or red "Failed".
Click a row to open the transcription. After transcribing, transkribierBAR creates the title automatically with the language model. If that fails, the row shows only the filename.
If you have no transcriptions yet, you see New here? with the link Open the Getting Started guide instead.
Renaming
Click the pencil icon next to the title (Edit title) or next to the filename (Edit filename). Enter or clicking elsewhere saves, Esc cancels. The file extension stays as it is.
Expiry and archiving
The period applies to the uploaded file: once it has passed, the file is deleted automatically, together with all transcriptions and results that belong to it (analyses, refinement, translation, speaker names). The period is 3 days from the upload. The detail view shows the date after Expires:; it turns red when less than 24 hours are left.
Archive in the detail view sets the period to 180 days from that moment. The button is then replaced by Archived, and the overview shows the shield icon.
Download in time. Once the period has passed, you cannot restore the transcription. Download any results you want to keep before then.
Deleting
Delete transcription in the detail view asks for confirmation and then deletes the transcription and its results at once. The uploaded file is deleted too, unless another transcription uses it. Deleting cannot be undone. You then return to the overview.
Upload
Choosing a file
In the overview, click + Upload. Then drag a file onto the upload area or click it to open the file browser. The upload starts as soon as you choose the file.
MP3, WAV, MP4, WebM, M4A, MOV, AAC, Opus and OGG files up to 1 GB are allowed. If the file is larger, the message File is too large. Maximum size is 1 GB. appears. While the upload runs, the area reads Uploading file — please wait.... Afterwards the page shows the filename with the file size.
Settings and starting
As soon as you have chosen a file, the settings appear, even while the upload is still running.

- The settings. The section "Transcription Settings" explains the fields; the Bundles field is explained under "Using bundles" below.
- Transcribe starts the transcription.
- Discard resets the page and returns you to the overview.
If the upload is still running, the button reads Transcribe when ready; the transcription then starts by itself once the file is uploaded. If the upload fails in that case, Upload failed appears with the button Edit settings.
Using bundles
A bundle links presets for transcription, refinement, analysis and translation. If you have created bundles, pick one under Presets in the Bundles field. If a bundle is marked as the default, the app preselects it when it opens and applies its transcription preset to the settings, just as if you had chosen the bundle yourself. If you mark a bundle as the default while the app is open, the Bundles field shows it, but its transcription preset is only applied the next time the app opens. To apply it right away, first select Select a bundle... and then the bundle.
If the bundle includes refinement, analysis or translation, the button reads Run pipeline. Your browser starts those steps automatically after the transcription. Stay on the page until they have finished. You create bundles on the Presets page.
Leaving the page
While the file is uploading, transkribierBAR asks before you switch to another view: An upload is in progress. Leaving this page will cancel it. Continue? If you confirm, the upload is canceled. If you close the tab or reload the page, the browser warns you.
Once the transcription is running, you can leave the page. It continues on the server and appears in the overview later. This does not apply to the steps of a bundle: they only run while the page stays open. If you open the transcription again in the same tab, the steps start then.
Large files. An uploaded file alone does not appear in the overview. Click Transcribe when ready while the upload is still running and keep the tab open until the upload has finished. Once the transcription is running, you can leave the page.
If the transcription fails
If the transcription fails, Transcription failed appears with the reason after Error message:, for example:
- The speech recognition did not finish this transcription within the time limit.
- The request to the speech recognition failed.
- The speech recognition reported an error for this transcription.
- The server restarted while this transcription was running.
If the language was set to Auto-detect and the speech recognition reported an error, it also says: The language was set to Auto-detect. Choosing the language may help.
Try again takes you to the settings for the same file. Check them, change for example the language, and click Transcribe. You do not have to upload the file again.
The failed transcription stays in the overview with the red status "Failed". If you open it there, its page shows the same notice with the reason and Try again. From there, the settings are not taken from the failed attempt; check Transcription language and Quality (or Model) in particular. A new transcription of the same file appears as an entry of its own. It belongs to the same file and therefore has the same period (see "Archive"). You remove the failed one with Delete transcription on its page. If another transcription uses the file, the file is kept.
If the transcription fails repeatedly, write to virtuos@uos.de.
Record
Choosing sources
In the overview, click + Record. The button only appears if your browser supports recording. Before you start, switch the sources on or off.

- Microphone switches the microphone on or off. It is on by default.
- The Microphone field chooses the device. If there is only one device, the field shows its name.
- System audio also records what your computer plays. It is off by default; see "System audio" below.
- Camera also records the camera image. It is off by default; see "Camera" below.
- Start Recording starts the recording (see "Recording").
A recording needs sound: switch on the microphone or system audio. The camera only adds the picture. If neither microphone nor system audio is on, the page shows Turn on the microphone or system audio. and Start Recording is disabled.
Your browser may ask for permission. If access is blocked, a notice with the button Retry appears. Allow access in your browser's site settings.
Get consent. Before you start, the page reminds you: Don't record people without their permission. Ask first!
Recording
Click Start Recording. A short beep signals the start. The display counts the duration up as hours:minutes:seconds, and a red dot pulses. A green bar shows the level; if the camera is on, you see the camera image instead. You cannot change the sources after the start.
While recording, Pause, Stop and Discard are available. After Pause, the first button reads Resume. Discard deletes the recording and returns to the start.
After stopping
After Stop, transkribierBAR uploads the recording automatically (Uploading recording...). Then it continues as with uploading: you see the settings and click Transcribe. Discard is available here too. If the upload fails, an error message appears with Retry and Discard.
The file is named recording- followed by the date and time. The browser chooses the format: WebM if possible, otherwise MP4.
System audio
With System audio you also record what your computer plays, such as an online meeting. The microphone is then mixed with the system audio; if you switch the microphone off, only system audio is recorded. The page marks the feature as experimental. What is possible depends on browser and operating system:
- Chromium browsers on Windows (Chrome, Edge, Brave): The browser lets you choose a screen or a tab. An entire screen gives all system audio, a tab gives only its sound.
- Chromium browsers on other systems: Only the sound of a browser tab is possible. Run the meeting in a tab and select that tab when the browser asks.
- Firefox on Linux: In the System audio source field, choose a second audio input device, for example a PulseAudio or PipeWire monitor source.
- Firefox on other systems: Support is limited. Use a Chromium browser instead.
- Mobile devices and other browsers: System audio is not offered.
While System audio is on, Camera is unavailable. If you stop sharing the screen or tab, the recording ends. If capturing fails, an error message appears, for example when you canceled the browser's selection.
Camera
With Camera you also record a picture, which produces a video file. The sound comes from the microphone, which must be on. Pick the device in the Camera field. If there is no camera, it reads No camera detected. If the camera cannot be opened, the recording continues with sound only, and a message points this out.
Leaving the page
If you close the tab or reload the page while recording, paused, or right after you have stopped a recording, the browser warns you.
Don't lose a recording. If you switch to another view within transkribierBAR, for example with ← Transcriptions, while recording or until you click Transcribe, you are asked first. If you confirm, the recording is discarded.
Transcription Settings
The settings appear in Upload once you have chosen a file, and in Record once the recording has been uploaded. They are arranged in groups.

- Presets: load a saved preset, save the current settings or choose a bundle (see "Presets" below).
- Transcription: the language and the model (see "Language and model").
- Speakers: speaker detection and the number of people (see "Detecting speakers").
- Advanced options: initial prompt and hotwords (see "Advanced options").
Language and model
The Transcription group has two fields.
Transcription language: The default is Auto-detect; the speech recognition then determines the language by itself. If you know the language, choose it from the list. German, English, Spanish, French and Turkish are at the top, followed by a divider and all other languages in alphabetical order. The speech recognition determines the language from the first 30 seconds of the recording; if those contain music, silence or another language, it can guess wrong. With Auto-detect, the detail view shows the detected language below the title.
Quality: The list offers the configured models, each with a short description and its name, for example Balanced (large-v3-turbo) and Best quality (large-v3). The default is large-v3-turbo. Best quality is the full model and takes noticeably longer; Balanced is the smaller, faster model. If your installation offers only one model, the field is named Model, is read-only and shows it.
Detecting speakers
The Speakers group has the switch Detect speakers. It is on by default and separates the contributions of different people. If only one person speaks, you can turn it off.
When the switch is on, you can narrow down the number of people: Min speakers (default 1) and Max speakers (default 2). Values from 1 to 20 are allowed. If you set the minimum above the maximum, the maximum follows, and the other way round.
You give names to the detected people after the transcription, in the Subtitles tab under Speaker Names.
Advanced options
Advanced options reveals two more fields. Both are optional.
- Initial prompt: context for the transcription, for example the topic or proper names.
- Hotwords: comma-separated technical terms.
Both entries go to the speech recognition. Empty fields are not sent.
The two fields share a limited space, because the speech recognition puts both in front of every section of the recording. Below the fields you see how much of that space they use. If they are too long together, a note says so in red, and both the button that starts the transcription and Save as preset stay disabled until you shorten them. The note also appears while the advanced options are closed, for example after you have chosen a preset with long entries.
Presets
The Presets group is the first group.
- Transcription: This selection field appears once you have saved presets. If you choose a preset there, it applies language, speakers, initial prompt and hotwords.
- Save as preset: Enter a name and confirm with the check mark or Enter. transkribierBAR saves the current settings under that name.
- Bundles: This field appears once you have created bundles. The section "Upload" explains what it does.
You manage presets on the Presets page in the header.
The summary
After you click Transcribe, one line replaces the settings. It names the filename, the size, the model, the language (auto if you chose none), the speakers (no speakers or, for example, 1–2 speakers) and, if used, the bundle.
Subtitle Editor
Layout
The editor is in the Subtitles tab of the detail view. Each row of the table is an utterance with the columns #, Start, End, Speaker and Text. On narrow screens the column headings and the # column are not shown.

- The player (see "Playing and following along").
- The search field Search subtitles... with the buttons Text and Speaker (see "Searching").
- Original, Refined and Translated switch between the original and its refined and translated versions (see "Refined and translated view").
- A row is one utterance. Its pencil icons edit the times, the speaker and the text (see the sections below).
- The row's Speaker. The colored dot shows who is speaking; the same name always has the same color.
Editing text
Click the pencil icon after the text and start typing. Clicking outside the field applies the change. Tab applies it and jumps to the text of the next row, Shift+Tab to the previous one. The player then jumps to the start of that row. Esc ends editing; the change is kept.
On larger screens the Keyboard shortcuts list above the table lists these three keys.
Your changes only exist in your browser until you save them (see "Saving").
Editing times
Use the pencil icon next to Start or End to change a time. The table shows whole seconds, the field shows the time with milliseconds, for example 00:01:30.500. You can also enter only minutes and seconds (01:30) or only seconds (90). A fraction of a second follows a point or a comma, for example 12,5. Press Enter or click outside the field to apply the time. If the time is unchanged or not a valid time, the row stays as it was.
If the new time overlaps neighboring rows, the editor adjusts them: a new start shortens the end of the previous rows, a new end moves the start of the following rows. Before that, a prompt tells you how many rows are affected. If you cancel it, nothing changes. If the new start is after the end of the row, the end moves along. Likewise the start moves back if the new end is before it.
A row's speaker
In the Speaker column, the pencil icon changes the name on this row only, the people icon renames the person on all rows. Both are described in the section "Speaker Mapping".
Inserting, merging and deleting rows
More icons appear in the text field of the row:
- Merge with next section joins the text with the text of the next row and takes over its end. The last row has no such icon.
- Add new row after this one creates an empty row below with the same speaker. It starts at the end of the current row and ends at the start of the next one, or one second later for the last row. On larger screens this icon appears in the # column instead.
- Delete this row removes the row once you confirm the prompt.
Searching
The Search subtitles... field above the table searches the rows, ignoring upper and lower case. The Text and Speaker buttons choose where to search. Both are active at first. Click one and only the other stays active. Click the active one and both are active again.
Matches are highlighted. The rows before and after stay visible as dimmed context. Each gap of hidden rows is summarized by a separator row, for example 3 segments hidden. Next to the field you see how many segments match, for example 2 of 40 segments. Without matches, No matching segments appears. Press Esc in the search field or click the cross in the field to clear the search.
Playing and following along
Clicking Start, Speaker or Text of a row jumps the player to the start of the utterance, clicking End jumps to its end. If the player is paused, it starts playing. While it plays, the current row is highlighted and the table scrolls along. Scrolling along pauses while a search is active.
Below the player, Download recording downloads the recording. For videos, Minimize player hides the picture and Show video brings it back. For videos, the player also contains, while it is not minimized, a subtitle track with the original text and the speaker names, including unsaved changes. It is switched off at first.
Saving
As soon as you change something, the buttons Discard changes and Save changes appear above the table. Saving replaces the previously saved version on the server. After a prompt, Discard changes discards all changes since the last save and reloads the saved version.
transkribierBAR also keeps the transcription as the speech recognition delivered it. Saving never changes this original. As soon as the saved version differs from it, the button Restore original appears. After a prompt, it loads this original into the editor: the text, times and speaker of every row. If the Refined or Translated view is shown, the editor switches to Original. Until you click Save changes, the restored original is an unsaved change like any other: the saved version stays on the server, and Discard changes brings it back. The names from the Speaker Names panel stay. A refinement, translation or analysis stays as well. Whether it counts as out of date afterwards depends on the saved text, as after any other change. The original is deleted together with the transcription.
For a transcription that already existed before transkribierBAR began keeping the original, the original is the version that was saved at that point, including any changes saved before.
If you switch to a format tab such as SRT, your changes are kept, and the format already shows them.
Save before you leave. If you leave the detail view with unsaved changes, transkribierBAR asks first. Closing or reloading the browser tab also triggers a browser warning. If you confirm, the unsaved changes stay in this tab only until you open another transcription, start a new upload or recording, or reload or close the tab. Until then, Forward in the browser brings you back to them. Save first.
Refined and translated view
If the AI features are set up on this server, the editor offers the buttons Refine with LLM and Translate above the table as long as there is no refinement or translation yet. A refinement and a translation appear next to the original. Use the buttons Original, Refined and Translated to switch between them. The Refined and Translated views are read-only: the editing icons are missing there, and changes only apply to the original. Delete Refinement and Delete translation remove the respective version after a prompt.
In the Refined view, Changes Summary says what the language model changed. Changed rows have a Compare button next to the text, on every screen size. It shows the original and the refined text side by side below the row; click it again to close the comparison. On larger screens, changed rows also carry a dot next to the row number. How both functions work is described in the sections "Refinement" and "Translation".
Speaker Mapping
Opening the panel
In the Subtitles tab, open the Speaker Names panel: with the button of the same name above the table or with the people icon in the Speaker column of a row.

- Speaker Names opens the panel. Another click closes it again.
- The field for a new name (New name (leave empty to keep)), to the right of the name currently shown (see "Naming speakers").
- Apply saves the names (see "How the names are saved").
- The Speaker column of a row. Its people icon (Rename speaker in all utterances) opens the panel and places the cursor straight in the field for that person. Its pencil icon changes only this row (see "Changing a single row").
In the Refined and Translated views the people icon is missing, but the button works.
If the recording has no detected speakers, the panel shows No speakers detected. You decide whether speakers are detected before the transcription (see "Transcription Settings").
Naming speakers
The panel lists each speaker with the name that is currently shown. Without a name of your own, that is the stored label, for example SPEAKER_00. Enter a new name in the field to its right and click Apply. Fields you leave empty (New name (leave empty to keep)) keep their name. transkribierBAR removes spaces at the start and end of the name. Cancel closes the panel without any change.
The new name then appears in the table, for videos in the player's subtitle track and in the SRT, VTT, JSON and TXT tabs including their downloads. This holds for the original, for Refined and for a translation, whichever of the two it was made from. Once you have named speakers, the field suggests those names.
Merging speakers
Give two speakers the same name and transkribierBAR treats them as one person. The panel then shows them in one row with a note such as 2 merged, and their dots have the same color. This helps when detection split one person into two.
Changing a single row
If an utterance was assigned to the wrong person, click the pencil icon in the Speaker column of the row (Edit speaker name). Type the name of the right person and confirm with Enter. Type it exactly as it is already shown, and the row belongs to that person. The pencil icon exists only for rows with a speaker and not in the Refined and Translated views.
This change applies to that one row only and, like any text change, is only permanent after Save changes (see "Subtitle Editor").
How the names are saved
Apply saves the names to the server straight away, independent of Save changes. They apply to this transcription only. When you open it again later, the same names are there. The original label stays stored in the transcript itself; the names are added when it is displayed and in the formats.
Format Viewer
The four formats
Next to Subtitles, the detail view has the tabs SRT, VTT, JSON and TXT. Each shows the transcript in that format. transkribierBAR creates it in your browser from the current text.
- SRT: numbered entries with times such as
00:01:30,250 --> 00:01:34,000. The text starts with the speaker's name in square brackets:[Name]: Text. - VTT: starts with
WEBVTTand has times with a full stop instead of a comma (00:01:30.250). The names are in square brackets as in SRT. - JSON: a list with
start,end,textandspeakerfor each utterance. Start and end are milliseconds. - TXT: one line per utterance without times, in the form
Name: Text.
Utterances without a speaker appear without a name.
Downloading
Each format tab has a preview and a download button.

- The SRT tab. VTT, JSON and TXT work the same way.
- The preview, which you cannot change.
- Download SRT saves the file. The same button appears below the preview.
The file gets the recording's name without its extension plus the file extension of the format, such as Lecture.srt. If the name is missing, the file is called transcription.srt.
What the format contains
The format shows the state you see in the editor, including unsaved changes. Names from Speaker Names are filled in in all four formats and in every view.
Which version appears depends on the view you last chose in the Subtitles tab: Original, Refined or Translated. If Refined is chosen, the JSON format contains both versions in one object: utterances for the original and refined_utterances for the refined version.
Which format fits?
| Goal | Format |
|---|---|
| Add subtitles to a video | SRT or VTT |
| Process the transcript with a program | JSON |
| Read or pass on the transcript | TXT |
Analysis
What analysis does
Analysis has a language model evaluate your transcript, for example as a summary with chapters, as meeting minutes or according to an instruction of your own. The transcript itself stays unchanged. Each result is saved as a separate entry for the transcription and deleted together with it.
You find analysis in the Analysis tab of the detail view, next to Subtitles. The language model receives the text of the utterances with their start time and speaker. transkribierBAR inserts the names you gave under Speaker Names, as they are at the time of creation.
Save first. The analysis works with the saved text. Changes in the editor that you have not yet saved with Save changes are not included.
Creating an analysis
Choose a template and click Generate.

- Select a template offers the templates (see "Templates"). Summary with chapters is preselected.
- Define chapters (optional) appears with Summary with chapters (see "Chapters and agenda").
- Customize prompt shows the template's instruction to the language model (see "Customizing the prompt").
- Output language sets the language of the result. It is preset to the language detected in the transcription.
- Source appears if a refinement exists (see "Source: original or refined").
- Generate starts the analysis.
While the analysis runs, the page shows, for example, Generating Summary with chapters... and hides the form. The page waits for the language model's reply. Stay on it until the result appears. If you leave the page anyway, the analysis keeps running on the server. You see the result when you reopen the transcription later. A new attempt before it has finished fails.
You can create as many analyses as you like, also with different templates. Each one is a separate entry in the list. + New Analysis opens the form again, Cancel closes it. If there is no analysis yet, the form is visible right away.
Templates
- Summary with chapters: an overall summary and chapters with title, time span and a short description.
- Meeting protocol: title, participants, key points, decisions and action items with the person responsible.
- Agenda-based notes: notes following an agenda. Like the summary, the result appears as text with chapters.
- Custom: you write the instruction yourself (see "Customizing the prompt").
Chapters and agenda
For Summary with chapters there is the expandable list Define chapters (optional). With Add chapter you create one row per chapter, with a Chapter title and a Brief description. Either one is enough. Completely empty rows are ignored, Remove deletes a row. You can specify up to 30 chapters. The language model arranges the structure accordingly. If a topic does not occur in the recording, the chapter should still appear in the result, with a note in its description and with — instead of a time span.
For Agenda-based notes the Agenda field appears. Paste your agenda there. If you leave it empty, the language model derives the items from the transcript.
Customizing the prompt
Under Customize prompt you see the instruction of the selected template. It is in English and contains placeholders in curly braces, which transkribierBAR otherwise fills in itself. Reset to template restores the original text. With Custom the field is empty at first.
Changed prompt. As soon as you change the text or use Custom, it is sent exactly as it stands. Placeholders are then no longer replaced, and Define chapters and Agenda are not sent along. The Output language still applies.
The language model always replies with structured text (JSON). The page shows results built like a summary or a protocol as cards. All others appear as text.
Source: original or refined
If a refinement exists, the form shows the Source toggle with Original and Refined. Refined is preselected. Without a refinement there is no toggle, and the analysis uses the original. A translation cannot serve as the source.
Below the result it says what it was made from: from refined or from original. If the text of that source has changed since, the label turns amber with the addition source has newer content. If the refinement was deleted, it reads source no longer available. Changes to times or names do not count as new content. An existing analysis does not update itself. Create a new one if needed.
Reading and reusing results
Click an entry to expand it.

- The name of the template (or Custom). The date follows it, and the language model used appears at the right end of the header.
- The trash icon (Delete) deletes the entry after a confirmation prompt.
- Copy result puts the text on the clipboard. TXT and Markdown download it, as a file named after the recording with the suffix
_analysis. The buttons appear above and below the result. - For chapters, key points, decisions and action items, clicking the time makes the player jump to that spot.
The cross that appears on a card when you hover over it removes that item from the result after a confirmation prompt. Once you confirm, it is saved immediately and cannot be undone. For the summary this applies to chapters, not to the summary text.
Below the result it says once more what it was generated with.
If the analysis fails
After an error no entry is created, and you can try again. The message appears below Generate. Two cases have their own texts:
- The analysis reached the language model's output limit before it was complete. Try a more focused prompt. The same request leads there again. Shorten the instruction or make it more precise.
- The language model returned a malformed response. Please try again. transkribierBAR has already tried several times on its own. A new attempt can succeed.
In a bundle
If a bundle contains an analysis preset, your browser creates the analysis automatically after the transcription and the refinement. If a refinement exists by then, it uses it, otherwise the original. In the form, the Analysis field loads a preset. Save as preset saves the current settings. The "Presets" section has more on this.
Translation
What translation produces
Translation produces a second version of your subtitles in another language. Every utterance has a translated utterance at the same position. The language model is meant to leave times and speakers unchanged and neither to merge nor to split utterances. If the number of translated utterances does not match, the translation fails.
The original is kept. The translation appears next to Original (and Refined) as a button, for example Translated (EN · from original). It is saved with the transcription, is there again when you reopen it, and is deleted together with it.
Save first. The translation works with the saved text. Changes in the editor that you have not yet saved with Save changes are not included.
Translating
In the Subtitles tab, click Translate above the table. The button is there as long as no translation exists. The Translate to dialog opens.

- Translation language chooses the language to translate into.
- Source appears if a refinement exists (see "Source: original or refined").
- Translate starts the translation. Cancel closes the dialog.
While the translation runs, the button reads Translating... and the selection fields and buttons are locked. With more than 50 utterances, a note says the translation may take several minutes. The page waits for the language model. Stay on it until the dialog closes. If you leave the page anyway, the translation keeps running on the server. You see it when you reopen the transcription later. A new attempt before it has finished fails. Afterwards the editor shows the Translated view.
The language of the recording does not work as a target language. If it is known and you choose it, the translation fails and the dialog says why, for example The transcript is already in German.
Source: original or refined
If a refinement exists, the dialog shows the Source toggle with Original and Refined. Refined is preselected. Without a refinement there is no toggle, and the translation uses the original. Which source was used is shown on the translation's button: from original or from refined.
Viewing, reading and deleting
The Translated view is read-only. The SRT, VTT, JSON and TXT tabs show the translation as long as Translated is selected (see "Format Viewer").
Only one translation exists per transcription. For another language, click Delete translation and then translate again. Deleting asks for confirmation first.
When the source changes
If the text of the source has changed since the translation, an amber note appears next to Delete translation: source has newer content. The note appears once you reopen the transcription. This happens, for example, if the translation was made from the original and you change text in it and save. If the refinement the translation was made from has been deleted, it reads source no longer available. Changes to times or names do not count as new content. The translation itself stays unchanged until you renew it. To do so, click the note. The Translate to dialog opens, and translating again replaces the out-of-date translation. If you choose the same language as before, and the same source where the dialog offers Source, the dialog says so: The out-of-date translation will be replaced.
If the translation fails
The dialog then shows the reason the server gives, for example Translation failed. Without a reason it shows Translation failed. Please try again. transkribierBAR repeats individual sections on its own beforehand. If a section still fails, no translation is created. There are no partly translated versions. A new attempt can succeed.
In a bundle
If a bundle contains a target language, your browser translates automatically after the transcription, the refinement and the analysis. If a refinement exists by then, the translation uses it, otherwise the original. Stay on the page until all steps are finished.
Refinement
What refinement does
In refinement, a language model goes through your transcript and corrects clear errors. It is meant to change only the following:
- spelling and punctuation errors,
- obvious grammar errors that are recognition errors and not how the person actually spoke,
- inconsistent technical terms and proper names,
- hesitation sounds such as "uh", "um" or "hm",
- false starts and restarts.
The language model is not to rephrase anything, not to turn spoken language into written language, not to change times or speakers, and to return exactly as many utterances as it received. When unsure, it should leave the text as it is. Refinement is not a translation; see the "Translation" section for that.
The original stays unchanged. The refinement is a version of its own, which you view with Refined next to Original. It is saved with the transcription, is there again when you reopen it, and is deleted together with it.
Save first. Refinement works with the saved text. Changes in the editor that you have not yet saved with Save changes are not included.
When it is worth it
Refinement only concerns the points listed above. It is therefore worth it mainly when your transcript contains many of them, for example hesitation sounds or inconsistently spelled technical terms and names. The changes summary shows what the language model changed.
Refining
In the Subtitles tab, click Refine with LLM above the table. The button is there as long as no refinement exists. A dialog of the same name opens.

- Select a preset... loads a refinement preset and fills in its context. Save as preset asks for a name (confirm with the check mark or Enter) and saves the current context under that name as a preset.
- Context (optional): hints that help the language model with technical terms and proper names, for example "Computer science lecture, speaker is Prof. Müller".
- Refine starts the refinement. Cancel closes the dialog.
The language model receives the original with the stored labels, such as SPEAKER_00, not with the names from Speaker Names. The names are filled in when the Refined view is shown, so you can give or change them before or after refining. If names matter for the correction, write them under Context (optional).
While refinement runs, the button reads Refining transcription... and the context field and the buttons are locked. With more than 50 utterances, a note says the refinement may take several minutes. The page waits for the language model. Stay on it until the dialog closes. If you leave the page anyway, the refinement keeps running on the server. You see it when you reopen the transcription later. A new attempt before it has finished fails. Afterwards the editor shows the Refined view.
If it fails, the dialog reads Refinement failed. Please try again. Try again then.
Reading the refined view
In the Refined view, a bar above the table summarizes the changes, and changed rows are marked.

- Refined switches to the refined view, Original back to the original.
- The Changes Summary, with the number of changed utterances. Click it to expand or collapse. Expanded, it describes in words what the language model changed and names the Context, if you gave one.
- A changed row: it has an amber stripe on the left edge, on larger screens a dot next to the row number, and a Compare button next to the text. Compare shows Original and Refined side by side below the row, as below the changed row here. Click it again to close the comparison.
The view is read-only. If you want to change text yourself, do so in the original.
If some sections could not be refined
transkribierBAR sends the utterances to the language model in sections. If a section still fails after several automatic attempts, the others are refined and saved anyway. The failed sections keep their original text. If all of them fail, no refinement is created and you see the error message.
The affected rows have a dashed gray border and, on larger screens, a hollow gray dot. The bar also says, for example, Not refined (original text kept): utterances 451–500. Retry failed sections repeats only those sections, while the button reads Retrying…. The saved context applies. What has already succeeded is not sent again. If a section fails again, it stays in the list.
Two messages can appear there: Retry failed. Please try again. and Utterances were added or removed since this refinement was saved. Delete the refinement and refine again.
If you change the original
The refinement does not adapt. If you change text in the original after refining and save, original was edited – delete and refine again appears in amber in the toolbar. Until then the Refined view shows the older text. Changes to times or names do not count here.
Delete Refinement removes the refinement after a confirmation prompt. The original stays unchanged. Afterwards you can refine again. Analyses and translations that were made from the deleted refinement show source no longer available, an analysis right away, a translation once you reopen the transcription.
How it works with other steps
Analysis and translation offer the refinement as the Source and choose it on their own as soon as one exists. You can switch to Original there.
In a bundle with a refinement preset, your browser refines automatically after the transcription, using the preset's context. Analysis and translation follow. Stay on the page until all steps are finished.
Presets
What presets are
A preset saves settings under a name, so you do not have to enter them again for every recording. There are presets for transcription, for analysis and for refinement. Presets belong to your account, and only you see them.
You use them in three places:
- Transcription: in the Presets group of the Upload and Record views, in the Transcription field. The section "Transcription Settings" explains it.
- Analysis: in the Analysis field of the analysis form.
- Refinement: at the top of the dialog for refining.
Next to each of these fields is Save as preset. Enter a name there and confirm with the check mark or Enter. transkribierBAR saves the current settings under that name. The cross or Esc cancels.
The Presets page
Click Presets in the header. The page My Presets opens.

- The four tabs Transcription, Analysis, Refinement and Bundles. Each lists your saved entries. The section "Bundles" explains the last one.
- Edit changes an entry, Delete removes it (see below).
- + New preset opens a form with a Name and the fields of the preset type.
Save stays unavailable until you have entered a name. Cancel closes the form.
Delete asks for confirmation: Delete this preset? Bundles using it will lose the reference. Only the preset is removed. Bundles that used it remain, but without that part. Transcriptions that already exist are not affected.
Transcription presets
A transcription preset stores language, speaker detection, initial prompt, hotwords and model. The form on the Presets page has the fields Name, Transcription language, Quality, Detect speakers (with the minimum and maximum number of speakers), Hotwords and Initial prompt. Under Quality you choose the model as in the transcription settings; if your installation offers only one model, the field is named Model and cannot be changed.
If you choose such a preset in Upload or Record, it applies the language, the speaker settings stored in it, the model, the initial prompt and the hotwords.
As in the transcription settings, the initial prompt and the hotwords share a limited space. Below the fields the form shows how much of it they use, and Save stays disabled while they are too long together.
Analysis presets
An analysis preset stores the template and the output language. For Custom it also stores your own instruction. The form on the Presets page has the fields Name, Select a template, Output language and, for Custom, Customize prompt.
If you save a preset in the analysis form with Save as preset, it also stores the chapters and the agenda you entered there. Choosing the preset fills them back in. The section "Analysis" explains the form.
Chapters and agenda. The Presets page doesn't show chapters and agenda. If you edit a preset there, they are kept.
Refinement presets
A refinement preset stores only a context text, for example a note on the topic and on technical terms. The form on the Presets page has the fields Name and Context (optional). The section "Refinement" explains what the context does.
Bundles
What a bundle is
A bundle ties presets together for a recurring workflow. It can contain a transcription preset, a refinement preset, an analysis preset and a target language for translation. Each part is optional. Bundles belong to your account, and only you see them.
Once the transcription has finished, transkribierBAR carries out the further steps of the bundle one after another. You do not have to start each one yourself.
The pipeline
The steps always run in this order: transcription, refinement, analysis, translation. The transcription always runs. Refinement, analysis and translation only run if the bundle contains them.
Your browser starts these steps, one after another. Stay on the page until they have finished. If a refinement exists by then, analysis and translation use it, otherwise the original. You cannot choose the original in a bundle.
When the transcription is finished, the detail view opens. A strip above the editor shows the current step, for example Translating to English.... If a step fails, the others still run. Afterwards the message Some pipeline steps failed: lists what went wrong. The cross closes it. A step whose preset you have deleted in the meantime is skipped.
Creating a bundle
Create the presets you need first, as described in the section "Presets". Then open the Presets page, switch to the Bundles tab and click + New bundle. Enter a Name; the other fields are optional, and None leaves a part out.

- Each bundle appears as a card with its name and the parts it contains.
- The star (Set as default) makes the bundle the default (see "Default bundle"). Edit changes the bundle, Delete removes it after the question Delete this bundle?.
- Transcription preset... chooses the transcription preset. Analysis preset... and Refinement preset... below it work the same way.
- Translate to chooses the language for the translation.
- Save saves the bundle once it has a name.
Deleting a bundle does not delete its presets.
Using a bundle
In Upload and Record, the Bundles field in the Presets group appears once you have created bundles. If you choose a bundle there, the settings of its transcription preset are applied. If the bundle contains refinement, analysis or translation, the button reads Run pipeline. The section "Upload" explains in detail how this works, including the preselected bundle.
Default bundle
The star on a bundle's card makes it the default. The star on the default bundle removes the default again. You can have only one default bundle. The app preselects it when it opens and applies its transcription preset to the settings. The section "Upload" explains the details.
Bundle or manual steps?
A bundle pays off when you treat many recordings the same way, for example always refine, then summarize, then translate. For a single recording that needs different treatment, or if you want to look at the result of a step first, start the steps by hand.
API Access
What this is for
With a personal API token, your own scripts can use transkribierBAR without the web interface: upload a file, start a transcription, query its status and download the result. This section is for people who write scripts. For the web interface, you do not need it.
A token belongs to your account. A script that uses it sees and changes only your own files and transcriptions. It does what you could do in the web interface.
Creating a token
Click Settings in the header. In the API tokens section, click Create token. Enter a Name that tells you where you use the token, for example the name of the script. Under Expires in, choose how long the token stays valid. The list offers 30 days, 90 days and 365 days, and always also the default validity of 90 days, which is preselected. Every token expires. Click Create.
The name can be up to 64 characters long. Among your active tokens each name may only be used once. The number of active tokens per person is limited. If you have reached it, creating another one is refused with an error message in the dialog. Revoke a token you no longer need first.
Tokens are created, listed and revoked only in the web interface. A request to /api/tokens that carries a token is answered with status 403.
Copy the token now. The token appears once, starting with
tw_. Copy puts it on the clipboard, Done closes the dialog. After that, nobody can display the token again, because transkribierBAR only stores a hash of it, not the token itself. If you lose it, create a new one.
Managing tokens
The API tokens section lists your tokens.

- Create token opens the dialog described above.
- A token with its name, its first characters followed by "…", its status (Active, Expired or Revoked), its expiry date and, once it has been used, when it was last used.
- Revoke, next to an active or expired token, revokes it. From then on, the server rejects every new request with it.
Expired and revoked tokens stay in the list, shown faded. They are removed from it automatically, revoked ones after 30 days and expired ones after 90 days.
Before a token expires, a notice above the list names it, and the Settings button in the header shows an orange dot. The notice appears 14 days before the expiry, for a token created for only a short time 3 days or 1 day before, and it stays for 14 days after a token has expired. A token valid for 1 day gets a notice only once it has expired. Revoking a token removes its notice, even after the token has expired; once no notice is left, the dot disappears as well. A token cannot be extended: create a new one and replace the old one in your scripts. If this service is set up to send email, you also receive reminders at the email address of your login, 14, 3 and 1 day before a token expires; a token created for only a short time skips the early ones, and a token valid for 1 day gets none.
Authentication
Send the token with every request in the header Authorization, in the form Bearer followed by a space and the token:
Authorization: Bearer tw_…
If the token is unknown, expired or revoked, the server answers with status 401 and the message Invalid or expired API token.
For the WebSocket that reports the status, send the token as the query parameter token, because browsers cannot set headers there:
wss://transcription.uni-osnabrueck.de/api/ws/status/{transcription_id}?token=tw_…
Transcribing step by step
The examples use tw_… as a placeholder for your token and FILE_ID and TRANSCRIPTION_ID for the IDs you receive.
1. Upload the file. Send it as the form field file:
curl -H "Authorization: Bearer tw_…" -F "file=@interview.mp3" https://transcription.uni-osnabrueck.de/api/upload
The answer is JSON. The field id is the FILE_ID. The same file types and the same maximum size as in the web interface apply, see the section "Upload". Other file types are answered with status 400, files that are too large with 413.
2. Start the transcription. Send the settings as JSON:
curl -X POST https://transcription.uni-osnabrueck.de/api/transcribe \
-H "Authorization: Bearer tw_…" \
-H "Content-Type: application/json" \
-d '{"file_id": "FILE_ID", "language": "de", "model": "large-v3-turbo"}'
The answer contains the id of the transcription (TRANSCRIPTION_ID) and the status pending. These fields are available:
| Field | Meaning |
|---|---|
file_id |
Required. The id from the upload. |
language |
Language code such as de. Without this field, the language is detected automatically. |
model |
The model. See the note below. |
min_speakers, max_speakers |
Minimum and maximum number of speakers. If at least one of them is greater than 0, speakers are detected. If both are missing or 0, speakers are not detected. Negative values, or a maximum other than 0 below the minimum, are rejected. |
initial_prompt |
Optional context for the transcription. |
hotwords |
Optional technical terms, separated by commas. |
The model.
modelnames one of the models this installation offers; the Quality field in Upload lists them with their names in parentheses. If you leave outmodel, the installation's default model large-v3-turbo is used. A model this installation does not offer is rejected with status 422, and the message names the rejected model.
Initial prompt and hotwords. Together they may take at most 223 tokens of the speech recognition's vocabulary, roughly 650 to 850 characters of German text and fewer in scripts such as Chinese or Arabic. Longer entries are rejected with status 422 and
"code": "prompt_too_long"; the message names the number of tokens. Saving a transcription preset checks the same.POST /api/prompt-budgetwith the fieldsinitial_promptandhotwordsanswers withtokensandlimitand starts nothing.
3. Wait for the result. Query the status until it is completed or failed:
curl -H "Authorization: Bearer tw_…" https://transcription.uni-osnabrueck.de/api/status/TRANSCRIPTION_ID
The status is pending, processing, completed or failed. With failed, the field error contains the reason, and error_code names it with a fixed code: server_restarted (the server restarted while the transcription was running), timeout (the speech recognition did not finish within the time limit), asr_unreachable (the request to the speech recognition failed), asr_failed (the speech recognition reported an error) or unknown (any other reason, which only error describes). If no code is stored, error_code is null.
Instead of repeating the query, you can listen on the WebSocket from the section "Authentication". It sends a message such as {"type": "status", "status": "processing"} every 5 seconds and closes after failed. If the transcription already has a title, the completed message carries it in the field title, and the WebSocket closes. The language model writes the title only after the transcription, though. While it is still working on the title, the WebSocket stays open after completed and checks every 5 seconds. As soon as the attempt has ended, it sends {"type": "title", "title": "…"} if the attempt produced a title, and closes. It closes at the latest when the language model's time limit has passed since the transcription was completed. Without a language model, and for a transcription without text, it closes right after completed. If the token is invalid, it closes with code 4001. If the transcription does not exist or is not yours, it closes with code 4003.
4. Fetch the result. As long as the transcription is not finished, this call is answered with status 400:
curl -H "Authorization: Bearer tw_…" https://transcription.uni-osnabrueck.de/api/transcription/TRANSCRIPTION_ID
The answer contains the utterances (utterances, each with start and end in milliseconds, text and speaker), the complete text (text), the requested language (language, null for automatic detection), the language the speech recognition reported (detected_language, null if none was recorded) and the speaker names (speaker_mappings). For a ready-made file, append /export/txt, /export/srt, /export/vtt or /export/json to the address instead.
Limits
Files and results are deleted automatically after 3 days, as in the web interface.
Presets and bundles are applied by the web interface. /api/transcribe does not know them, so you send the settings yourself. The calls for presets accept a token as well.