Speech Recognition — mi ez, technológiák és működési elv

Szerző: IT Sectr Megjelenés: 2026-07-19 Olvasási idő: 10 perc

Speech Recognition (ASR) — automatikus beszédfelismerési technológia, amely az audiojelet szöveges sorozattá alakítja. A modern rendszerek deep learning-et használnak: az enkóder (Conformer, Whisper, BiLSTM + CTC) az audio spektrogramot rejtett állapotok sorozatává alakítja, a dekóder (CTC greedy decoding, Beam Search, Transformer decoder) szöveget képez. A mobilalkalmazásokban a Speech Recognition hangbemenetre, hangasszisztensekre, hívások automatikus átírására és akadálymentesítési funkciókra szolgál mozgáskorlátozott személyek számára. A Google Cloud Speech-to-Text, 2025 szerint a felhő ASR 7% WER-t ér el angol nyelven és 12%-ot orosz nyelven SNR > 15 dB esetén.

Főbb pontok

  • Speech Recognition — beszéd átalakítása szöveggé (ASR) neurális hálózatok segítségével
  • Android SpeechRecognizer — on-device + cloud ASR, 60+ nyelv, 7–12% WER
  • SFSpeechRecognizer — natív iOS felismerés, on-device iOS 17-től
  • Vosk — offline ASR, 20+ nyelv, 0.5–1.5x valós idejű késleltetés, 13% WER orosz
  • Whisper — OpenAI ASR, on-device Core ML / TFLite útján, többnyelvű

Mi az a Speech Recognition: az ASR elvei

Automatic Speech Recognition (ASR) — pipeline: audio → előfeldolgozás (16 kHz mono, zajcsökkentés, VAD — beszédaktivitás) → jellemzőkinyerés (MFCC, LogMel FilterBank) → akusztikus modell (neurális hálózat: CTC / RNNT / Transducer) → nyelvi modell (LM) → dekódolás (szöveg). A modern end-to-end modellek (Whisper, Google USM, Conformer CTC) egyetlen Transformer-ben egyesítik az akusztikus és nyelvi modellt.

ASR architektúrák mobileszközökhöz: CTC — gyors, nem igényel audio és szöveg illesztést, használata a Vosk-ban és Android natívban. RNNT — streaming ASR, alacsony késleltetés. Conformer — CNN + Transformer hibrid, legjobb pontosság, de nehezebb.

ASR metrikák: WER (Word Error Rate) — a kicserélt, törölt, beszúrt szavak százaléka a referenciához képest. Google Cloud ASR — 7% WER (EN), 12% (RU). Vosk — 13% (RU), 9% (EN).

ASR MegoldásWER (EN)WER (RU)RTFOn-device
Google Cloud ASR7%12%0.3Nem
Android SpeechRecognizer8%13%0.5–1Igen
SFSpeechRecognizer7%12%0.3–0.8Igen
Vosk (vosk-model-small-ru)9%13%0.3–0.8Igen
Whisper Small6%10%2–6Igen

VAD (Voice Activity Detection) — beszédaktivitás érzékelése, a beszéd elkülönítése a csendtől és a zajtól.

Android SpeechRecognizer API

Android SpeechRecognizer — beépített osztály az Android SDK-ban beszédfelismeréshez. Két módban működik: felhő (Google szerver) — nagy pontosság, internetet igényel; on-device (Android 10+-tól) — GBoard beépített ASR modellje, 20+ nyelv, WER 15–18%. Támogat 60+ nyelvet a RecognizerIntent.EXTRA_LANGUAGE segítségével.

kotlin
// Android SpeechRecognizer beszédfelismerés
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 és Speech Framework

SFSpeechRecognizer — Apple keretrendszer beszédfelismeréshez iOS, macOS, watchOS rendszereken. Elérhető iOS 10-től. On-device mód — iOS 17-től. Támogat 60+ nyelvet. Pontosság: WER 7–12%.

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 felismerés 20+ nyelven

Vosk — nyílt forráskódú ASR könyvtár az Alpha Cephei-től offline beszédfelismeréshez. A Kaldi ASR toolkit + CTC modelleken alapul. Támogat 20+ nyelvet. Modellek 50 MB-tól 1.2 GB-ig.

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 mobileszközökön

Whisper — OpenAI modell beszédfelismeréshez, 680 000 óra audión képezve (többnyelvű, 99 nyelv). Elérhető méretekben: tiny (39M), small (244M), medium (769M).

swift
// Whisper Core ML iOS-on
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) // végső szöveg időbélyegekkel
}

A Speech Recognition alkalmazása mobilalkalmazásokban

Hangbemeneti szöveg — az ASR legtömegesebb alkalmazása. Hívások és értekezletek átírása — ASR automatikus jegyzőkönyv készítéshez. Hangasszisztensek — Siri, Google Assistant, Alexa. Akadálymentesítés — alkalmazás vezérlése hanggal a GrammarRecogniser (Vosk) segítségével.

kotlin
// Hangasszisztens Android SpeechRecognizer + TTS segítségével
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)
    }
})

Gyakran Ismételt Kérdések

Hogyan javítható a beszédfelismerés pontossága zajos környezetben?

Használjon zajszűrést (WebRTC NS). Alkalmazzon VAD-ot a nem beszéd részek levágására. A Whisper ellenállóbb a zajjal szemben.

Fel lehet ismerni a beszédet internet nélkül iOS-en?

Igen, iOS 17-től az SFSpeechRecognizer támogatja az on-device módot. Alternatívák: Vosk (offline), Whisper Core ML (offline).

Milyen nyelveket támogat az Android SpeechRecognizer?

Támogat 60+ nyelvet a RecognizerIntent.EXTRA_LANGUAGE segítségével.

Hogyan konfigurálható a beszédfelismerés adott területre?

Használjon modell adaptációt: Whisper fine-tuning, Vosk — nyelvi modell csere.

Hogyan számítható ki a WER ASR-hez?

WER = (S + D + I) / N. Használja a jiwer (Python) vagy WER Calculator (JavaScript) könyvtárat.

Összefoglaló

  • Speech Recognition (ASR) — audio átalakítása szöveggé CTC/RNNT/Transformer modellekkel
  • Android SpeechRecognizer — 60+ nyelv, cloud + on-device, WER 8–15%
  • SFSpeechRecognizer (iOS) — 60+ nyelv, on-device iOS 17-től, WER 7–14%
  • Vosk — offline ASR, 20+ nyelv, RTF 0.3–0.8, WER 9–13%
  • Whisper — legpontosabb ASR (WER 6% EN), 99 nyelv
  • On-device — adatvédelem, internet nélkül, Vosk/Whisper Core ML
  • Alkalmazás — hangbemenet, átírás, asszisztensek, akadálymentesítés

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is