Spracherkennung — was ist das, Technologien und Funktionsweise

Autor: IT Sectr Veröffentlicht: 2026-07-19 Lesezeit: 10 Min.

Spracherkennung (ASR) ist eine Technologie zur automatischen Spracherkennung, die ein Audiosignal in eine Textsequenz umwandelt. Moderne Systeme nutzen Deep Learning: Ein Encoder (Conformer, Whisper, BiLSTM + CTC) wandelt das Audiospektrogramm in eine Sequenz verborgener Zustände um, ein Decoder (CTC Greedy Decoding, Beam Search, Transformer Decoder) erzeugt den Text. In mobilen Anwendungen wird Spracherkennung für Spracheingabe, Sprachassistenten, automatische Gesprächstranskription und Barrierefreiheitsfunktionen für Menschen mit motorischen Einschränkungen eingesetzt. Laut Google Cloud Speech-to-Text, 2025 erreicht Cloud-ASR eine WER von 7% für Englisch und 12% für Russisch bei SNR > 15 dB.

Wichtige Punkte

  • Spracherkennung — Umwandlung von Sprache in Text (ASR) mit neuronalen Netzen
  • Android SpeechRecognizer — On-Device + Cloud ASR, 60+ Sprachen, 7–12% WER
  • SFSpeechRecognizer — iOS native Erkennung, On-Device seit iOS 17
  • Vosk — Offline ASR, 20+ Sprachen, 0.5–1.5x Echtzeit-Latenz, 13% WER Russisch
  • Whisper — OpenAI ASR, On-Device über Core ML / TFLite, mehrsprachig

Was ist Spracherkennung: ASR-Prinzipien

Automatic Speech Recognition (ASR) ist eine Pipeline: Audio → Vorverarbeitung (16 kHz Mono, Rauschunterdrückung, VAD — Spracherkennung) → Merkmalsextraktion (MFCC, LogMel FilterBank) → Akustisches Modell (neuronales Netz: CTC / RNNT / Transducer) → Sprachmodell (LM) → Dekodierung (Text). Moderne End-to-End-Modelle (Whisper, Google USM, Conformer CTC) kombinieren das akustische Modell und das Sprachmodell in einem einzigen Transformer, was die Pipeline vereinfacht und die Genauigkeit verbessert.

ASR-Architekturen für mobile Geräte: CTC (Connectionist Temporal Classification) — schnell, erfordert keine Audio-Text-Ausrichtung, wird in Vosk und Android nativ verwendet. RNNT (Recurrent Neural Network Transducer) — Streaming-ASR, niedrige Latenz (Google USM). Conformer — ein Hybrid aus CNN + Transformer, beste Genauigkeit aber schwerer: Whisper Medium (769M Parameter) — 30–60x Latenz. Für On-Device ist CTC bevorzugt: Vosk CTC-Modelle belegen 50–100 MB, Latenz 0.3–0.8x Echtzeit.

ASR-Metriken: WER (Word Error Rate) — Prozentsatz der ersetzten, gelöschten und eingefügten Wörter im Vergleich zur Referenz. Google Cloud ASR — 7% WER (EN), 12% (RU). Vosk — 13% (RU), 9% (EN). Whisper Small — 6% (EN), 10% (RU). CER (Character Error Rate) — ähnlich, auf Zeichenebene. Real-Time Factor (RTF) — Verarbeitungszeit / Audiodauer. RTF < 1 — schneller als Echtzeit. RTF < 0.3 — Echtzeit-ASR. Spracheingabe erfordert RTF < 1, Transkription erfordert RTF < 3.

ASR-LösungWER (EN)WER (RU)RTFOn-Device
Google Cloud ASR7%12%0.3Nein
Android SpeechRecognizer8%13%0.5–1Ja (hybrid)
SFSpeechRecognizer7%12%0.3–0.8Ja (seit iOS 17)
Vosk (vosk-model-small-ru)9%13%0.3–0.8Ja
Whisper Small6%10%2–6Ja

VAD (Voice Activity Detection) — Erkennung von Sprachaktivität, die Sprache von Stille und Rauschen trennt. WebRTC VAD ist der Standard für mobiles ASR: 30 ms Frames, drei Modi (0, 1, 2 — von konservativ bis aggressiv). VAD reduziert den RTF um das 1.5–3fache (überspringt Nicht-Sprachsegmente). Silero VAD (MIT) ist ein neuronales VAD, genauer als WebRTC (94% vs 85% ROC AUC), 5–10 ms Latenz, TFLite und Core ML. Für Produktions-ASR verwenden Sie die Kaskade VAD → ASR: Dies reduziert Fehlalarme und beschleunigt die Verarbeitung.

Android SpeechRecognizer API

Android SpeechRecognizer ist eine in das Android SDK integrierte Klasse zur Spracherkennung. Sie arbeitet in zwei Modi: Cloud (Google-Server) — hohe Genauigkeit, erfordert Internet; On-Device (seit Android 10+) — GBoard eingebettetes ASR-Modell, 20+ Sprachen, WER 15–18%. SpeechRecognizer gibt während des Sprechens Zwischenergebnisse (Teilergebnisse) und den endgültigen Text zurück. Unterstützt 60+ Sprachen über RecognizerIntent.EXTRA_LANGUAGE. Empfohlen für Spracheingabe — schnelle Integration, kostenlos.

SpeechRecognizer API: Erstellung über SpeechRecognizer.createSpeechRecognizer(context). Intent mit RecognizerIntent.ACTION_RECOGNIZE_SPEECH mit Extras: LANGUAGE_MODEL_FREE_FORM (Freitext) oder LANGUAGE_MODEL_WEB_SEARCH (Suchanfragen). Ergebnisse über RecognitionListener: onReadyForSpeech → onBeginningOfSpeech → onRmsChanged → onPartialResults → onResults. Für kontinuierliche Erkennung (Always-Listening-Modus) — starten Sie den Recognizer nach onResults neu. Um Batterie zu sparen, verwenden Sie onDeviceOnly = true.

kotlin
// Android SpeechRecognizer
val recognizer = SpeechRecognizer.createSpeechRecognizer(context)
recognizer.setRecognitionListener(object : RecognitionListener {
    override fun onResults(results: Bundle) {
        val text = results
            .getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)
            ?.firstOrNull() ?: ""
        showResult(text)
    }
    override fun onPartialResults(partialResults: Bundle) {
        val partial = partialResults
            .getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)
            ?.firstOrNull() ?: ""
        showPartial(partial)
    }
})

val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {
    putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
        RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
    putExtra(RecognizerIntent.EXTRA_LANGUAGE, "ru-RU")
}
recognizer.startListening(intent)

On-Device vs Cloud unter Android: On-Device funktioniert ohne Internet (Android 10+, Pixel 4+, Samsung S20+). Cloud ist genauer (Google Neural Network ASM Model) hat aber eine höhere Latenz (300–800 ms inklusive Netzwerk). Für Spracheingabe verwenden Sie einen hybriden Ansatz: Cloud mit Fallback auf On-Device bei fehlendem Netzwerk. Android SpeechRecognizer wählt den Modus automatisch basierend auf RecognizerIntent.EXTRA_PREFER_OFFLINE. Für maximale Privatsphäre — setzen Sie onDeviceOnly = true (aber die Genauigkeit beträgt 15–18% WER für Russisch).

iOS SFSpeechRecognizer und Speech Framework

SFSpeechRecognizer ist Apples Framework zur Spracherkennung unter iOS, macOS und watchOS. Verfügbar seit iOS 10. On-Device-Modus — seit iOS 17 (lokales Modell, kein Internet erforderlich). Unterstützt 60+ Sprachen. Genauigkeit: WER 7–12% (On-Device — 12–15%). SFSpeechRecognizer ist über Speech.framework verfügbar — keine zusätzlichen SDKs erforderlich. Berechtigungsanfrage über SFSpeechRecognizer.requestAuthorization.

SFSpeechRecognizer API: SFSpeechRecognizer(locale: Locale(identifier: "ru_RU")) → SFSpeechAudioBufferRecognitionRequest (Live-Audio) oder SFSpeechURLRecognitionRequest (Audiodatei). Streaming über recognitionTask(with:delegate:) mit SFSpeechRecognitionTaskDelegate (didHypothesizeTranscription — teilweise, didFinishRecognition — endgültig). On-Device-Modus: request.requiresOnDeviceRecognition = true. Für iOS 15+: request.shouldReportPartialResults = true (Streaming-Ergebnis mit niedriger Latenz).

swift
let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "ru_RU"))
guard recognizer.isAvailable else { return }

let request = SFSpeechAudioBufferRecognitionRequest()
request.requiresOnDeviceRecognition = true
request.shouldReportPartialResults = true

recognitionTask = recognizer.recognitionTask(with: request) { result, error in
    if let result = result {
        let text = result.bestTranscription.formattedString
        let isFinal = result.isFinal
        DispatchQueue.main.async {
            textView.text = text
        }
    }
}

audioEngine.inputNode.installTap(config: bufferConfig) { buffer, _ in
    request.append(buffer)
}
audioEngine.prepare()
try audioEngine.start()

SFSpeechRecognizer vs Android SpeechRecognizer: SFSpeechRecognizer bietet natives Streaming ohne Neustart (Android erfordert wiederholtes startListening). On-Device unter iOS ist seit iOS 17 verfügbar (Android seit Android 10). Beide erfordern eine Benutzerberechtigung (NSMicrophoneUsageDescription + NSSpeechRecognitionUsageDescription für iOS, RECORD_AUDIO für Android). SFSpeechRecognizer ist genauer bei Englisch (On-Device), Android SpeechRecognizer ist genauer bei Russisch (Cloud). Für iOS vor 17 ist On-Device nicht verfügbar — Internet erforderlich. Für iOS 17+ liefert On-Device eine WER von 12–14% für Russisch.

Vosk: Offline-Erkennung in 20+ Sprachen

Vosk ist eine Open-Source-ASR-Bibliothek von Alpha Cephei zur Offline-Spracherkennung. Sie basiert auf dem Kaldi ASR Toolkit + CTC-Modellen. Unterstützt 20+ Sprachen: Russisch, Englisch, Deutsch, Französisch, Spanisch, Chinesisch, Arabisch. Modelle von 50 MB (klein — 50 MB, ru) bis 1.2 GB (groß — 1.2 GB, en). Vosk läuft auf Android (JNI), iOS (C++-Wrapper), Linux, Windows, Raspberry Pi. RTF: 0.3–0.8 auf Flaggschiff-Geräten. Vosk ist die beste Wahl für vollständiges Offline-ASR.

Vosk API: VoskWaveformModelLoader (Modell laden) → VoskWaveformRecognizer (Erkenner erstellen) → recognizer.createGrammar(list) oder recognizer.getResult() / recognizer.getPartialResult(). Grammatikunterstützung (fester Befehlssatz) — GrammarRecogniser — liefert RTF 0.1–0.3 (3x schneller). Für Spracheingabe verwenden Sie freie Erkennung (getResult). Für Sprachbefehle — GrammarRecogniser (99% Genauigkeit bei Befehlen). Vosk unterstützt auch Sprecheridentifikation (Stimmvektoranalyse).

kotlin
// Vosk offline ASR
val model = VoskModel("model/vosk-model-small-ru-0.22")
model.load()

val recognizer = VoskRecognizer(model, 16000.0f)
recognizer.setWords(true)

audioRecord.startRecording()
while (isListening) {
    val buffer = ByteArray(3200) // 100ms audio
    audioRecord.read(buffer, 0, buffer.size)
    if (recognizer.acceptWaveform(buffer)) {
        val result = recognizer.result // JSON
        text += JSONObject(result).getString("text")
    }
}

Vosk vs Cloud-ASR: Vosk ist vollständig offline — Privatsphäre, null Latenz, kostenlos. Cloud (Google, Yandex) ist in komplexen Szenarien (Rauschen, Akzent) genauer — WER 3–5% niedriger. Vosk ist ideal für: Spracheingabe ohne Internet, Barrierefreiheits-Apps, Gesprächstranskription (Privatsphäre). Cloud-ASR ist für Sprachassistenten, wo Genauigkeit wichtiger ist als Privatsphäre. Empfehlung: Vosk für offline, SFSpeechRecognizer (iOS) / SpeechRecognizer (Android) für online — kombinieren Sie Ansätze für verschiedene Szenarien.

Whisper OpenAI auf mobilen Geräten

Whisper ist ein Modell von OpenAI zur Spracherkennung, trainiert auf 680.000 Stunden Audio (mehrsprachig, 99 Sprachen). Verfügbar in Größen: tiny (39M, WER 10% EN, 15% RU), small (244M, WER 6% EN, 10% RU), medium (769M, WER 4.5% EN, 8% RU). Whisper läuft auf mobilen Geräten über Core ML (iOS, ANE) und TFLite (Android, GPU). Whisper tiny: RTF 4–10 auf CPU, RTF 0.5–2 auf GPU (Android). Whisper small: RTF 2–6 auf GPU. Whisper medium — RTF 8–15, nur für Nicht-Echtzeit.

Whisper auf iOS (Core ML): Apple MLX Whisper — eine Implementierung von Whisper für Core ML und MLX (Apple Neural Engine). Whisper tiny Core ML auf iPhone 15 Pro: RTF 0.3–0.8 (schneller als Echtzeit!). Whisper small Core ML: RTF 1–3. Whisper Core ML nutzt ANE auf A17 Pro (Neural Engine 35 TOPS). Hugging Face Transformers → Export nach Core ML über coremltools-whisper. Für Streaming verwenden Sie WhisperStitcher (Chunking + Stitching). Whisper auf iOS ist das genaueste On-Device-ASR (WER 6% EN, 10% RU).

swift
// Whisper Core ML on iOS
import MLXWhisper

let model = try WhisperModel(from: "whisper-tiny")
let audio = try AudioUtils.loadAudio(url: audioURL)
let segments = try model.transcribe(audio: Audio, options: TranscribeOptions(
    language: "ru",
    wordTimestamps: true,
    temperature: 0.0
))

for segment in segments {
    print(segment.text) // final text with timestamps
}

Whisper vs Vosk: Whisper ist genauer (6% vs 9% WER EN), unterstützt 99 Sprachen, beinhaltet Spracherkennung, Zeichensetzung und Emotionserkennung. Whisper ist schwerer (39M–769M vs 50M Vosk), langsamer in Echtzeit (RTF 0.5–6 vs 0.3–0.8). Whisper tiny ist in der Geschwindigkeit mit Vosk vergleichbar (RTF 0.5–2 GPU). Vosk ist leichter, schneller, besser für Streaming-Echtzeit. Whisper ist für einmalige Transkription, wo Genauigkeit vor Geschwindigkeit priorisiert wird. Vosk ist für Echtzeit-Spracheingabe. Verwenden Sie Whisper für endgültigen Text, Vosk für interaktive Nutzung.

Einsatz der Spracherkennung in mobilen Anwendungen

Spracheingabe — die häufigste Anwendung von ASR: Diktieren von Nachrichten, Suchanfragen, Notizen. Anforderung: RTF < 1 (Echtzeit), Teilergebnisse (Text während des Sprechens sehen). Android Gboard und iOS-Tastatur haben integriertes ASR (On-Device, WER 12–18%). Für benutzerdefinierte Implementierung verwenden Sie Android SpeechRecognizer / SFSpeechRecognizer. Für maximale Genauigkeit — Cloud-ASR + Vosk-Fallback. Für Spracheingabe mit 98% Genauigkeit auf Russisch — kombinieren Sie Vosk (offline) + Yandex SpeechKit (online).

Gesprächs- und Besprechungstranskription — ASR zur automatischen Erstellung von Transkripten. Anforderungen: keine Latenzanforderung, WER < 10%, Sprecherdiarisierung (wer spricht). Whisper Small (offline) + pyannote-audio (Diarisierung) ist der Standard-Stack für die Transkription. Auf iOS — Whisper Core ML (RTF 1–3, WER 6–10%). Auf Android — Whisper TFLite (RTF 2–6, WER 8–12%) oder Google Cloud ASR + Diarisierung. Für Privatsphäre (Gespräche gehen nicht auf den Server) — Whisper auf dem Gerät. Diarisierungsgenauigkeit: 80–90% DER.

Sprachassistenten — Siri (SFSpeechRecognizer), Google Assistant (Android SpeechRecognizer), Alexa (On-Device ASR). Benutzerdefinierter Assistent: ASR → NLU (Natural Language Understanding) → Aktion → TTS. ASR ist die erste Stufe — sie bestimmt die Genauigkeit der gesamten Kette. Für NLU verwenden Sie RASA, Snips NLU (On-Device) oder Cloud NLU (Dialogflow, Amazon Lex). Für TTS: Android TTS / iOS AVSpeechSynthesizer. Ein On-Device-Sprachassistent (Vosk + RASA + TTS) ist völlig privat, funktioniert ohne Internet, Latenz < 2 Sekunden pro Anfrage.

kotlin
// Voice assistant with Android SpeechRecognizer + TTS
recognizer.setRecognitionListener(object : RecognitionListener {
    override fun onResults(results: Bundle) {
        val query = results.getStringArrayList(
            SpeechRecognizer.RESULTS_RECOGNITION
        )?.firstOrNull() ?: return

        val intentResult = nluService.classify(query)
        textToSpeech.speak(intentResult.response)
        executeAction(intentResult.action)
    }
})

Barrierefreiheit für Menschen mit motorischen Einschränkungen — Spracherkennung ermöglicht die Steuerung der App per Sprache: Kontakte öffnen, Nachricht senden, Nummer wählen. Android Voice Access und iOS Switch Control + VoiceOver sind integrierte Lösungen. Für benutzerdefinierte Implementierung: GrammarRecogniser (Vosk) mit einem festen Befehlssatz (50–100 Sätze) — RTF 0.1–0.3, 99% Genauigkeit. Vosk Grammar ermöglicht die Definition von Grammatiken im BNF-Format. Geschwindigkeit ist entscheidend für Barrierefreiheit — Vosk Grammar ist 5x schneller als freie Erkennung und verbraucht weniger Akku.

Häufig gestellte Fragen

Wie verbessert man die Genauigkeit der Spracherkennung in einer lauten Umgebung?

Verwenden Sie Rauschunterdrückung (WebRTC NS — in Android integriert, iOS AVAudioSession). Wenden Sie VAD an, um Nicht-Sprachabschnitte herauszuschneiden. Erhöhen Sie den SNR durch ein Mikrofon mit Beamforming (gerichtete Aufnahme) oder ein Multi-Mikrofon-Array. Whisper ist widerstandsfähiger gegen Rauschen (trainiert auf 680K Stunden mit Rauschen). Vosk mit Rauschunterdrückung über WebRTC gibt +5% WER bei 50 dB Rauschen. Testen Sie für die Produktion mit den Rauschbedingungen Ihrer Anwendung.

Kann Sprache auf iOS ohne Internet erkannt werden?

Ja, seit iOS 17 unterstützt SFSpeechRecognizer den On-Device-Modus (requiresOnDeviceRecognition = true). Auf iOS 16 und älter ist On-Device nicht verfügbar — Internet ist für Siri/Gboard ASR erforderlich. Alternativen: Vosk über C++-Wrapper (offline, WER 12–15%), Whisper Core ML (offline, WER 6–10%, Latenz 2–6x). Für Spracheingabe auf iOS 16- verwenden Sie Vosk. Whisper Core ML ist für Audiodateitranskription (nicht Echtzeit). Alle Lösungen sind völlig privat und funktionieren ohne Internet.

Welche Sprachen unterstützt Android SpeechRecognizer?

Android SpeechRecognizer unterstützt 60+ Sprachen über RecognizerIntent.EXTRA_LANGUAGE. Die vollständige Liste wird durch Locale.getAvailableLocales() auf dem Gerät bestimmt. Russisch, Englisch, Deutsch, Französisch, Spanisch, Italienisch sind immer verfügbar. Chinesisch, Japanisch, Koreanisch hängen vom Gerätemodell ab. On-Device-Modus (Android 10+) — 20+ Sprachen. Im Gegensatz zu Vosk (20 Sprachen) und SFSpeechRecognizer (60 Sprachen) ist Android SpeechRecognizer von der Version der Google Play Services abhängig.

Wie richtet man Spracherkennung für eine bestimmte Domäne (Medizin, Jura) ein?

Verwenden Sie Modellanpassung: Whisper-Feintuning auf 100+ Stunden domänenspezifischem Audio (Hugging Face Trainer). Vosk — ersetzen Sie das Sprachmodell (ARPA-Format) durch ein domänenspezifisches Textkorpus (100K+ Sätze). Google Cloud ASR — Phrase Hints (domänenspezifische Wörter, DL=0/1/2). SFSpeechRecognizer — SFSpeechRecognitionTaskDelegate mit contextualStrings (Array von Hinweiszeichenfolgen). Domänenanpassung verbessert die Genauigkeit um 15–30% WER für spezifische Terminologie. Minimum: 500 domänenspezifische Audiodateien mit Transkriptionen.

Wie berechnet man WER (Word Error Rate) für ASR?

WER = (S + D + I) / N, wobei S — Substitutionen, D — Löschungen, I — Einfügungen, N — Anzahl der Wörter im Referenztext. Beispiel: Referenz = „Hallo wie geht es dir“, Vorhersage = „Hallo was machst du“ → S=1 (wie→was), D=1 (gelöscht „geht es dir“?), I=0 → WER = 2/3 = 66%. Verwenden Sie die Bibliothek jiwer (Python) oder den WER Calculator (JavaScript) zur Berechnung. CER ist ähnlich auf Zeichenebene. Für Russisch ist CER aufgrund der Wortlänge 20–30% niedriger als WER.

Zusammenfassung

  • Spracherkennung (ASR) — Umwandlung von Audio in Text über CTC/RNNT/Transformer-Modelle
  • Android SpeechRecognizer — 60+ Sprachen, Cloud + On-Device (Android 10+), WER 8–15%
  • SFSpeechRecognizer (iOS) — 60+ Sprachen, On-Device seit iOS 17, WER 7–14%
  • Vosk — Offline ASR, 20+ Sprachen, RTF 0.3–0.8, WER 9–13%
  • Whisper — genauestes ASR (WER 6% EN), 99 Sprachen, aber schwer für Echtzeit
  • On-Device — Privatsphäre, kein Internet, Vosk/Whisper Core ML
  • Anwendungen — Spracheingabe, Transkription, Assistenten, Barrierefreiheit

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch