Zum Hauptinhalt springen

Cohere-Transcribe-03-2026

Im Spracherkennungs-Guide für Cohere Transcribe findest du lauffähige Beispiele für Sprechertrennung, Wort-Zeitstempel, Untertitel und Telefonaufnahmen.

Beschreibung​

„cohere-transcribe-03-2026" ist ein Spracherkennungsmodell von Cohere. Du schickst eine Audiodatei und bekommst den Text zurück, auf Wunsch mit Wort-Zeitstempeln, als Untertitel oder nach Sprechern getrennt. Es bedient dieselbe Route /v1/audio/transcriptions wie Whisper-Large-V3-Turbo, und OpenAI-kompatibler Code funktioniert damit ohne Änderungen.

Dieses Modell befindet sich in der Testphase. Verhalten und Funktionsumfang können sich noch ändern, daher empfehlen wir für den produktiven Einsatz Stable- oder LTS-Modelle.

Auf unserer Hardware macht es auf Deutsch und Englisch weniger Fehler als Whisper-Large-V3-Turbo, siehe Genauigkeit. Whisper bleibt verfügbar und deckt deutlich mehr Sprachen ab.

Das Modell eignet sich für:

  • Transkription in 14 Sprachen, mit automatischer Spracherkennung
  • Sprechertrennung: wer was gesagt hat, mit Sprechzeit pro Sprecher
  • Wort-Zeitstempel mit Anfang, Ende und Zuordnungssicherheit für jedes Wort, in 8 Sprachen
  • Untertitel als srt oder vtt, an Wortgrenzen geschnitten, auf Wunsch mit Sprecherkennung
  • Telefonaufnahmen mit einem Sprecher pro Kanal, die Kanal für Kanal transkribiert werden
  • Aufnahmen bis 95 Minuten in einer einzigen Anfrage

Diese Einschränkungen gelten:

  • Maximale Dateigröße: 25 MB pro Upload
  • Maximale Audiolänge: 95 Minuten pro Anfrage
  • Eine Sprache pro Anfrage. Gemischtsprachige Aufnahmen werden nicht unterstützt, siehe Eine Sprache pro Anfrage
  • Streaming wird nicht unterstützt. Eine Anfrage mit stream=true antwortet mit HTTP 400, schick sie also ohne stream, um das vollständige Transkript zu bekommen
  • Keine Echtzeit-Transkription von Audio, das noch aufgenommen wird, und kein Endpunkt /v1/realtime. Push-to-Talk funktioniert auch ohne, und für Live-Untertitel kannst du das Signal an Sprechpausen schneiden, siehe Push-to-Talk und Diktat und Fast live transkribieren
  • Keine Echtzeit- oder Mikrofoneingabe. Die Route nimmt eine fertige Datei entgegen
  • Eine Übersetzung in eine andere Sprache ist nicht möglich
  • Für el, ar, ko, ja, vi und zh gibt es keine Wort-Zeitstempel

Eine Sprache pro Anfrage​

Tokenverbrauch​

Abgerechnet wird pro Audiosekunde zum selben Satz wie bei Whisper-Large-V3-Turbo: 25 Token pro Audiosekunde.

Genauigkeit​

Wortfehlerrate, gemessen auf unserer Hardware, niedriger ist besser:

Sprachecohere-transcribe-03-2026whisper-large-v3-turboTestdaten
Deutsch3,39 %4,93 %1.010 Aufnahmen aus Common Voice, MLS, FLEURS
Englisch3,77 %4,25 %462 Aufnahmen aus LibriSpeech, FLEURS, Earnings-22

Unterstützte Eingabeformate​

FormatBeispiele
wavauch 8-kHz-µ-law-Telefonaudio, Stereo, 24 Bit und Float
mp3
m4a/aacSprachmemos vom iPhone
ogg/opus
flac
webmAufnahmen aus dem MediaRecorder des Browsers
mp4Videos, transkribiert wird die Tonspur

Jede Abtastrate funktioniert. Du musst das Audio vor dem Upload nicht umwandeln.

Audiolänge und Dateigröße​

Ein Upload darf bis zu 25 MB groß sein, das Audio darin bis zu 95 Minuten lang. Beide Limits gelten unabhängig voneinander. Wird eines überschritten, kommt HTTP 413 zurück.

Bei üblichen Sprach-Bitraten stößt du zuerst an die Dateigröße: In 25 MB passen rund 52 Minuten Audio bei 64 kbit/s mono. Komprimier lange Aufnahmen vor dem Upload zu mp3 oder opus in mono, statt wav zu schicken. Noch längere Aufnahmen brauchen eine niedrigere Bitrate oder müssen aufgeteilt werden. Die Sprecherkennungen werden pro Anfrage in der Reihenfolge vergeben, in der jemand zum ersten Mal spricht. SPEAKER_00 im einen Teil ist also nicht unbedingt dieselbe Person wie SPEAKER_00 im nächsten.

Gültige Werte für den Parameter language​

ar, de, el, en, es, fr, it, ja, ko, nl, pl, pt, vi, zh

language erwartet ISO-639-1-Codes. Varianten wie DE, de-DE und de_AT sowie englische oder deutsche Sprachnamen wie german werden angenommen und auf den Code abgebildet. Eine nicht unterstützte Sprache antwortet mit HTTP 400, und die Meldung nennt die gültigen Codes.

Lässt du language weg, erkennt das Modell die Sprache selbst. Setz den Parameter, wann immer du die Sprache kennst: Bei sehr kurzen oder ungewöhnlichen Aufnahmen kann die Erkennung auf Deutsch zurückfallen.

Wort-Zeitstempel gibt es für de, en, es, fr, it, nl, pl und pt.

Ausgabeformate​

response_formatLiefert
jsonStandard. Den Text als JSON
textDen Text als reinen Text, ohne JSON
srtUntertitel im SubRip-Format
vttUntertitel im WebVTT-Format
verbose_jsonSprache, Dauer, Segmente mit Zeitstempeln und auf Wunsch Wörter, siehe Wort-Zeitstempel
diarized_jsonSegmente nach Sprecher und Sprechstatistik, siehe Sprechertrennung

Die Untertitel in srt und vtt sind an Wortgrenzen geschnitten und kurz genug, um sie am Bildschirm zu lesen. Mit diarize=true tragen sie die Sprecherkennung: srt setzt sie vor den Text (SPEAKER_00: …), vtt nutzt Voice-Tags (<v SPEAKER_00>…).

Enthält das Audio nur Stille, Rauschen oder Töne, ist das Transkript leer. Das Modell erfindet keinen Text dazu.

Erste Schritte​

from openai import OpenAI

client = OpenAI(
base_url="https://llm.aihosting.mittwald.de/v1",
api_key="sk-your-api-key-here",
)

with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="cohere-transcribe-03-2026",
file=f,
language="de",
)

print(result.text)

Empfohlene Parameter​

ParameterWertWirkung
languageISO-639-1-Code wie deSetz ihn, wenn du die Sprache kennst, siehe Gültige Werte
response_formatjsonSiehe Ausgabeformate
timestamp_granularities[]wordOptional. Wort-Zeitstempel, mit verbose_json oder diarized_json
num_speakersGanzzahl von 1 bis 20Optional. Genaue Zahl der Sprecher, mit diarized_json
min_speakersGanzzahl von 1 bis 20Optional. Untergrenze für die Zahl der Sprecher
max_speakersGanzzahl von 1 bis 20Optional. Obergrenze für die Zahl der Sprecher
diarizetrueOptional. Sprecherkennung in srt und vtt
promptfreier TextOptional. Hinweis auf Kontext und Vokabular, etwa Namen und Fachbegriffe
temperaturezwischen 0 und 1Optional

Wort-Zeitstempel​

