Speech Recognition — τι είναι, τεχνολογίες και αρχή λειτουργίας

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-19 Χρόνος ανάγνωσης: 10 λεπ

Speech Recognition (ASR) — τεχνολογία αυτόματης αναγνώρισης ομιλίας που μετατρέπει το ηχητικό σήμα σε σειρά κειμένου. Τα σύγχρονα συστήματα χρησιμοποιούν deep learning: ο encoder (Conformer, Whisper, BiLSTM + CTC) μετατρέπει το φασματογράφημα ήχου σε σειρά κρυφών καταστάσεων, ο decoder (CTC greedy decoding, Beam Search, Transformer decoder) σχηματίζει κείμενο. Σε εφαρμογές κινητών, το Speech Recognition χρησιμοποιείται για φωνητική είσοδο, φωνητικούς βοηθούς, αυτόματη μεταγραφή κλήσεων και λειτουργίες προσβασιμότητας για άτομα με κινητικές δυσκολίες. Σύμφωνα με το Google Cloud Speech-to-Text, 2025, το cloud ASR πετυχαίνει WER 7% για τα αγγλικά και 12% για τα ρωσικά σε SNR > 15 dB.

Βασικά σημεία

  • Speech Recognition — μετατροπή ομιλίας σε κείμενο (ASR) με νευρωνικά δίκτυα
  • Android SpeechRecognizer — on-device + cloud ASR, 60+ γλώσσες, 7–12% WER
  • SFSpeechRecognizer — εγγενής αναγνώριση iOS, on-device από iOS 17
  • Vosk — offline ASR, 20+ γλώσσες, 0.5–1.5x καθυστέρηση πραγματικού χρόνου, 13% WER ρωσικά
  • Whisper — ASR από OpenAI, on-device μέσω Core ML / TFLite, πολυγλωσσικό

Τι είναι το Speech Recognition: αρχές ASR

Automatic Speech Recognition (ASR) — pipeline: audio → προεπεξεργασία (16 kHz mono, μείωση θορύβου, VAD) → εξαγωγή χαρακτηριστικών (MFCC, LogMel FilterBank) → ακουστικό μοντέλο (CTC / RNNT / Transducer) → γλωσσικό μοντέλο (LM) → αποκωδικοποίηση (κείμενο).

ASR αρχιτεκτονικές για κινητές συσκευές: CTC — γρήγορη, χρησιμοποιείται σε Vosk, Android native. RNNT — streaming ASR, χαμηλή καθυστέρηση. Conformer — υβριδικό CNN + Transformer, καλύτερη ακρίβεια, αλλά βαρύτερο.

Μετρικές ASR: WER (Word Error Rate) — ποσοστό αντικατασταμένων, διαγραφέντων, εισαγόμενων λέξεων. Google Cloud ASR — 7% WER (EN), 12% (RU). Vosk — 13% (RU), 9% (EN).

Λύση ASRWER (EN)WER (RU)RTFOn-device
Google Cloud ASR7%12%0.3Όχι
Android SpeechRecognizer8%13%0.5–1Ναί
SFSpeechRecognizer7%12%0.3–0.8Ναί
Vosk (vosk-model-small-ru)9%13%0.3–0.8Ναί
Whisper Small6%10%2–6Ναί

VAD (Voice Activity Detection) — ανίχνευση φωνητικής δραστηριότητας, διαχωρισμός ομιλίας από σιωπή και θόρυβο.

Android SpeechRecognizer API

Android SpeechRecognizer — ενσωματωμένη κλάση στο Android SDK για αναγνώριση ομιλίας. Λειτουργεί σε δύο λειτουργίες: cloud (διακομιστής Google) — υψηλή ακρίβεια, απαιτεί διαδίκτυο; on-device (από Android 10+) — ενσωματωμένο μοντέλο ASR GBoard, 20+ γλώσσες, WER 15–18%.

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)

iOS SFSpeechRecognizer και Speech Framework

SFSpeechRecognizer — πλαίσιο Apple για αναγνώριση ομιλίας σε iOS, macOS, watchOS. Διαθέσιμο από iOS 10. On-device λειτουργία — από iOS 17. Υποστηρίζει 60+ γλώσσες.

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 αναγνώριση σε 20+ γλώσσες

Vosk — βιβλιοθήκη ASR ανοικτού κώδικα από Alpha Cephei για offline αναγνώριση ομιλίας. Βασισμένη σε Kaldi ASR toolkit + CTC μοντέλα. Υποστηρίζει 20+ γλώσσες.

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 σε κινητές συσκευές

Whisper — μοντέλο OpenAI για αναγνώριση ομιλίας, εκπαιδευμένο σε 680.000 ώρες audio (πολυγλωσσικό, 99 γλώσσες).

swift
// Whisper Core ML σε 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) // τελικό κείμενο με χρονοσφραγίδες
}

Εφαρμογή Speech Recognition σε εφαρμογές κινητών

Φωνητική είσοδος κειμένου — η πιο μαζική εφαρμογή ASR. Μεταγραφή κλήσεων και συναντήσεων — ASR για αυτόματη δημιουργία στενογραμήματος. Φωνητικοί βοηθοί — Siri, Google Assistant, Alexa. Προσβασιμότητα — έλεγχος εφαρμογής με φωνή μέσω GrammarRecogniser (Vosk).

kotlin
// Φωνητικός βοηθός με 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)
    }
})

Συχνές Ερωτήσεις

Πώς βελτιώνω την ακρίβεια της αναγνώρισης ομιλίας σε θορυβώδη περιβάλλον;

Χρησιμοποιήστε καταστολή θορύβου (WebRTC NS). Εφαρμόστε VAD για κοπή μη ομιλούμενων μερών. To Whisper είναι πιο ανθεκτικό στον θόρυβο.

Μπορώ να αναγνωρίσω ομιλία χωρίς διαδίκτυο σε iOS;

Ναί, από iOS 17 το SFSpeechRecognizer υποστηρίζει on-device λειτουργία. Εναλλακτικές: Vosk (offline), Whisper Core ML (offline).

Ποιες γλώσσες υποστηρίζει το Android SpeechRecognizer;

Υποστηρίζει 60+ γλώσσες μέσω RecognizerIntent.EXTRA_LANGUAGE.

Πώς να ρυθμίσω την αναγνώριση ομιλίας για συγκεκριμένο τομέα;

Χρησιμοποιήστε προσαρμογή μοντέλου: Whisper fine-tuning, Vosk — αντικατάσταση γλωσσικού μοντέλου.

Πώς υπολογίζεται το WER για ASR;

WER = (S + D + I) / N. Χρησιμοποιήστε jiwer (Python) ή WER Calculator (JavaScript).

Σύνοψη

  • Speech Recognition (ASR) — μετατροπή audio σε κείμενο μέσω CTC/RNNT/Transformer
  • Android SpeechRecognizer — 60+ γλώσσες, cloud + on-device, WER 8–15%
  • SFSpeechRecognizer (iOS) — 60+ γλώσσες, on-device από iOS 17, WER 7–14%
  • Vosk — offline ASR, 20+ γλώσσες, RTF 0.3–0.8, WER 9–13%
  • Whisper — πιο ακριβής ASR (WER 6% EN), 99 γλώσσες
  • On-device — απόρρητο, χωρίς διαδίκτυο, Vosk/Whisper Core ML
  • Εφαρμογή — φωνητική είσοδος, μεταγραφή, βοηθοί, προσβασιμότητα

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης