การรู้จำเสียงพูด — คืออะไร เทคโนโลยีและหลักการทำงาน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-19 เวลาอ่าน: 10 นาที

การรู้จำเสียงพูด (ASR) คือเทคโนโลยีการรู้จำเสียงพูดอัตโนมัติที่แปลงสัญญาณเสียงเป็นลำดับข้อความ ระบบสมัยใหม่ใช้ deep learning: ตัวเข้ารหัส (Conformer, Whisper, BiLSTM + CTC) แปลงสเปกโตรแกรมเสียงเป็นลำดับสถานะที่ซ่อนอยู่ ตัวถอดรหัส (CTC greedy decoding, Beam Search, Transformer decoder) สร้างข้อความ ในแอปพลิเคชันมือถือ การรู้จำเสียงพูดถูกใช้สำหรับการป้อนข้อมูลด้วยเสียง ผู้ช่วยเสียง การถอดความการโทรอัตโนมัติ และฟีเจอร์การเข้าถึงสำหรับผู้ที่มีข้อจำกัดด้านการเคลื่อนไหว ตามข้อมูลจาก Google Cloud Speech-to-Text, 2025 ASR บนคลาวด์มี WER 7% สำหรับภาษาอังกฤษและ 12% สำหรับภาษารัสเซียที่ SNR > 15 dB

ประเด็นสำคัญ

  • การรู้จำเสียงพูด — การแปลงคำพูดเป็นข้อความ (ASR) โดยใช้โครงข่ายประสาทเทียม
  • Android SpeechRecognizer — ASR บนอุปกรณ์ + คลาวด์, 60+ ภาษา, WER 7–12%
  • SFSpeechRecognizer — การรู้จำแบบเนทีฟของ iOS, บนอุปกรณ์ตั้งแต่ iOS 17
  • Vosk — ASR แบบออฟไลน์, 20+ ภาษา, เวลาแฝง 0.5–1.5x เวลาจริง, WER 13% ภาษารัสเซีย
  • Whisper — ASR ของ OpenAI, บนอุปกรณ์ผ่าน Core ML / TFLite, หลายภาษา

การรู้จำเสียงพูดคืออะไร: หลักการ ASR

การรู้จำเสียงพูดอัตโนมัติ (ASR) คือไปป์ไลน์: เสียง → การประมวลผลล่วงหน้า (16 kHz โมโน, การลดสัญญาณรบกวน, VAD — การตรวจจับกิจกรรมเสียง) → การสกัดคุณลักษณะ (MFCC, LogMel FilterBank) → แบบจำลองเสียง (โครงข่ายประสาท: CTC / RNNT / Transducer) → แบบจำลองภาษา (LM) → การถอดรหัส (ข้อความ) แบบจำลองแบบ end-to-end สมัยใหม่ (Whisper, Google USM, Conformer CTC) รวมแบบจำลองเสียงและภาษาเข้าเป็น Transformer เดียว ทำให้ไปป์ไลน์ง่ายขึ้นและเพิ่มความแม่นยำ

สถาปัตยกรรม ASR สำหรับอุปกรณ์มือถือ: CTC (Connectionist Temporal Classification) — รวดเร็ว ไม่ต้องจัดเรียงเสียงและข้อความ ใช้ใน Vosk และ Android เนทีฟ RNNT (Recurrent Neural Network Transducer) — ASR แบบสตรีมมิ่ง เวลาแฝงต่ำ (Google USM) Conformer — ลูกผสมของ CNN + Transformer ความแม่นยำดีที่สุดแต่หนักกว่า: Whisper Medium (769M พารามิเตอร์) — เวลาแฝง 30–60x สำหรับบนอุปกรณ์ CTC เป็นที่นิยมกว่า: โมเดล CTC ของ Vosk ใช้พื้นที่ 50–100 MB เวลาแฝง 0.3–0.8x เวลาจริง

เมตริก ASR: WER (Word Error Rate) — เปอร์เซ็นต์ของคำที่ถูกแทนที่ ลบ และเพิ่มเมื่อเทียบกับข้อมูลอ้างอิง Google Cloud ASR — 7% WER (EN), 12% (RU) Vosk — 13% (RU), 9% (EN) Whisper Small — 6% (EN), 10% (RU) CER (Character Error Rate) — คล้ายกัน ในระดับตัวอักษร ปัจจัยเวลาจริง (RTF) — เวลาประมวลผล / ระยะเวลาเสียง RTF < 1 — เร็วกว่าเวลาจริง RTF < 0.3 — ASR แบบเวลาจริง การป้อนข้อมูลด้วยเสียงต้องการ RTF < 1 การถอดความต้องการ RTF < 3

โซลูชัน ASRWER (EN)WER (RU)RTFบนอุปกรณ์
Google Cloud ASR7%12%0.3ไม่
Android SpeechRecognizer8%13%0.5–1ใช่ (ไฮบริด)
SFSpeechRecognizer7%12%0.3–0.8ใช่ (ตั้งแต่ iOS 17)
Vosk (vosk-model-small-ru)9%13%0.3–0.8ใช่
Whisper Small6%10%2–6ใช่

VAD (การตรวจจับกิจกรรมเสียง) — การตรวจจับกิจกรรมเสียง แยกคำพูดจากความเงียบและสัญญาณรบกวน WebRTC VAD เป็นมาตรฐานสำหรับ ASR มือถือ: เฟรม 30 ms, สามโหมด (0, 1, 2 — จากอนุรักษ์นิยมถึงเชิงรุก) VAD ลด RTF ลง 1.5–3x (ข้ามส่วนที่ไม่ใช่คำพูด) Silero VAD (MIT) คือ VAD แบบโครงข่ายประสาท แม่นยำกว่า WebRTC (94% เทียบกับ 85% ROC AUC), เวลาแฝง 5–10 ms, TFLite และ Core ML สำหรับ ASR ในระบบผลิต ใช้ลำดับ VAD → ASR: ซึ่งลดผลบวกลวงและเร่งการประมวลผล

Android SpeechRecognizer API

Android SpeechRecognizer คือคลาสในตัวของ Android SDK สำหรับการรู้จำเสียงพูด ทำงานในสองโหมด: คลาวด์ (เซิร์ฟเวอร์ Google) — ความแม่นยำสูง ต้องใช้อินเทอร์เน็ต; บนอุปกรณ์ (ตั้งแต่ Android 10+) — โมเดล ASR ในตัวของ GBoard, 20+ ภาษา, WER 15–18% SpeechRecognizer ส่งคืนผลลัพธ์ระหว่างกลาง (ผลลัพธ์บางส่วน) ระหว่างการพูดและข้อความสุดท้าย รองรับ 60+ ภาษาผ่าน RecognizerIntent.EXTRA_LANGUAGE แนะนำสำหรับการป้อนข้อมูลด้วยเสียง — ผสานรวมรวดเร็ว ฟรี

API SpeechRecognizer: สร้างผ่าน SpeechRecognizer.createSpeechRecognizer(context) Intent กับ RecognizerIntent.ACTION_RECOGNIZE_SPEECH พร้อม extra: LANGUAGE_MODEL_FREE_FORM (ข้อความอิสระ) หรือ LANGUAGE_MODEL_WEB_SEARCH (คำค้นหา) ผลลัพธ์ผ่าน RecognitionListener: onReadyForSpeech → onBeginningOfSpeech → onRmsChanged → onPartialResults → onResults สำหรับการรู้จำต่อเนื่อง (โหมดฟังตลอดเวลา) — เริ่มต้น recognizer ใหม่หลังจาก onResults เพื่อประหยัดแบตเตอรี่ ให้ใช้ 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)

บนอุปกรณ์ vs คลาวด์บน Android: บนอุปกรณ์ทำงานโดยไม่ใช้อินเทอร์เน็ต (Android 10+, Pixel 4+, Samsung S20+) คลาวด์แม่นยำกว่า (Google Neural Network ASM Model) แต่เวลาแฝงสูงกว่า (300–800 ms รวมเครือข่าย) สำหรับการป้อนข้อมูลด้วยเสียง ใช้แนวทางแบบไฮบริด: คลาวด์พร้อมสำรองบนอุปกรณ์เมื่อไม่มีเครือข่าย Android SpeechRecognizer เลือกโหมดโดยอัตโนมัติตาม RecognizerIntent.EXTRA_PREFER_OFFLINE เพื่อความเป็นส่วนตัวสูงสุด — ตั้งค่า onDeviceOnly = true (แต่ความแม่นยำคือ 15–18% WER สำหรับภาษารัสเซีย)

iOS SFSpeechRecognizer และ Speech Framework

SFSpeechRecognizer คือเฟรมเวิร์กของ Apple สำหรับการรู้จำเสียงพูดบน iOS, macOS และ watchOS พร้อมใช้งานตั้งแต่ iOS 10 โหมดบนอุปกรณ์ — ตั้งแต่ iOS 17 (โมเดลภายในเครื่อง ไม่ต้องใช้อินเทอร์เน็ต) รองรับ 60+ ภาษา ความแม่นยำ: WER 7–12% (บนอุปกรณ์ — 12–15%) SFSpeechRecognizer พร้อมใช้งานผ่าน Speech.framework — ไม่ต้องใช้ SDK เพิ่มเติม คำขออนุญาตผ่าน SFSpeechRecognizer.requestAuthorization

API SFSpeechRecognizer: SFSpeechRecognizer(locale: Locale(identifier: "ru_RU")) → SFSpeechAudioBufferRecognitionRequest (เสียงสด) หรือ SFSpeechURLRecognitionRequest (ไฟล์เสียง) สตรีมมิ่งผ่าน recognitionTask(with:delegate:) กับ SFSpeechRecognitionTaskDelegate (didHypothesizeTranscription — บางส่วน, didFinishRecognition — สุดท้าย) โหมดบนอุปกรณ์: request.requiresOnDeviceRecognition = true สำหรับ iOS 15+: request.shouldReportPartialResults = true (ผลลัพธ์สตรีมมิ่งที่มีเวลาแฝงต่ำ)

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 เทียบกับ Android SpeechRecognizer: SFSpeechRecognizer มีสตรีมมิ่งแบบเนทีฟโดยไม่ต้องเริ่มใหม่ (Android ต้อง startListening ซ้ำ) บนอุปกรณ์บน iOS พร้อมใช้งานตั้งแต่ iOS 17 (Android ตั้งแต่ Android 10) ทั้งคู่ต้องการสิทธิ์ผู้ใช้ (NSMicrophoneUsageDescription + NSSpeechRecognitionUsageDescription สำหรับ iOS, RECORD_AUDIO สำหรับ Android) SFSpeechRecognizer แม่นยำกว่าสำหรับภาษาอังกฤษ (บนอุปกรณ์) Android SpeechRecognizer แม่นยำกว่าสำหรับภาษารัสเซีย (คลาวด์) สำหรับ iOS ก่อน 17 โหมดบนอุปกรณ์ไม่พร้อมใช้งาน — ต้องใช้อินเทอร์เน็ต สำหรับ iOS 17+ โหมดบนอุปกรณ์ให้ WER 12–14% สำหรับภาษารัสเซีย

Vosk: การรู้จำแบบออฟไลน์ใน 20+ ภาษา

Vosk คือไลบรารี ASR แบบเปิดเผยรหัสจาก Alpha Cephei สำหรับการรู้จำเสียงพูดแบบออฟไลน์ อิงตาม Kaldi ASR toolkit + โมเดล CTC รองรับ 20+ ภาษา: รัสเซีย, อังกฤษ, เยอรมัน, ฝรั่งเศส, สเปน, จีน, อาหรับ โมเดลตั้งแต่ 50 MB (เล็ก — 50 MB, ru) ถึง 1.2 GB (ใหญ่ — 1.2 GB, en) Vosk ทำงานบน Android (JNI), iOS (wrapper C++), Linux, Windows, Raspberry Pi RTF: 0.3–0.8 บนอุปกรณ์เรือธง Vosk เป็นตัวเลือกที่ดีที่สุดสำหรับ ASR แบบออฟไลน์เต็มรูปแบบ

API Vosk: VoskWaveformModelLoader (การโหลดโมเดล) → VoskWaveformRecognizer (การสร้างตัวรู้จำ) → recognizer.createGrammar(list) หรือ recognizer.getResult() / recognizer.getPartialResult() รองรับไวยากรณ์ (ชุดคำสั่งคงที่) — GrammarRecogniser — ให้ RTF 0.1–0.3 (เร็วกว่า 3 เท่า) สำหรับการป้อนข้อมูลด้วยเสียง ใช้การรู้จำอิสระ (getResult) สำหรับคำสั่งเสียง — GrammarRecogniser (ความแม่นยำ 99% สำหรับคำสั่ง) Vosk ยังรองรับการระบุผู้พูด (การวิเคราะห์เวกเตอร์เสียง)

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 เทียบกับ ASR บนคลาวด์: Vosk เป็นแบบออฟไลน์โดยสมบูรณ์ — ความเป็นส่วนตัว เวลาแฝงเป็นศูนย์ ฟรี คลาวด์ (Google, Yandex) แม่นยำกว่าในสถานการณ์ที่ซับซ้อน (สัญญาณรบกวน, สำเนียง) — WER ต่ำกว่า 3–5% Vosk เหมาะสำหรับ: การป้อนข้อมูลด้วยเสียงโดยไม่ใช้อินเทอร์เน็ต แอปการเข้าถึง การถอดความการโทร (ความเป็นส่วนตัว) ASR บนคลาวด์สำหรับผู้ช่วยเสียงซึ่งความแม่นยำสำคัญกว่าความเป็นส่วนตัว คำแนะนำ: Vosk สำหรับออฟไลน์, SFSpeechRecognizer (iOS) / SpeechRecognizer (Android) สำหรับออนไลน์ — ผสมผสานแนวทางสำหรับสถานการณ์ต่างๆ