Fordere timestamp_granularities[]=word zusammen mit response_format="verbose_json" oder "diarized_json" an. Die Antwort enthält dann eine Liste words mit start und end in Sekunden und einem confidence-Wert für jedes Wort. confidence gibt an, wie gut sich das Wort dem Audio zuordnen ließ, nicht wie sicher sich das Modell ist, das Wort richtig gehört zu haben. verbose_json enthält außerdem immer die Segmente.

Wort-Zeitstempel gibt es für de, en, es, fr, it, nl, pl und pt.

{
"task": "transcribe",
"language": "de",
"duration": 4.2,
"text": "Heute regnet es in Berlin …",
"segments": [{ "id": 0, "start": 0.04, "end": 4.1, "text": "…" }],
"words": [
{ "word": "Heute", "start": 0.04, "end": 0.26, "confidence": 0.97 },
{ "word": "regnet", "start": 0.36, "end": 0.72, "confidence": 0.95 }
]
}

Sprechertrennung​

response_format="diarized_json" liefert das Transkript in Segmenten nach Sprecher. Jedes Segment trägt speaker (SPEAKER_00, SPEAKER_01 und so weiter), start, end und text. speaker_analytics ergänzt für jeden Sprecher Sprechzeit, Anteil und Zahl der Wortbeiträge, dazu die gesamte Sprechzeit, die Stille und den Anteil überlappender Sprache.

Die Zahl der Sprecher schätzt das Modell selbst. Kennst du sie, gib sie als num_speakers mit, oder grenz sie mit min_speakers und max_speakers ein. Alle drei nehmen Ganzzahlen von 1 bis 20.

Zweikanalaufnahmen mit einem Sprecher pro Kanal, wie sie viele Telefonanlagen aufzeichnen, erkennt das Modell selbst. Es transkribiert sie Kanal für Kanal, statt die Stimmen per Schätzung zu trennen, und die Kennungen nennen den Kanal (CHANNEL_00, CHANNEL_01).

{
"task": "transcribe",
"language": "de",
"duration": 92.18,
"text": "Am Ende wird es wieder in eine Fressorgie ausarten. Ja, aber bei mir ist das auch etwas ganz anderes. …",
"segments": [
{
"id": "seg_0",
"type": "transcript.text.segment",
"start": 0.38,
"end": 4.22,
"speaker": "SPEAKER_00",
"text": "Am Ende wird es wieder in eine Fressorgie ausarten."
},
{
"id": "seg_1",
"type": "transcript.text.segment",
"start": 4.78,
"end": 8.66,
"speaker": "SPEAKER_01",
"text": "Ja, aber bei mir ist das auch etwas ganz anderes."
}
],
"speaker_analytics": {
"speakers": [
{
"speaker": "SPEAKER_00",
"speaking_time": 41.2,
"speaking_share": 0.52,
"turns": 7
}
],
"speaker_count": 2,
"total_speech_time": 79.4,
"silence_time": 12.8,
"overlap_ratio": 0.0
},
"usage": { "type": "duration", "seconds": 92 }
}

Fehlerantworten​

SituationStatus
Nicht unterstützte language, die Meldung nennt die gültigen Codes400
Die Datei ist leer, ist kein Audio oder ist ein Video ohne Tonspur400
num_speakers, min_speakers oder max_speakers außerhalb von 1 bis 20400
stream=true400
Datei größer als 25 MB oder Audio länger als 95 Minuten413
Fehlender oder ungültiger API-Key401

Jede Antwort mit 400 enthält eine Meldung, die sagt, was an der Anfrage nicht stimmt. In den OpenAI-SDKs löst eine Antwort mit 400 einen BadRequestError aus.

Lizenz und Nutzungsbedingungen​

Cohere veröffentlicht das Modell unter der Apache-2.0-Lizenz. Die Komponenten, die wir für Sprechertrennung und Wort-Zeitstempel einsetzen, stehen unter Apache 2.0 oder MIT.