স্পিচ রিকগনিশন — এটি কী, প্রযুক্তি এবং কার্যপ্রণালী

লেখক: IT Sectr প্রকাশিত: 2026-07-19 পড়ার সময়: 10 মিনিট

স্পিচ রিকগনিশন (ASR) হলো একটি স্বয়ংক্রিয় বাকশনাক্তকরণ প্রযুক্তি যা অডিও সংকেতকে টেক্সট অনুক্রমে রূপান্তর করে। আধুনিক সিস্টেমগুলি ডিপ লার্নিং ব্যবহার করে: এনকোডার (Conformer, Whisper, BiLSTM + CTC) অডিও স্পেকট্রোগ্রামকে লুকানো অবস্থার অনুক্রমে রূপান্তর করে, ডিকোডার (CTC greedy decoding, Beam Search, Transformer decoder) টেক্সট গঠন করে। মোবাইল অ্যাপ্লিকেশনে স্পিচ রিকগনিশন ভয়েস ইনপুট, ভয়েস অ্যাসিস্ট্যান্ট, স্বয়ংক্রিয় কল ট্রান্সক্রিপশন এবং মোটর প্রতিবন্ধী ব্যক্তিদের জন্য অ্যাক্সেসিবিলিটি বৈশিষ্ট্যের জন্য ব্যবহৃত হয়। Google Cloud Speech-to-Text, 2025 অনুসারে, ক্লাউড ASR SNR > 15 dB-তে ইংরেজিতে 7% এবং রুশ ভাষায় 12% WER অর্জন করে।

মূল বিষয়বস্তু

  • স্পিচ রিকগনিশন — নিউরাল নেটওয়ার্কের সাহায্যে বাক্যকে টেক্সটে (ASR) রূপান্তর
  • Android SpeechRecognizer — অন-ডিভাইস + ক্লাউড ASR, 60+ ভাষা, 7–12% WER
  • SFSpeechRecognizer — iOS নেটিভ শনাক্তকরণ, iOS 17 থেকে অন-ডিভাইস
  • Vosk — অফলাইন ASR, 20+ ভাষা, 0.5–1.5x রিয়েল-টাইম লেটেন্সি, 13% WER রুশ
  • Whisper — OpenAI ASR, Core ML / TFLite-এর মাধ্যমে অন-ডিভাইস, বহুভাষিক

স্পিচ রিকগনিশন কী: ASR নীতি

স্বয়ংক্রিয় বাকশনাক্তকরণ (ASR) হলো একটি পাইপলাইন: অডিও → প্রিপ্রসেসিং (16 kHz মোনো, নয়েজ রিডাকশন, VAD — ভয়েস অ্যাক্টিভিটি ডিটেকশন) → ফিচার এক্সট্রাকশন (MFCC, LogMel FilterBank) → অ্যাকোস্টিক মডেল (নিউরাল নেটওয়ার্ক: CTC / RNNT / Transducer) → ল্যাঙ্গুয়েজ মডেল (LM) → ডিকোডিং (টেক্সট)। আধুনিক এন্ড-টু-এন্ড মডেল (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 পছন্দনীয়: Vosk CTC মডেল 50–100 MB নেয়, লেটেন্সি 0.3–0.8x রিয়েল-টাইম।

ASR মেট্রিক্স: WER (ওয়ার্ড এরর রেট) — রেফারেন্সের সাপেক্ষে প্রতিস্থাপিত, মুছে ফেলা এবং সন্নিবেশ করা শব্দের শতাংশ। Google Cloud ASR — 7% WER (EN), 12% (RU)। Vosk — 13% (RU), 9% (EN)। Whisper Small — 6% (EN), 10% (RU)। CER (ক্যারেক্টার এরর রেট) — একই রকম, অক্ষর স্তরে। রিয়েল-টাইম ফ্যাক্টর (RTF) — প্রক্রিয়াকরণ সময় / অডিও সময়কাল। RTF < 1 — রিয়েল টাইমের চেয়ে দ্রুত। RTF < 0.3 — রিয়েল-টাইম ASR। ভয়েস ইনপুটের জন্য RTF < 1 প্রয়োজন, ট্রান্সক্রিপশনের জন্য RTF < 3।

ASR সমাধানWER (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+ থেকে) — GBoard এম্বেডেড ASR মডেল, 20+ ভাষা, WER 15–18%। SpeechRecognizer বাক্যের সময় অন্তর্বর্তী ফলাফল (আংশিক ফলাফল) এবং চূড়ান্ত টেক্সট ফেরত দেয়। RecognizerIntent.EXTRA_LANGUAGE-এর মাধ্যমে 60+ ভাষা সমর্থন করে। ভয়েস ইনপুটের জন্য সুপারিশকৃত — দ্রুত ইন্টিগ্রেশন, বিনামূল্যে।

SpeechRecognizer API: SpeechRecognizer.createSpeechRecognizer(context)-এর মাধ্যমে তৈরি। RecognizerIntent.ACTION_RECOGNIZE_SPEECH সহ Intent যাতে extras আছে: LANGUAGE_MODEL_FREE_FORM (মুক্ত টেক্সট) বা LANGUAGE_MODEL_WEB_SEARCH (অনুসন্ধান ক্যোয়ারী)। RecognitionListener-এর মাধ্যমে ফলাফল: onReadyForSpeech → onBeginningOfSpeech → onRmsChanged → onPartialResults → onResults। অবিচ্ছিন্ন শনাক্তকরণ (সর্বদা শোনার মোড) জন্য — 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)

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 এবং স্পিচ ফ্রেমওয়ার্ক