Whisper OpenAI บนอุปกรณ์มือถือ

Whisper คือโมเดลของ OpenAI สำหรับการรู้จำเสียงพูด ฝึกฝนบนเสียง 680,000 ชั่วโมง (หลายภาษา, 99 ภาษา) มีให้เลือกขนาด: tiny (39M, WER 10% EN, 15% RU), small (244M, WER 6% EN, 10% RU), medium (769M, WER 4.5% EN, 8% RU) Whisper ทำงานบนอุปกรณ์มือถือผ่าน Core ML (iOS, ANE) และ TFLite (Android, GPU) Whisper tiny: RTF 4–10 บน CPU, RTF 0.5–2 บน GPU (Android) Whisper small: RTF 2–6 บน GPU Whisper medium — RTF 8–15 สำหรับไม่ใช่เวลาจริงเท่านั้น

Whisper บน iOS (Core ML): Apple MLX Whisper — การใช้งาน Whisper สำหรับ Core ML และ MLX (Apple Neural Engine) Whisper tiny Core ML บน iPhone 15 Pro: RTF 0.3–0.8 (เร็วกว่าเวลาจริง!) Whisper small Core ML: RTF 1–3 Whisper Core ML ใช้ ANE บน A17 Pro (Neural Engine 35 TOPS) Hugging Face Transformers → ส่งออกไปยัง Core ML ผ่าน coremltools-whisper สำหรับสตรีมมิ่ง ใช้ WhisperStitcher (การแบ่งเป็นชิ้น + การต่อ) Whisper บน iOS เป็น 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 เทียบกับ Vosk: Whisper แม่นยำกว่า (6% เทียบกับ 9% WER EN), รองรับ 99 ภาษา, รวมการตรวจจับภาษา, เครื่องหมายวรรคตอน และการรู้จำอารมณ์ Whisper หนักกว่า (39M–769M เทียบกับ 50M Vosk), ช้ากว่าในเวลาจริง (RTF 0.5–6 เทียบกับ 0.3–0.8) Whisper tiny เปรียบเทียบได้กับ Vosk ในด้านความเร็ว (RTF 0.5–2 GPU) Vosk เบากว่า เร็วกว่า เหมาะสำหรับสตรีมมิ่งเวลาจริงมากกว่า Whisper สำหรับการถอดความครั้งเดียวซึ่งความแม่นยำสำคัญกว่าความเร็ว Vosk สำหรับการป้อนข้อมูลด้วยเสียงแบบเวลาจริง ใช้ Whisper สำหรับข้อความสุดท้าย, Vosk สำหรับการใช้งานแบบโต้ตอบ

การประยุกต์ใช้การรู้จำเสียงพูดในแอปมือถือ

การป้อนข้อความด้วยเสียง — การใช้งาน ASR ที่แพร่หลายที่สุด: การเขียนข้อความ คำค้นหา โน้ตตามคำบอก ข้อกำหนด: RTF < 1 (เวลาจริง), ผลลัพธ์บางส่วน (เห็นข้อความขณะพูด) Android Gboard และแป้นพิมพ์ iOS มี ASR ในตัว (บนอุปกรณ์, WER 12–18%) สำหรับการใช้งานแบบกำหนดเอง ให้ใช้ Android SpeechRecognizer / SFSpeechRecognizer เพื่อความแม่นยำสูงสุด — ASR บนคลาวด์ + Vosk สำรอง สำหรับการป้อนข้อมูลด้วยเสียงที่มีความแม่นยำ 98% ในภาษารัสเซีย — รวม Vosk (ออฟไลน์) + Yandex SpeechKit (ออนไลน์)

การถอดความการโทรและการประชุม — ASR สำหรับสร้างการถอดความอัตโนมัติ ข้อกำหนด: ไม่มีข้อกำหนดด้านเวลาแฝง, WER < 10%, การแบ่งแยกผู้พูด (ใครกำลังพูด) Whisper Small (ออฟไลน์) + pyannote-audio (การแบ่งแยก) เป็นสแต็กมาตรฐานสำหรับการถอดความ บน iOS — Whisper Core ML (RTF 1–3, WER 6–10%) บน Android — Whisper TFLite (RTF 2–6, WER 8–12%) หรือ Google Cloud ASR + การแบ่งแยก เพื่อความเป็นส่วนตัว (การโทรไม่ไปยังเซิร์ฟเวอร์) — Whisper บนอุปกรณ์ ความแม่นยำในการแบ่งแยก: 80–90% DER

ผู้ช่วยเสียง — Siri (SFSpeechRecognizer), Google Assistant (Android SpeechRecognizer), Alexa (ASR บนอุปกรณ์) ผู้ช่วยแบบกำหนดเอง: ASR → NLU (การเข้าใจภาษาธรรมชาติ) → การดำเนินการ → TTS ASR เป็นขั้นตอนแรก — กำหนดความแม่นยำของทั้งห่วงโซ่ สำหรับ NLU ใช้ RASA, Snips NLU (บนอุปกรณ์) หรือ NLU บนคลาวด์ (Dialogflow, Amazon Lex) สำหรับ TTS: Android TTS / iOS AVSpeechSynthesizer ผู้ช่วยเสียงบนอุปกรณ์ (Vosk + RASA + TTS) เป็นส่วนตัวอย่างสมบูรณ์ ทำงานโดยไม่ใช้อินเทอร์เน็ต เวลาแฝง < 2 วินาทีต่อคำขอ

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

การเข้าถึงสำหรับผู้ที่มีข้อจำกัดด้านการเคลื่อนไหว — การรู้จำเสียงพูดช่วยให้ควบคุมแอปด้วยเสียง: เปิดรายชื่อติดต่อ ส่งข้อความ กดหมายเลข Android Voice Access และ iOS Switch Control + VoiceOver เป็นโซลูชันในตัว สำหรับการใช้งานแบบกำหนดเอง: GrammarRecogniser (Vosk) กับชุดคำสั่งคงที่ (50–100 วลี) — RTF 0.1–0.3, ความแม่นยำ 99% Vosk Grammar อนุญาตให้กำหนดไวยากรณ์ในรูปแบบ BNF ความเร็วเป็นสิ่งสำคัญสำหรับการเข้าถึง — Vosk Grammar เร็วกว่าการรู้จำอิสระ 5 เท่าและใช้แบตเตอรี่น้อยกว่า

คำถามที่พบบ่อย

จะปรับปรุงความแม่นยำของการรู้จำเสียงพูดในสภาพแวดล้อมที่มีเสียงดังได้อย่างไร?

ใช้การลดสัญญาณรบกวน (WebRTC NS — ในตัวบน Android, iOS AVAudioSession) ใช้ VAD เพื่อตัดส่วนที่ไม่ใช่คำพูด เพิ่ม SNR โดยใช้ไมโครโฟนแบบ beamforming (การบันทึกตามทิศทาง) หรืออาร์เรย์ไมโครโฟนหลายตัว Whisper ทนทานต่อสัญญาณรบกวนมากกว่า (ฝึกฝนบน 680K ชั่วโมงที่มีสัญญาณรบกวน) Vosk พร้อมการลดสัญญาณรบกวนผ่าน WebRTC ให้ +5% WER ที่สัญญาณรบกวน 50 dB สำหรับระบบผลิต ให้ทดสอบกับสภาพสัญญาณรบกวนของแอปพลิเคชันของคุณ

สามารถรู้จำเสียงพูดโดยไม่ใช้อินเทอร์เน็ตบน iOS ได้หรือไม่?

ใช่ ตั้งแต่ iOS 17 SFSpeechRecognizer รองรับโหมดบนอุปกรณ์ (requiresOnDeviceRecognition = true) บน iOS 16 และเก่ากว่า โหมดบนอุปกรณ์ไม่พร้อมใช้งาน — ต้องใช้อินเทอร์เน็ตสำหรับ Siri/Gboard ASR ทางเลือก: Vosk ผ่าน wrapper C++ (ออฟไลน์, WER 12–15%), Whisper Core ML (ออฟไลน์, WER 6–10%, เวลาแฝง 2–6 เท่า) สำหรับการป้อนข้อมูลด้วยเสียงบน iOS 16- ให้ใช้ Vosk Whisper Core ML สำหรับการถอดความไฟล์เสียง (ไม่ใช่เวลาจริง) โซลูชันทั้งหมดเป็นส่วนตัวอย่างสมบูรณ์และทำงานโดยไม่ใช้อินเทอร์เน็ต

Android SpeechRecognizer รองรับภาษาใดบ้าง?

Android SpeechRecognizer รองรับ 60+ ภาษาผ่าน RecognizerIntent.EXTRA_LANGUAGE รายการทั้งหมดกำหนดโดย Locale.getAvailableLocales() บนอุปกรณ์ ภาษารัสเซีย, อังกฤษ, เยอรมัน, ฝรั่งเศส, สเปน, อิตาลี พร้อมใช้งานเสมอ จีน, ญี่ปุ่น, เกาหลี ขึ้นอยู่กับรุ่นอุปกรณ์ โหมดบนอุปกรณ์ (Android 10+) — 20+ ภาษา ต่างจาก Vosk (20 ภาษา) และ SFSpeechRecognizer (60 ภาษา) Android SpeechRecognizer ขึ้นอยู่กับเวอร์ชันของ Google Play Services

จะตั้งค่าการรู้จำเสียงพูดสำหรับโดเมนเฉพาะ (การแพทย์, กฎหมาย) ได้อย่างไร?

ใช้การปรับแบบจำลอง: การปรับแต่ง Whisper บนเสียงโดเมน 100+ ชั่วโมง (Hugging Face Trainer) Vosk — แทนที่แบบจำลองภาษา (รูปแบบ ARPA) ด้วยคลังข้อความโดเมน (100K+ ประโยค) Google Cloud ASR — phrase hints (คำโดเมน, DL=0/1/2) SFSpeechRecognizer — SFSpeechRecognitionTaskDelegate กับ contextualStrings (อาร์เรย์สตริงคำแนะนำ) การปรับโดเมนช่วยเพิ่มความแม่นยำ 15–30% WER สำหรับคำศัพท์เฉพาะ ขั้นต่ำ: ไฟล์เสียงโดเมน 500 ไฟล์พร้อมการถอดความ

จะคำนวณ WER (Word Error Rate) สำหรับ ASR ได้อย่างไร?

WER = (S + D + I) / N, โดยที่ S — การแทนที่, D — การลบ, I — การเพิ่ม, N — จำนวนคำในข้อความอ้างอิง ตัวอย่าง: อ้างอิง = “สวัสดีสบายดีไหม”, การทำนาย = “สวัสดีทำอะไรอยู่” → S=1 (สบายดี→ทำอะไร), D=1 (ลบ “ไหม”?), I=0 → WER = 2/3 = 66% ใช้ไลบรารี jiwer (Python) หรือ WER Calculator (JavaScript) สำหรับการคำนวณ CER คล้ายกันในระดับตัวอักษร สำหรับภาษารัสเซีย CER ต่ำกว่า WER 20–30% เนื่องจากความยาวของคำ

สรุป

  • การรู้จำเสียงพูด (ASR) — การแปลงเสียงเป็นข้อความผ่านโมเดล CTC/RNNT/Transformer
  • Android SpeechRecognizer — 60+ ภาษา, คลาวด์ + บนอุปกรณ์ (Android 10+), WER 8–15%
  • SFSpeechRecognizer (iOS) — 60+ ภาษา, บนอุปกรณ์ตั้งแต่ iOS 17, WER 7–14%
  • Vosk — ASR ออฟไลน์, 20+ ภาษา, RTF 0.3–0.8, WER 9–13%
  • Whisper — ASR ที่แม่นยำที่สุด (WER 6% EN), 99 ภาษา แต่หนักสำหรับเวลาจริง
  • บนอุปกรณ์ — ความเป็นส่วนตัว, ไม่ต้องใช้อินเทอร์เน็ต, Vosk/Whisper Core ML
  • การประยุกต์ใช้ — ป้อนข้อมูลด้วยเสียง, ถอดความ, ผู้ช่วย, การเข้าถึง

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม