
Batch-Transkription für große Projekte: Das 2026-Playbook
Summarize this article with:
Batch-Transkription im großen Maßstab erfordert eine manifestgesteuerte Pipeline, nicht nur eine For-Schleife, die eine API aufruft. Dieser Leitfaden deckt den kompletten Workflow für Jobs in Archivgröße ab: Dateiorganisation, API-Übermittlungsmuster, Parallelität und Rate Limits, Wiederholungen mit exponentiellem Backoff, QC-Stichproben sowie einen Kostenvergleich zwischen Deepgram, AssemblyAI, AWS Transcribe und OpenAI Whisper. Das Prinzip „erst Pilotlauf, dann vollständiger Batch“ spart mehr Zeit als jede andere einzelne Gewohnheit.
Ein Archiv mit 1.000 Dateien ist kein UI-Problem. Sobald ein Projekt die Marke von rund 50 Stunden Audio überschreitet, lautet die Frage nicht mehr „Welches Tool nehme ich?“, sondern „Wie betreibe ich diese Pipeline, ohne den Überblick darüber zu verlieren, was fehlgeschlagen ist.“

In diesem Beitrag geht es darum, genau diese Pipeline zu bauen. Wir behandeln Dateiorganisation, API-Übermittlungsmuster, Parallelität, Rate Limits, Fehlerbehandlung, QC-Stichproben, Namenskonventionen und die Kostenrechnung über die wichtigsten APIs. Diese Muster funktionieren unabhängig davon, ob Sie einen Podcast-Rückkatalog migrieren, Forschungsinterviews verarbeiten oder Zeugenaussagen archivieren.
Bevor Sie einen einzigen API-Aufruf schreiben: Das Manifest
Der größte versteckte Kostenfaktor bei jedem großen Batch ist Rekonstruktionsarbeit – also herauszufinden, welche Dateien gelaufen sind, welche fehlgeschlagen sind und welche Ausgaben zu welcher Quelle gehören, nachdem der Job sich über Stunden oder Tage erstreckt hat.
Ein vor der Übermittlung angelegtes CSV-Manifest eliminiert diesen Aufwand. Die wichtigen Spalten:
| Spalte | Hinweise |
|---|---|
file_id | Stabiler Slug, nicht der rohe Dateiname (Dateinamen ändern sich) |
source_path | Absoluter Pfad oder Storage-URL |
duration_sec | Vorab ausfüllen, wenn möglich; hilft bei der Kostenschätzung |
language | Explizit setzen; verlassen Sie sich im großen Maßstab nicht auf die Autoerkennung |
status | pending / submitted / completed / failed |
job_id | Von der API bei der Übermittlung zurückgegeben |
output_path | Wo das Transkript gespeichert wurde |
error | Fehlermeldung oder -code, wenn der Status failed ist |
reviewed | QC-Markierung: leer / pass / needs-review |
Aktualisieren Sie das Manifest während des Batch-Laufs direkt an Ort und Stelle. Ein Python-Skript, das das Manifest liest, Zeilen mit dem Status completed überspringt, Zeilen mit pending übermittelt und Zeilen mit submitted abfragt, ist konstruktionsbedingt idempotent. Sie können es an jedem Punkt gefahrlos neu starten.
Eine Verzeichnisstruktur, die skaliert
/batch-project/
manifest.csv
source/
2024-Q1/
interview-001-smith-2024-03-12.mp3
interview-002-jones-2024-03-14.mp3
2024-Q2/
...
transcripts/
2024-Q1/
interview-001-smith-2024-03-12.txt
interview-001-smith-2024-03-12.srt
interview-001-smith-2024-03-12.json
...
Das Benennungsmuster {id}-{speaker}-{date}.{ext} ermöglicht es, das Manifest bei Problemen aus dem Dateisystem zu rekonstruieren. Vermeiden Sie Leerzeichen in Dateinamen – sie zerstören unsignierte URLs in den meisten Speichersystemen.
Die richtige API wählen
Bei Batch-Projekten bestimmen drei Faktoren, welche API infrage kommt: Kosten pro Minute, Obergrenze für gleichzeitige Anfragen und ob Sie Speaker-Diarisierung oder Fachvokabular benötigen. So sieht die aktuelle Preisgestaltung aus, Anfang Juli 2026 anhand der Anbieterseiten überprüft.
| Anbieter | Modell | Basispreis | Mit Diarisierung | Gleichzeitiges Limit |
|---|---|---|---|---|
| AssemblyAI | Universal-2 | 0,15 $/Std. | 0,17 $/Std. | 200 Jobs |
| AssemblyAI | Universal-3.5 Pro | 0,21 $/Std. | 0,23 $/Std. | 200 Jobs |
| Deepgram | Nova-3 Monolingual | 0,46 $/Std. | 0,58 $/Std. | 50 Anfragen |
| Deepgram | Nova-3 Multilingual | 0,55 $/Std. | 0,67 $/Std. | 50 Anfragen |
| AWS Transcribe | Standard (US East) | 0,36 $/Std. | nicht integriert verfügbar | je nach Konto unterschiedlich |
| OpenAI | GPT-4o-mini-transcribe | 0,18 $/Std. | nicht verfügbar | je nach Rate-Limit-Tier |
AssemblyAI ist der Preisführer beim reinen Transkriptionsvolumen. Deepgram Nova-3 kostet mehr, zeigt aber starke Leistung bei verrauschtem Audio mit mehreren Sprechern und bietet Keyterm-Prompting für Fachvokabular. AWS Transcribe stellt in Sekundenschritten in Rechnung, mit einem Minimum von 15 Sekunden pro Anfrage – dieses Minimum bläht die effektiven Kosten auf, wenn Ihr Archiv viele kurze Clips enthält.
Für ein Archiv mit 1.000 Stunden, verarbeitet mit AssemblyAI Universal-2 inklusive Diarisierung, erwarten Sie etwa 170 $. Derselbe Job auf Deepgram Nova-3 mit Diarisierung kostet rund 580 $. Beide übertreffen die menschliche Transkription bei klarem Audio um eine Größenordnung.
Ausführlichere Aufschlüsselungen finden Sie unter Transkriptionspreise im Vergleich 2026 und Kosten der Transkription pro Stunde.
Übermittlungsmuster: URL vs. Upload
Nutzen Sie die URL-Übermittlung für Dateien, die bereits im Cloud-Speicher liegen. Die API lädt über eine signierte URL herunter; Sie müssen nie Gigabytes an Audio über Ihre Verbindung neu hochladen. Die meisten Speichersysteme (S3, R2, GCS) erzeugen signierte URLs mit einem simplen SDK-Aufruf.
Verwenden Sie den direkten Multipart-Upload nur für Dateien, die lokal liegen und nirgendwo sonst gespeichert werden. Im großen Maßstab summieren sich Bandbreiten- und Zeitkosten für Uploads von lokal zur API schnell.
Die Übermittlungsschleife
Das grundlegende Python-Muster, so geschrieben, dass es neu startbar ist:
import csv
import time
import requests
API_KEY = "your_api_key"
BASE_URL = "https://api.assemblyai.com/v2"
def submit_job(url, language="en"):
resp = requests.post(
f"{BASE_URL}/transcript",
headers={"authorization": API_KEY},
json={
"audio_url": url,
"language_code": language,
"speaker_labels": True,
},
)
resp.raise_for_status()
return resp.json()["id"]
def poll_job(job_id, timeout=600):
deadline = time.time() + timeout
while time.time() < deadline:
resp = requests.get(
f"{BASE_URL}/transcript/{job_id}",
headers={"authorization": API_KEY},
)
data = resp.json()
if data["status"] == "completed":
return data
if data["status"] == "error":
raise RuntimeError(data.get("error", "unknown"))
time.sleep(15)
raise TimeoutError(f"Job {job_id} did not complete in {timeout}s")
Bei einem Batch mit 1.000 Dateien sollten Sie nicht synchron in einem einzelnen Thread pollen. Übermitteln Sie ein Fenster von Jobs, sammeln Sie die IDs und pollen Sie dann parallel – oder wechseln Sie zu Webhooks, sobald Ihr Endpunkt stabil ist.
Parallelität und Rate Limits
Drosselung der Übermittlungsschleife
Selbst mit hohen Concurrency-Obergrenzen lösen Sie bei den meisten Anbietern Rate Limits aus, wenn Sie alle 1.000 Anfragen innerhalb von 30 Sekunden abschicken. Ein Semaphore hält Sie innerhalb der Grenzen:
import asyncio
import aiohttp
CONCURRENCY = 50 # Stay under provider ceiling
async def submit_all(manifest_rows):
sem = asyncio.Semaphore(CONCURRENCY)
async with aiohttp.ClientSession() as session:
tasks = [submit_with_sem(sem, session, row) for row in manifest_rows]
return await asyncio.gather(*tasks, return_exceptions=True)
Fügen Sie zwischen den Übermittlungen eine kleine Pause ein (10–50 ms), falls Sie während der ersten Flut 429-Antworten erhalten.
Wenn Sie den Trade-off zwischen Webhook und Polling für Produktionssysteme aufbereitet brauchen, behandelt dieser Beitrag den Entscheidungsbaum.
Fehlerbehandlung
Sprachbehandlung bei gemischtsprachigen Batches
Benutzerdefiniertes Vokabular: Lohnt sich, zuerst einzurichten
Qualitätskontrolle: Stichprobe, bevor Sie es als fertig erklären
Die Versuchung bei einem Batch mit 1.000 Dateien besteht darin, alle Transkripte als erledigt zu akzeptieren. Der Schritt aus Stichprobe und Review beansprucht 5–10 Prozent der Projektzeit und findet die systemischen Probleme, die sich sonst in jede nachgelagerte Verwendung der Transkripte einschleichen würden.
Was Sie stichprobenartig prüfen sollten
Ziehen Sie zufällig 5 Prozent der fertigen Transkripte. Berücksichtigen Sie mindestens eine Datei jedes wichtigen Quelltyps im Batch (unterschiedliche Aufnahmeumgebungen, unterschiedliche Sprecher, unterschiedliche Geräte).
Hören Sie sich aus jeder Stichprobendatei 2-minütige Abschnitte an, während Sie das Transkript lesen. Markieren Sie:
- Durchgängige Fehlidentifikation eines wiederkehrenden Begriffs (fügen Sie ihn zur Vokabularliste hinzu und verarbeiten Sie die betroffenen Dateien erneut)
- Falsche Sprecherzuordnung bei Dateien mit mehreren Sprechern (prüfen Sie, ob die Diarisierung aktiviert war; prüfen Sie die Audioqualität)
- Abschnitte, in denen die Konfidenz sank (korreliert oft mit Hintergrundgeräuschen oder sich überlappender Sprache)
Stichprobenkontrollen bei kritischen Dateien
Manche Dateien sind wichtiger als andere. Das Schlüsselinterview eines Forschungsprojekts. Die zentrale Zeugenaussage in einem Rechtsarchiv. Die Gründungsfolge eines Podcasts. Ziehen Sie diese zur genaueren Prüfung heran, egal was die Stichprobe sagt. AI-Konfidenzwerte bilden nicht perfekt ab, ob „diese Datei war wichtig“.
Konfidenzschwellenwerte als Signal, nicht als Sperre
Manche Anbieter liefern Konfidenzwerte auf Wortebene in der JSON-Antwort. Markieren Sie Transkripte, deren durchschnittliche Konfidenz unter etwa 0,80 fällt, als Kandidaten für die menschliche Prüfung – werfen Sie sie aber nicht automatisch weg. Niedrige Konfidenz bei klarem Audio bedeutet meist, dass das Fachvokabular unbekannt ist. Niedrige Konfidenz bei verrauschtem Audio bedeutet meist, dass das Audio neu aufgenommen werden muss oder die Datei abzuschreiben ist.
Kostenrechnung für gängige Projektgrößen
| Projekt | Stunden | Beste API | Geschätzte Kosten |
|---|---|---|---|
| Forschungsinterviews | 200 Stunden | AssemblyAI Universal-2 + Diarisierung | ca. 34 $ |
| Podcast-Rückkatalog | 1.000 Stunden | AssemblyAI Universal-2 | ca. 150 $ |
| Rechtsarchiv | 500 Stunden | Deepgram Nova-3 + Keyterms | ca. 270 $ |
| Migration eines Altarchivs | 5.000 Stunden | AssemblyAI Universal-2 | ca. 750 $ |
CATTs Pro-Tarif für 9,99 $ pro Monat eignet sich gut für wiederkehrende Monatsvolumina von unter etwa 100 Stunden. Für einmalige große Migrationen ist die nutzungsbasierte API-Abrechnung flexibler – Sie zahlen für das, was Sie tatsächlich verarbeiten, ohne monatliche Bindung.
Zur Break-even-Analyse siehe Preise für unbegrenzte vs. nutzungsbasierte Transkription. Wenn Sie ein Produkt bauen, das diese APIs im Namen Ihrer Nutzer aufruft, behandeln Kostenoptimierung von Transkriptions-API-Aufrufen und Caching von Transkriptionsergebnissen die beiden Hebel mit der größten Wirkung.
Wenn Sie einfach nur Dateien transkribieren möchten, ohne eine Pipeline zu bauen – ein einmaliger Batch oder eine schnelle Bearbeitung eines einzelnen Projekts –, verarbeitet ConvertAudioToText Audio-, Video- und URL-Quellen ohne jegliche Einrichtung unter /tools/audio-to-text.
Nachbearbeitung nach Projekttyp
Sobald die Transkripte existieren, ist die nachgelagerte Arbeit projektspezifisch:
Forschungsprojekte: Topic Modeling über die Gesprächsbeiträge der Teilnehmenden, thematische Kodierung in MAXQDA oder NVivo, Extraktion von Zitaten für Zitatdatenbanken. Die JSON-Ausgabe der meisten APIs enthält Zeitstempel auf Wortebene, wodurch sich Zitate mit Zeitangaben leicht rekonstruieren lassen.
Medienarchive: Aufbau eines Suchindex (Elasticsearch oder Meilisearch funktionieren gut), Metadaten-Anreicherung, Zusammenfassung auf Episodenebene per LLM-Durchlauf über jedes Transkript.
Rechtsarchive: Schlagwortindizierung, Prüfworkflow für privilegierte Inhalte, Extraktion von Fundstellen. Benutzerdefiniertes Vokabular zahlt sich hier vielfach aus – Fallbezeichnungen und Gesetzesverweise müssen exakt sein.
Content-Produktion: Transkripte weiterverwenden für Artikel, Newsletter und Social-Media-Beiträge. Den redaktionellen Workflow beschreibt wie man Interviewaufnahmen transkribiert.
Die richtige Reihenfolge beim Aufbau
Für jedes neue Batch-Projekt spart diese Abfolge am meisten Zeit:
- Definieren Sie die Namenskonvention und die Verzeichnisstruktur.
- Erstellen oder befüllen Sie die Manifest-CSV.
- Schreiben Sie das Übermittlungsskript mit Manifest-Lese-/Schreibzugriff.
- Führen Sie einen Pilotlauf mit 10 Dateien durch. Prüfen Sie die Ausgabe.
- Beheben Sie alle im Pilotlauf gefundenen Probleme (Vokabular, Spracheinstellungen, Formatprobleme).
- Starten Sie den vollständigen Batch.
- Stichprobe und Review von 5 Prozent.
- Bearbeiten Sie die Fehlerwarteschlange erneut.
- Übergeben Sie an die Nachverarbeitung.
Meine Einschätzung: Der Pilotlauf ist der wichtigste Punkt auf dieser Liste. Einen Workflow-Fehler bei 10 Dateien zu finden ist billig. Ihn bei Datei 800 zu finden, nachdem der Lauf bereits echtes Geld und Zeit gekostet hat, ist teuer. Die 10 Dateien liefern Ihnen außerdem eine echte Genauigkeitsstichprobe, die Sie Stakeholdern zeigen können, bevor Sie sich auf den vollen Job festlegen.
FAQ
Wie viele Dateien kann ich parallel an Transkriptions-APIs übermitteln?
AssemblyAI verarbeitet standardmäßig bis zu 200 Jobs gleichzeitig. Deepgrams Pre-recorded-Endpunkt erlaubt bis zu 50 gleichzeitige Anfragen bei Pay As You Go- und Growth-Tarifen. Beide Limits gelten auf Projektebene. Wenden Sie sich an den Vertrieb, um höhere Limits für dauerhaftes Arbeiten mit großen Volumen zu beantragen.
Wie hoch ist eine normale Fehlerrate beim ersten Batch-Durchlauf?
Rechnen Sie damit, dass beim ersten Durchlauf 3–5 Prozent der Dateien fehlschlagen. Ein erneuter Durchlauf mit exponentiellem Backoff behebt typischerweise 60–80 Prozent dieser Fehler. Die verbleibenden Fehler haben meist eine Ursache: beschädigtes Quellaudio, ein nicht unterstützter Codec oder eine wirklich stumme Datei. Mit dem Manifest können Sie diese selektieren, ohne die erfolgreichen Dateien erneut laufen zu lassen.
Sollte ich Webhooks oder Polling verwenden, um den Status von Batch-Jobs zu verfolgen?
Bei Batches mit wenigen hundert Dateien ist Polling in einem Intervall von 15–30 Sekunden einfach und effektiv. Bei Batches mit Tausenden Dateien eliminieren Webhooks den wiederholten HTTP-Overhead und verringern die Gefahr, einen abgeschlossenen Job zu übersehen. Der Nachteil: Webhooks erfordern einen stabilen öffentlichen Endpunkt, was zusätzlichen Infrastrukturaufwand bedeutet. Den Entscheidungsbaum finden Sie im Beitrag Webhook vs. Polling für Transkripte.
Wie gehe ich mit einem Archiv in gemischten Sprachen um?
Entweder klassifizieren Sie die Sprache jeder Datei bereits vor der Übermittlung vor (ein leichtgewichtiger Language-ID-Durchlauf reicht dafür), oder Sie verwenden ein mehrsprachiges Modell, das alle Ihre Sprachen auf einer einzigen Modellebene abdeckt. AssemblyAI Universal-2 unterstützt 99 Sprachen, Deepgram Nova-3 Multilingual über 30. Die Sprache bei der Übermittlung explizit anzugeben ist im großen Maßstab immer schneller und genauer als die automatische Erkennung.
Wann lohnt es sich, ein benutzerdefiniertes Vokabular einzurichten?
Jedes Archiv mit fachspezifischer Terminologie – medizinisch, juristisch, technisch oder stark markengeprägt – profitiert von einer Vokabularliste. Sowohl Deepgram (bis zu 100 Keyterms pro Anfrage) als auch AssemblyAI (bis zu 1.000 Begriffe bei Universal-3 Pro) unterstützen Inline-Vokabularhinweise ohne separaten Trainingsschritt. Bauen Sie die Liste einmal auf und verwenden Sie sie für jede Datei im Batch. Der Genauigkeitsgewinn bei bekannten Begriffen ist erheblich.
Quellen
- Deepgram-Preise, abgerufen im Juli 2026: https://deepgram.com/pricing
- Deepgram API-Rate-Limits, abgerufen im Juli 2026: https://developers.deepgram.com/reference/api-rate-limits
- Deepgram-Dokumentation zum Keyterm-Prompting, abgerufen im Juli 2026: https://developers.deepgram.com/docs/keyterm
- AssemblyAI-Preise, abgerufen im Juli 2026: https://www.assemblyai.com/pricing
- AssemblyAI-Leitfaden zur Batch-Transkription im großen Maßstab, abgerufen im Juli 2026: https://www.assemblyai.com/blog/large-scale-audio-transcription
- Amazon-Transcribe-Preise, abgerufen im Juli 2026: https://aws.amazon.com/transcribe/pricing/
- OpenAI-Transkriptionspreise, abgerufen im Juli 2026: https://developers.openai.com/api/docs/pricing
Try transcription free
Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.
Related Articles
How to Add Timestamps to a Transcript
Learn how to add timestamps to a transcript with an audio-to-text tool, then export timestamped SRT or VTT subtitle files for easy navigation and editing.
How to Transcribe a Conference Talk to Text
Learn how to transcribe a conference talk or keynote to text, label speakers, and export SRT, VTT, or TXT using a straightforward upload or URL workflow.