Speech Recognition — co to je, technologie a princip fungování

Autor: IT Sectr Publikováno: 2026-07-19 Doba čtení: 10 min

Speech Recognition (ASR) — technologie automatického rozpoznávání řeči, která převádí audio signál na textovou sekvenci. Moderní systémy používají deep learning: enkodér (Conformer, Whisper, BiLSTM + CTC) převádí spektrogram audia na sekvenci skrytých stavů, dekodér (CTC greedy decoding, Beam Search, Transformer decoder) tvoří text. V mobilních aplikacích se Speech Recognition používá pro hlasový vstup, hlasové asistenty, automatický přepis hovorů a funkce přístupnosti pro osoby s motorickým postižením. Podle Google Cloud Speech-to-Text, 2025 dosahuje cloudový ASR WER 7 % pro angličtinu a 12 % pro ruštinu při SNR > 15 dB.

Hlavní body

  • Speech Recognition — převod řeči na text (ASR) pomocí neuronových sítí
  • Android SpeechRecognizer — on-device + cloud ASR, 60+ jazyků, 7–12 % WER
  • SFSpeechRecognizer — nativní rozpoznávání iOS, on-device od iOS 17
  • Vosk — offline ASR, 20+ jazyků, 0.5–1.5x latence reálného času, 13 % WER ruština
  • Whisper — ASR od OpenAI, on-device přes Core ML / TFLite, vícejazyčný

Co je Speech Recognition: principy ASR

Automatic Speech Recognition (ASR) — pipeline: audio → předzpracování (16 kHz mono, snížení šumu, VAD) → extrakce funkcí (MFCC, LogMel FilterBank) → akustický model (neuronová síť: CTC / RNNT / Transducer) → jazykový model (LM) → dekódování (text). Moderní end-to-end modely (Whisper, Google USM, Conformer CTC) spojují akustický a jazykový model do jednoho Transformeru.

ASR architektury pro mobilní zařízení: CTC — rychlá, používá se ve Vosk, Android native. RNNT — streaming ASR, nízká latence. Conformer — hybrid CNN + Transformer, nejlepší přesnost.

ASR metriky: WER (Word Error Rate) — procento nahrazených, smazaných, vložených slov. Google Cloud ASR — 7 % WER (EN), 12 % (RU). Vosk — 13 % (RU), 9 % (EN).

ASR ŘešeníWER (EN)WER (RU)RTFOn-device
Google Cloud ASR7 %12 %0.3Ne
Android SpeechRecognizer8 %13 %0.5–1Ano
SFSpeechRecognizer7 %12 %0.3–0.8Ano
Vosk (vosk-model-small-ru)9 %13 %0.3–0.8Ano
Whisper Small6 %10 %2–6Ano

Android SpeechRecognizer API

Android SpeechRecognizer — vestavěná třída v Android SDK pro rozpoznávání řeči. Funguje ve dvou režimech: cloud (server Google) — vysoká přesnost, vyžaduje internet; on-device (od Android 10+) — vestavěný ASR model GBoard, 20+ jazyků, WER 15–18 %. Podporuje 60+ jazyků přes RecognizerIntent.EXTRA_LANGUAGE.

kotlin
// Rozpoznávání řeči 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)

iOS SFSpeechRecognizer a Speech Framework

SFSpeechRecognizer — rámec Apple pro rozpoznávání řeči na iOS, macOS, watchOS. Dostupný od iOS 10. On-device režim — od iOS 17. Podporuje 60+ jazyků.

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()

Vosk: offline rozpoznávání ve 20+ jazycích

Vosk — open-source ASR knihovna od Alpha Cephei pro offline rozpoznávání řeči. Založena na Kaldi ASR toolkit + CTC modelech. Podporuje 20+ jazyků.

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) // 100 ms audio
    audioRecord.read(buffer, 0, buffer.size)
    if (recognizer.acceptWaveform(buffer)) {
        val result = recognizer.result // JSON
        text += JSONObject(result).getString("text")
    }
}

Whisper OpenAI na mobilních zařízeních

Whisper — model OpenAI pro rozpoznávání řeči, trénovaný na 680 000 hodinách audio (vícejazyčný, 99 jazyků). K dispozici ve velikostech: tiny (39M), small (244M), medium (769M).

swift
// Whisper Core ML na 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) // konečný text s časovými razítky
}

Použití Speech Recognition v mobilních aplikacích

Hlasový vstup textu — nejmasivnější použití ASR. Přepis hovorů a schůzek — ASR pro automatickou tvorbu stenogramů. Hlasoví asistenti — Siri, Google Assistant, Alexa. Přístupnost — ovládání aplikace hlasem přes GrammarRecogniser (Vosk).

kotlin
// Hlasový asistent s 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)
    }
})

Často kladené otázky

Jak zlepšit přesnost rozpoznávání řeči v hlučném prostředí?

Použijte potlačení šumu (WebRTC NS). Aplikujte VAD pro oříznutí neřečových částí. Whisper je odolnější vůči šumu.

Lze rozpoznávat řeč bez internetu na iOS?

Ano, od iOS 17 SFSpeechRecognizer podporuje on-device režim. Alternativy: Vosk (offline), Whisper Core ML (offline).

Jaké jazyky podporuje Android SpeechRecognizer?

Podporuje 60+ jazyků přes RecognizerIntent.EXTRA_LANGUAGE.

Jak nakonfigurovat rozpoznávání řeči pro konkrétní doménu?

Použijte adaptaci modelu: Whisper fine-tuning, Vosk — výměna jazykového modelu.

Jak vypočítat WER pro ASR?

WER = (S + D + I) / N. Použijte jiwer (Python) nebo WER Calculator (JavaScript).

Shrnutí

  • Speech Recognition (ASR) — převod audia na text pomocí CTC/RNNT/Transformer
  • Android SpeechRecognizer — 60+ jazyků, cloud + on-device, WER 8–15 %
  • SFSpeechRecognizer (iOS) — 60+ jazyků, on-device od iOS 17, WER 7–14 %
  • Vosk — offline ASR, 20+ jazyků, RTF 0.3–0.8, WER 9–13 %
  • Whisper — nejpřesnější ASR (WER 6 % EN), 99 jazyků
  • On-device — soukromí, bez internetu, Vosk/Whisper Core ML
  • Použití — hlasový vstup, přepis, asistenti, přístupnost

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také