SFSpeechRecognizer হলো iOS, macOS এবং watchOS-এ বাকশনাক্তকরণের জন্য Apple-এর ফ্রেমওয়ার্ক। iOS 10 থেকে উপলব্ধ। অন-ডিভাইস মোড — iOS 17 থেকে (স্থানীয় মডেল, ইন্টারনেটের প্রয়োজন নেই)। 60+ ভাষা সমর্থন করে। নির্ভুলতা: WER 7–12% (অন-ডিভাইস — 12–15%)। SFSpeechRecognizer Speech.framework-এর মাধ্যমে উপলব্ধ — কোনো অতিরিক্ত SDK-র প্রয়োজন নেই। SFSpeechRecognizer.requestAuthorization-এর মাধ্যমে অনুমতি অনুরোধ।

SFSpeechRecognizer API: SFSpeechRecognizer(locale: Locale(identifier: "ru_RU")) → SFSpeechAudioBufferRecognitionRequest (লাইভ অডিও) বা SFSpeechURLRecognitionRequest (অডিও ফাইল)। SFSpeechRecognitionTaskDelegate (didHypothesizeTranscription — আংশিক, didFinishRecognition — চূড়ান্ত) সহ recognitionTask(with:delegate:)-এর মাধ্যমে স্ট্রিমিং। অন-ডিভাইস মোড: 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 থেকে)। উভয়েরই ব্যবহারকারীর অনুমতি প্রয়োজন (iOS-এর জন্য NSMicrophoneUsageDescription + NSSpeechRecognitionUsageDescription, Android-এর জন্য RECORD_AUDIO)। SFSpeechRecognizer ইংরেজিতে বেশি নির্ভুল (অন-ডিভাইস), Android SpeechRecognizer রুশ ভাষায় বেশি নির্ভুল (ক্লাউড)। iOS 17-এর আগে, অন-ডিভাইস উপলব্ধ নয় — ইন্টারনেট প্রয়োজন। iOS 17+ এর জন্য, অন-ডিভাইস রুশের জন্য WER 12–14% দেয়।

Vosk: 20+ ভাষায় অফলাইন শনাক্তকরণ

Vosk হলো Alpha Cephei-এর একটি ওপেন-সোর্স ASR লাইব্রেরি অফলাইন বাকশনাক্তকরণের জন্য। এটি Kaldi ASR টুলকিট + CTC মডেলের উপর ভিত্তি করে। 20+ ভাষা সমর্থন করে: রুশ, ইংরেজি, জার্মান, ফরাসি, স্প্যানিশ, চীনা, আরবি। মডেল 50 MB (ছোট — 50 MB, ru) থেকে 1.2 GB (বড় — 1.2 GB, en) পর্যন্ত। Vosk Android (JNI), iOS (C++ র্যাপার), Linux, Windows, Raspberry Pi-তে কাজ করে। RTF: ফ্ল্যাগশিপ ডিভাইসে 0.3–0.8। Vosk সম্পূর্ণ অফলাইন ASR-এর জন্য সর্বোত্তম পছন্দ।

Vosk API: VoskWaveformModelLoader (মডেল লোডিং) → VoskWaveformRecognizer (শনাক্তকারী তৈরি) → recognizer.createGrammar(list) বা recognizer.getResult() / recognizer.getPartialResult()। গ্রামার সমর্থন (নির্দিষ্ট কমান্ড সেট) — GrammarRecogniser — RTF 0.1–0.3 দেয় (3x দ্রুত)। ভয়েস ইনপুটের জন্য, মুক্ত শনাক্তকরণ (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: CPU-তে RTF 4–10, GPU-তে RTF 0.5–2 (Android)। Whisper small: GPU-তে RTF 2–6। Whisper medium — RTF 8–15, শুধুমাত্র নন-রিয়েল-টাইমের জন্য।

iOS-এ Whisper (Core ML): Apple MLX Whisper — Core ML এবং MLX (Apple Neural Engine)-এর জন্য Whisper-এর বাস্তবায়ন। iPhone 15 Pro-তে Whisper tiny Core ML: RTF 0.3–0.8 (রিয়েল-টাইমের চেয়ে দ্রুত!)। Whisper small Core ML: RTF 1–3। Whisper Core ML A17 Pro (Neural Engine 35 TOPS)-এ ANE ব্যবহার করে। Hugging Face Transformers → coremltools-whisper-এর মাধ্যমে Core ML-এ রপ্তানি। স্ট্রিমিংয়ের জন্য, WhisperStitcher (চাঙ্কিং + স্টিচিং) ব্যবহার করুন। iOS-এ Whisper সবচেয়ে নির্ভুল অন-ডিভাইস 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 মুক্ত শনাক্তকরণের চেয়ে 5x দ্রুত এবং কম ব্যাটারি খরচ করে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

শোরগোল পরিবেশে বাকশনাক্তকরণের নির্ভুলতা কীভাবে উন্নত করবেন?

নয়েজ সাপ্রেশন ব্যবহার করুন (WebRTC NS — Android-এ নির্মিত, iOS AVAudioSession)। অ-বাক্যাংশ অংশ কেটে ফেলতে VAD প্রয়োগ করুন। বিমফর্মিং (দিকনির্দেশক রেকর্ডিং) বা মাল্টি-মাইক্রোফোন অ্যারে সহ মাইক্রোফোনের মাধ্যমে SNR বাড়ান। Whisper শব্দের প্রতি বেশি প্রতিরোধী (শব্দ সহ 680K ঘন্টায় প্রশিক্ষিত)। WebRTC-এর মাধ্যমে নয়েজ সাপ্রেশন সহ Vosk 50 dB শব্দে +5% WER দেয়। প্রোডাকশনের জন্য, আপনার অ্যাপ্লিকেশনের শব্দ অবস্থার সাথে পরীক্ষা করুন।

iOS-এ কি ইন্টারনেট ছাড়া বাকশনাক্তকরণ সম্ভব?

হ্যাঁ, iOS 17 থেকে SFSpeechRecognizer অন-ডিভাইস মোড (requiresOnDeviceRecognition = true) সমর্থন করে। iOS 16 এবং পুরনোতে, অন-ডিভাইস উপলব্ধ নয় — Siri/Gboard ASR-এর জন্য ইন্টারনেট প্রয়োজন। বিকল্প: C++ র্যাপারের মাধ্যমে Vosk (অফলাইন, WER 12–15%), Whisper Core ML (অফলাইন, WER 6–10%, লেটেন্সি 2–6x)। iOS 16-তে ভয়েস ইনপুটের জন্য Vosk ব্যবহার করুন। Whisper Core ML অডিও ফাইল ট্রান্সক্রিপশনের জন্য (রিয়েল-টাইম নয়)। সমস্ত সমাধান সম্পূর্ণ গোপনীয় এবং ইন্টারনেট ছাড়া কাজ করে।

Android SpeechRecognizer কোন ভাষাগুলি সমর্থন করে?

Android SpeechRecognizer RecognizerIntent.EXTRA_LANGUAGE-এর মাধ্যমে 60+ ভাষা সমর্থন করে। সম্পূর্ণ তালিকা ডিভাইসে Locale.getAvailableLocales() দ্বারা নির্ধারিত হয়। রুশ, ইংরেজি, জার্মান, ফরাসি, স্প্যানিশ, ইতালীয় সবসময় উপলব্ধ। চীনা, জাপানি, কোরিয়ান ডিভাইস মডেলের উপর নির্ভর করে। অন-ডিভাইস মোড (Android 10+) — 20+ ভাষা। Vosk (20 ভাষা) এবং SFSpeechRecognizer (60 ভাষা) থেকে ভিন্ন, Android SpeechRecognizer Google Play Services সংস্করণের উপর নির্ভর করে।

নির্দিষ্ট ডোমেনের (চিকিৎসা, আইন) জন্য বাকশনাক্তকরণ কীভাবে সেটআপ করবেন?

মডেল অ্যাডাপ্টেশন ব্যবহার করুন: ডোমেন অডিওর 100+ ঘন্টার উপর Whisper ফাইন-টিউনিং (Hugging Face Trainer)। Vosk — ল্যাঙ্গুয়েজ মডেল (ARPA ফরম্যাট) ডোমেন টেক্সট কর্পাস (100K+ বাক্য) দিয়ে প্রতিস্থাপন করুন। Google Cloud ASR — phrase hints (ডোমেন শব্দ, DL=0/1/2)। SFSpeechRecognizer — SFSpeechRecognitionTaskDelegate contextualStrings (সঙ্কেত স্ট্রিংয়ের অ্যারে) সহ। ডোমেন অ্যাডাপ্টেশন নির্দিষ্ট পরিভাষার জন্য নির্ভুলতা 15–30% WER উন্নত করে। ন্যূনতম: ট্রান্সক্রিপশন সহ 500 ডোমেন অডিও ফাইল।

ASR-এর জন্য WER (ওয়ার্ড এরর রেট) কীভাবে গণনা করবেন?

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 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন