Sofortantwort
Speech-to-Text einfach erklärt
Automatische Umwandlung von Sprache in geschriebenen Text.
- Kurz gesagt
- Wandelt Audio in Text um – lokal oder cloud-basiert
- Typischer Einsatz
- Meeting-Transkription, Untertitelung, Voice Assistants
- Wichtig zu wissen
- Anwendungen: Transkription, Untertitel, Voice Assistants, Accessibility
Speech-to-Text im Überblick
Speech-to-Text (STT) wandelt gesprochene Sprache automatisch in geschriebenen Text um. Moderne KI-Modelle verstehen dabei Kontext, verschiedene Akzente und sogar Hintergrundgeräusche.
Der Prozess:
Audio Input
│
▼
┌─────────────────┐
│ Preprocessing │ Rauschunterdrückung, Normalisierung
└────────┬────────┘
│
▼
┌─────────────────┐
│ Feature │ Mel-Spektrogramm, Audio-Features
│ Extraction │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Neural Network │ Transformer (Whisper) oder RNN
│ (ASR Model) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Decoding │ Beam Search, Language Model
└────────┬────────┘
│
▼
Text Output
Aktuelle Modelle (März 2026):
| Modell | Stärken | Latenz | Kosten |
|---|---|---|---|
| Whisper large-v3 | Genauigkeit, multilingual | Mittel | Kostenlos (lokal) |
| Deepgram Nova-2 | Echtzeit, niedrige Latenz | Sehr niedrig | $0.0043/min |
| AssemblyAI | Features (Diarization, Summary) | Niedrig | $0.01/min |
| Google STT | Viele Sprachen, Streaming | Niedrig | $0.006/min |
Technisch betrachtet
Whisper lokal nutzen
import whisper
# Modell laden (tiny, base, small, medium, large-v3)
model = whisper.load_model("large-v3")
# Transkribieren
result = model.transcribe(
"audio.mp3",
language="de", # Optional, auto-detect möglich
task="transcribe", # oder "translate" für Übersetzung
)
print(result["text"])
# Mit Timestamps
for segment in result["segments"]:
print(f"[{segment['start']:.2f} - {segment['end']:.2f}] {segment['text']}")
Echtzeit-Transkription
import pyaudio
import numpy as np
from faster_whisper import WhisperModel
model = WhisperModel("base", device="cuda")
# Audio-Stream
p = pyaudio.PyAudio()
stream = p.open(
format=pyaudio.paFloat32,
channels=1,
rate=16000,
input=True,
frames_per_buffer=1024
)
buffer = []
while True:
data = stream.read(1024)
buffer.append(np.frombuffer(data, dtype=np.float32))
# Alle 3 Sekunden transkribieren
if len(buffer) >= 48: # 3s bei 16kHz
audio = np.concatenate(buffer)
segments, _ = model.transcribe(audio)
for segment in segments:
print(segment.text, end=" ", flush=True)
buffer = []
Cloud-API (Deepgram)
from deepgram import Deepgram
import asyncio
async def transcribe_file(file_path):
dg = Deepgram("YOUR_API_KEY")
with open(file_path, "rb") as audio:
source = {"buffer": audio, "mimetype": "audio/mp3"}
response = await dg.transcription.prerecorded(
source,
{
"model": "nova-2",
"language": "de",
"punctuate": True,
"diarize": True, # Sprecher unterscheiden
"smart_format": True,
}
)
return response["results"]["channels"][0]["alternatives"][0]["transcript"]
Word Error Rate (WER)
def word_error_rate(reference, hypothesis):
"""
WER = (Substitutions + Deletions + Insertions) / Reference Words
"""
import jiwer
wer = jiwer.wer(reference, hypothesis)
return wer
# Beispiel
reference = "Das ist ein Test für die Spracherkennung"
hypothesis = "Das ist ein Fest für die Spracherkennung"
# WER = 1/8 = 12.5% (ein Wort falsch)
Optimierung
Für bessere Ergebnisse:
| Technik | Beschreibung |
|---|---|
| Preprocessing | Rauschunterdrückung, Normalisierung |
| Prompt/Hotwords | Erwartete Begriffe vorgeben |
| Language Hint | Sprache explizit angeben |
| VAD | Voice Activity Detection für Segmentierung |
| Post-Processing | Rechtschreibkorrektur, Formatierung |
Whisper mit Prompt:
result = model.transcribe(
"audio.mp3",
initial_prompt="Transkript eines Meetings über Machine Learning, "
"TensorFlow, PyTorch und Transformer-Modelle."
)
Speaker Diarization
# Mit pyannote.audio
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1")
diarization = pipeline("audio.wav")
for turn, _, speaker in diarization.itertracks(yield_label=True):
print(f"[{turn.start:.1f}s - {turn.end:.1f}s] {speaker}")
# Output:
# [0.0s - 2.5s] SPEAKER_00
# [2.5s - 5.0s] SPEAKER_01
# [5.0s - 7.5s] SPEAKER_00Schritt für Schritt
Speech-to-Text als verlässlichen Ablauf gestalten
Eine Transkription ist erst dann nützlich, wenn Audioqualität, Sprache, Datenschutz und der Umgang mit Unsicherheit zum tatsächlichen Einsatz passen.
Zweck und Datenweg klären
01
Definiere, welche Gespräche oder Aufnahmen verarbeitet werden dürfen, wer den Text nutzt und wie lange Audio und Transkript benötigt werden.
Audioquelle → Zweck → Zugriff → AufbewahrungAudioqualität und Sprache erfassen
02
Berücksichtige Mikrofon, Nebengeräusche, Sprecherwechsel, Fachsprache und Sprachen, bevor Modell und Workflow gewählt werden.
Audioprofil → Sprache → Modelloption → QualitätsrisikoTranskription strukturiert erzeugen
03
Erhalte Text mit Zeitbezug und – wenn nötig – einer klar gekennzeichneten Sprecherzuordnung.
Audio → Segmente → Text + ZeitstempelQualität auf realen Beispielen prüfen
04
Bewerte Fehler besonders bei Namen, Fachbegriffen, Zahlen und Stellen, an denen der Text eine Folgeaktion auslöst.
Stichprobe → Fehlerbild → Korrekturaufwand → FreigabeUnsicherheit und Korrektur einplanen
05
Markiere problematische Stellen und ermögliche eine einfache Prüfung, statt fehlerhaften Text als verbindliche Wahrheit weiterzugeben.
niedrige Sicherheit → Review → korrigierter Text
Konkretes Beispiel
Beispiel: Gesprächsnotizen für ein Projektteam
Ein Team möchte Besprechungen schneller dokumentieren, ohne vertrauliche Inhalte unkontrolliert zu verbreiten.
Anforderung
Gesprochene Entscheidungen sollen nach der Sitzung auffindbar sein, Fachbegriffe und Verantwortlichkeiten müssen aber geprüft werden.
Kontrollierter Workflow
Zugelassene Aufnahmen, begrenzte Zugriffe, Transkripte mit Zeitstempeln, klare Prüfung wichtiger Passagen und ein festgelegtes Löschkonzept.
STT spart Schreibarbeit; verbindlich wird ein Transkript erst durch passende Prüfung und verantworteten Umgang mit den Ausgangsdaten.
Einordnung
Vorteile und Grenzen
Das spricht dafür
- Besser auffindbares Wissen: Gespräche und gesprochene Inhalte werden durchsuchbar und weiterverarbeitbar.
- Mehr Zugänglichkeit: Untertitel und Textalternativen erleichtern vielen Menschen den Zugang zu Audioinhalten.
- Schnellere Dokumentation: Routinen wie Notizen oder Erstentwürfe lassen sich deutlich beschleunigen.
Das solltest du beachten
- Fehler bleiben möglich: Akzente, Überlappungen, Lärm und Fachsprache können wichtige Aussagen verfälschen.
- Sensible Quelle: Audio und Transkripte enthalten oft personenbezogene oder vertrauliche Informationen.
- Sprecherzuordnung unsicher: Diarisierung ist eine Hypothese und braucht in kritischen Fällen Kontrolle.
Vertiefung · für FortgeschritteneVom Audio zum überprüften Text
Eine brauchbare Transkription verbindet Aufnahmequalität, Modellergebnis, Metadaten und einen klaren Korrekturprozess.
Automatische Umwandlung von Audio in zeitlich strukturierten Text.