GenAI স্পিচ রিকগনিশন API

ML Kit-এর GenAI স্পিচ রিকগনিশন API-এর মধ্যে, আপনি অডিও কন্টেন্টকে টেক্সটে ট্রান্সক্রাইব করতে পারবেন। এই API নিম্নলিখিত মোডগুলিকে সমর্থন করে:

  • বেসিক : স্পিচ রিকগনিশন এপিআই স্পিচ রিকগনিজার এপিআই-এর মতোই ঐতিহ্যবাহী অন-ডিভাইস স্পিচ রিকগনিশন মডেল ব্যবহার করে।
    • সাধারণত API লেভেল 31 এবং তার বেশি সহ বেশিরভাগ অ্যান্ড্রয়েড ডিভাইসে উপলব্ধ
  • উন্নত : স্পিচ রিকগনিশন API GenAI মডেল ব্যবহার করে, যা বিস্তৃত ভাষা কভারেজ এবং উন্নত সামগ্রিক মানের উৎপাদন করে।
    • Pixel 10 ডিভাইসে উপলব্ধ, আরও ডিভাইস তৈরির কাজ চলছে

মূল ক্ষমতা

  • মাইক্রোফোন বা অডিও ফাইল থেকে স্ট্রিমিং ইনপুট ক্যাপচার করে
  • প্রতিলিপিকৃত লেখাটি একটি অবিচ্ছিন্ন ধারা হিসেবে সরবরাহ করা হয়, যা প্রাথমিকভাবে আংশিক (এবং পরিবর্তন সাপেক্ষে) হতে পারে এবং চূড়ান্ত বিষয়বস্তুতে পরিণত হতে পারে।

উদাহরণ ফলাফল

অডিও মোড লোকেল প্রতিলিপি
অডিও_১ মৌলিক en-US সম্পর্কে "এটি একটি ছোট বার্তা"
অডিও_২ উন্নত es-ES সম্পর্কে "এটা একটা ছোট্ট বার্তা।"

প্ল্যাটফর্ম স্পিচ রিকগনিশন API এর সাথে তুলনা

বেসিক মোড ব্যবহার করার সময়, ML Kit স্পিচ রিকগনিশন API প্ল্যাটফর্ম স্পিচ রিকগনিশন API-এর মতোই মূল কার্যকারিতা প্রদান করে। ML Kit-এর একটি প্রধান সুবিধা হল এটি অ্যান্ড্রয়েড প্ল্যাটফর্ম সংস্করণের বিস্তৃত পরিসরের জন্য সমর্থন করে, যার জন্য API লেভেল 31 বা তার বেশি প্রয়োজন, যা কিছু প্ল্যাটফর্ম API-এর চেয়ে বিস্তৃত।

এছাড়াও, ML Kit Speech Recognition API অ্যাডভান্সড মোডে অন-ডিভাইস জেমিনি মডেল ব্যবহার করে, যা বিস্তৃত ভাষা কভারেজ প্রদান করে।

শুরু করুন

আপনার build.gradle কনফিগারেশনে নির্ভরতা হিসেবে ML Kit Speech Recognition API যোগ করুন।

implementation("com.google.mlkit:genai-speech-recognition:1.0.0-alpha1")

আপনার অ্যাপে স্পিচ রিকগনিশন API ইন্টিগ্রেট করতে, একটি SpeechRecognizer ক্লায়েন্ট তৈরি করুন। প্রয়োজনীয় অন-ডিভাইস মডেল বৈশিষ্ট্যগুলির স্থিতি পরীক্ষা করুন এবং যদি মডেলটি ইতিমধ্যেই ডিভাইসে না থাকে তবে ডাউনলোড করুন। SpeechRecognizerRequest এ আপনার অডিও ইনপুট প্রস্তুত করার পরে, Kotlin ফ্লো থেকে স্ট্রিমিং আউটপুট পেতে ক্লায়েন্ট ব্যবহার করে inference চালান। অবশেষে, রিসোর্স প্রকাশ করতে ক্লায়েন্টটি বন্ধ করতে ভুলবেন না।

// 1. Create a SpeechRecognizer with desired options.
val options: SpeechRecognizerOptions =
    speechRecognizerOptions {
        locale = Locale.US
        preferredMode = SpeechRecognizerOptions.Mode.MODE_ADVANCED
    }
val speechRecognizer: SpeechRecognizer = SpeechRecognition.getClient(options)

// 2. Check if the recognition model is available or needs downloading.
launch {
    val status: Int = speechRecognizer.checkStatus()
    if (status == FeatureStatus.DOWNLOADABLE) {
        // 3. If needed, download the model and monitor progress.
        speechRecognizer.download.collect { downloadStatus ->
            when (downloadStatus) {
                is DownloadStatus.DownloadCompleted -> {
                    // Model is ready, start recognition.
                    startMyRecognition(speechRecognizer)
                }
                is DownloadStatus.DownloadFailed -> {
                    // Handle download failure (e.g., inform the user).
                }
                is DownloadStatus.DownloadProgress -> {
                    // Handle download progress (e.g., update a progress bar).
                }
            }
        }
    } else if (status == FeatureStatus.AVAILABLE) {
        // Model is already ready, start recognition immediately.
        startMyRecognition(speechRecognizer)
    } else {
        // Handle other statuses (e.g., DOWNLOADING, UNAVAILABLE).
    }
}

// 4. Define your recognition logic using a suspend function.
suspend fun startMyRecognition(recognizer: SpeechRecognizer) {
    // Create a request (e.g., specifying audio source).
    val request: SpeechRecognizerRequest
        = speechRecognizerRequest { audioSource = AudioSource.fromMic() }
    // Start recognition and process the continuous stream of responses.
    recognizer.startRecognition(request).collect {
        // Process the SpeechRecognitionResponse data here.
    }
}

// 5. Stop recognition and clean up resources when the session is complete.
launch {
    recognizer.stopRecognition()
    recognizer.close()
}

সমর্থিত ভাষা এবং ডিভাইস

মোড স্থান
মৌলিক en-US, fr-FR (বিটা), it-IT (বিটা), de-DE (বিটা), es-ES (বিটা), hi-IN (বিটা), ja-JP (বিটা), pt-BR (বিটা), tr-TR (বিটা), pl-PL (বিটা), cmn-Hans-CN (বিটা), ko-KR (বিটা), cmn-Hant-TW (বিটা), ru-RU (বিটা), vi-VN (বিটা)
উন্নত যেসব লোকেলের নির্ভুলতা সাধারণত বেশি থাকে: en-US, ko-KR, es-ES, fr-FR, de-DE, it-IT, pt-PT, cmn-Hans-CN, cmn-Hant-TW, ja-JP, th-TH, ru-RU, nl-NL (beta), da-DK (beta), sv-SE (beta), pl-PL (beta), hi-IN (beta), vi-VN (beta), id-ID (beta), ar-SA (beta), tr-TR (beta)

সমর্থিত ডিভাইস

মোড সমর্থিত ডিভাইস
মৌলিক ৩১ এবং তার বেশি স্তরের API ব্যবহার করে এমন অ্যান্ড্রয়েড ডিভাইস।
উন্নত পিক্সেল ১০

সাধারণ সেটআপ সমস্যা

ML Kit GenAI API গুলি Gemini Nano অ্যাক্সেস করার জন্য Android AICore অ্যাপের উপর নির্ভর করে। যখন কোনও ডিভাইস সবেমাত্র সেটআপ করা হয় (রিসেট সহ), অথবা AICore অ্যাপ সবেমাত্র রিসেট করা হয় (যেমন ডেটা সাফ করা, আনইনস্টল করা এবং পুনরায় ইনস্টল করা), তখন AICore অ্যাপটি আরম্ভকরণ শেষ করার জন্য পর্যাপ্ত সময় নাও পেতে পারে (সার্ভার থেকে সর্বশেষ কনফিগারেশন ডাউনলোড সহ)। ফলস্বরূপ, ML Kit GenAI API গুলি প্রত্যাশা অনুযায়ী কাজ নাও করতে পারে। আপনি যে সাধারণ সেটআপ ত্রুটির বার্তাগুলি দেখতে পারেন এবং সেগুলি কীভাবে পরিচালনা করবেন তা এখানে দেওয়া হল:

উদাহরণ ত্রুটি বার্তা কিভাবে সামলাবেন
AICore ত্রুটি টাইপ 4-CONNECTION_ERROR এবং ত্রুটি কোড 601-BINDING_FAILURE সহ ব্যর্থ হয়েছে: AICore পরিষেবা বাঁধতে ব্যর্থ হয়েছে। ডিভাইস সেটআপের পরপরই ML Kit GenAI API ব্যবহার করে অ্যাপটি ইনস্টল করলে অথবা আপনার অ্যাপটি ইনস্টল করার পরে AICore আনইনস্টল করলে এটি ঘটতে পারে। AICore অ্যাপটি আপডেট করে তারপর পুনরায় ইনস্টল করলে এটি ঠিক হয়ে যাবে।
AICore ব্যর্থ হয়েছে ত্রুটি টাইপ 3-PREPARATION_ERROR এবং ত্রুটি কোড 606-FEATURE_NOT_FOUND: বৈশিষ্ট্য ... উপলব্ধ নয়। AICore যখন সর্বশেষ কনফিগারেশন ডাউনলোড করা শেষ না করে তখন এটি ঘটতে পারে। যখন ডিভাইসটি ইন্টারনেটের সাথে সংযুক্ত থাকে, তখন আপডেট হতে সাধারণত কয়েক মিনিট থেকে কয়েক ঘন্টা সময় লাগে। ডিভাইসটি পুনরায় চালু করলে আপডেটের গতি বাড়ানো যেতে পারে।

মনে রাখবেন যে যদি ডিভাইসের বুটলোডার আনলক করা থাকে, তাহলে আপনি এই ত্রুটিটিও দেখতে পাবেন—এই API আনলক করা বুটলোডার সহ ডিভাইসগুলিকে সমর্থন করে না।
AICore ত্রুটি টাইপ 1-DOWNLOAD_ERROR এবং ত্রুটি কোড 0-UNKNOWN সহ ব্যর্থ হয়েছে: বৈশিষ্ট্য ... ব্যর্থতার স্থিতি 0 এবং ত্রুটি esz সহ ব্যর্থ হয়েছে: উপলব্ধ নেই: হোস্ট সমাধান করতে অক্ষম ... নেটওয়ার্ক সংযোগ রাখুন, কয়েক মিনিট অপেক্ষা করুন এবং পুনরায় চেষ্টা করুন।

নমুনা কোড

  • GitHub- এ ML Kit Speech Recognition API কোডের নমুনাটি অন্বেষণ করুন