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
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ás | WER (EN) | WER (RU) | RTF | On-device |
|---|---|---|---|---|
| Google Cloud ASR | 7% | 12% | 0.3 | Nem |
| Android SpeechRecognizer | 8% | 13% | 0.5–1 | Igen |
| SFSpeechRecognizer | 7% | 12% | 0.3–0.8 | Igen |
| Vosk (vosk-model-small-ru) | 9% | 13% | 0.3–0.8 | Igen |
| Whisper Small | 6% | 10% | 2–6 | Igen |
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 — 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.
// 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)
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%.
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 — 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.
// 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 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).
// 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
}
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.
// 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
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.
Igen, iOS 17-től az SFSpeechRecognizer támogatja az on-device módot. Alternatívák: Vosk (offline), Whisper Core ML (offline).
Támogat 60+ nyelvet a RecognizerIntent.EXTRA_LANGUAGE segítségével.
Használjon modell adaptációt: Whisper fine-tuning, Vosk — nyelvi modell csere.
WER = (S + D + I) / N. Használja a jiwer (Python) vagy WER Calculator (JavaScript) könyvtárat.
Összefoglaló
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.
Olvassa el is