Android এর জন্য শব্দ এবং শব্দ স্বীকৃতি

এই টিউটোরিয়ালটি আপনাকে দেখায় কিভাবে একটি Android অ্যাপে শব্দ এবং উচ্চারিত শব্দ চিনতে পূর্ব-নির্মিত মেশিন লার্নিং মডেলের সাথে TensorFlow Lite ব্যবহার করতে হয়। এই টিউটোরিয়ালে দেখানো অডিও শ্রেণীবিভাগের মডেলগুলি কার্যকলাপ সনাক্ত করতে, ক্রিয়া সনাক্ত করতে বা ভয়েস কমান্ডগুলি সনাক্ত করতে ব্যবহার করা যেতে পারে।

অডিও স্বীকৃতি অ্যানিমেটেড ডেমো এই টিউটোরিয়ালটি আপনাকে দেখায় কিভাবে উদাহরণ কোড ডাউনলোড করতে হয়, প্রজেক্টটি অ্যান্ড্রয়েড স্টুডিওতে লোড করতে হয় এবং কোড উদাহরণের মূল অংশগুলি ব্যাখ্যা করে যাতে আপনি আপনার নিজের অ্যাপে এই কার্যকারিতা যোগ করা শুরু করতে পারেন। উদাহরণ অ্যাপ কোডটি অডিওর জন্য টেনসরফ্লো টাস্ক লাইব্রেরি ব্যবহার করে, যা বেশিরভাগ অডিও ডেটা রেকর্ডিং এবং প্রিপ্রসেসিং পরিচালনা করে। মেশিন লার্নিং মডেলগুলির সাথে ব্যবহারের জন্য অডিও কীভাবে পূর্ব-প্রক্রিয়া করা হয় সে সম্পর্কে আরও তথ্যের জন্য, অডিও ডেটা প্রস্তুতি এবং বৃদ্ধি দেখুন।

মেশিন লার্নিং সহ অডিও শ্রেণীবিভাগ

এই টিউটোরিয়ালের মেশিন লার্নিং মডেলটি একটি অ্যান্ড্রয়েড ডিভাইসে মাইক্রোফোনের মাধ্যমে রেকর্ড করা অডিও নমুনা থেকে শব্দ বা শব্দকে শনাক্ত করে। এই টিউটোরিয়ালের উদাহরণ অ্যাপটি আপনাকে YAMNet/ক্ল্যাসিফায়ারের মধ্যে স্যুইচ করতে দেয়, একটি মডেল যা শব্দ চিনতে পারে এবং একটি মডেল যা নির্দিষ্ট কথ্য শব্দগুলিকে চিনতে পারে, যেটিকে টেনসরফ্লো লাইট মডেল মেকার টুল ব্যবহার করে প্রশিক্ষিত করা হয়েছিল। মডেলগুলি অডিও ক্লিপগুলিতে ভবিষ্যদ্বাণী চালায় যাতে প্রতি ক্লিপে 15600টি পৃথক নমুনা থাকে এবং দৈর্ঘ্যে প্রায় 1 সেকেন্ড।

সেটআপ এবং রান উদাহরণ

এই টিউটোরিয়ালের প্রথম অংশের জন্য, আপনি GitHub থেকে নমুনা ডাউনলোড করুন এবং Android স্টুডিও ব্যবহার করে এটি চালান। এই টিউটোরিয়ালের নিম্নলিখিত বিভাগগুলি উদাহরণের প্রাসঙ্গিক বিভাগগুলি অন্বেষণ করে, যাতে আপনি সেগুলি আপনার নিজের Android অ্যাপগুলিতে প্রয়োগ করতে পারেন৷

সিস্টেমের জন্য আবশ্যক

  • অ্যান্ড্রয়েড স্টুডিও সংস্করণ 2021.1.1 (বাম্বলবি) বা উচ্চতর।
  • Android SDK সংস্করণ 31 বা উচ্চতর
  • বিকাশকারী মোড সক্ষম সহ SDK 24 (Android 7.0 - Nougat) এর ন্যূনতম OS সংস্করণ সহ Android ডিভাইস৷

উদাহরণ কোড পান

উদাহরণ কোডের একটি স্থানীয় অনুলিপি তৈরি করুন। আপনি অ্যান্ড্রয়েড স্টুডিওতে একটি প্রকল্প তৈরি করতে এবং নমুনা অ্যাপ্লিকেশন চালানোর জন্য এই কোডটি ব্যবহার করবেন।

উদাহরণ কোড ক্লোন এবং সেটআপ করতে:

  1. git সংগ্রহস্থল
    git clone https://github.com/tensorflow/examples.git
    
    ক্লোন করুন
  2. ঐচ্ছিকভাবে, স্পার্স চেকআউট ব্যবহার করার জন্য আপনার গিট ইনস্ট্যান্স কনফিগার করুন, যাতে আপনার কাছে উদাহরণ অ্যাপের জন্য শুধুমাত্র ফাইল থাকে:

    cd examples
    git sparse-checkout init --cone
    git sparse-checkout set lite/examples/audio_classification/android
    

আমদানি করুন এবং প্রকল্প চালান

ডাউনলোড করা উদাহরণ কোড থেকে একটি প্রকল্প তৈরি করুন, প্রকল্পটি তৈরি করুন এবং তারপরে এটি চালান।

উদাহরণ কোড প্রকল্প আমদানি এবং নির্মাণ করতে:

  1. অ্যান্ড্রয়েড স্টুডিও শুরু করুন।
  2. অ্যান্ড্রয়েড স্টুডিওতে, ফাইল > নতুন > আমদানি প্রকল্প নির্বাচন করুন।
  3. build.gradle ফাইল ( .../examples/lite/examples/audio_classification/android/build.gradle ) ধারণকারী উদাহরণ কোড ডিরেক্টরিতে নেভিগেট করুন এবং সেই ডিরেক্টরিটি নির্বাচন করুন।

আপনি সঠিক ডিরেক্টরি নির্বাচন করলে, অ্যান্ড্রয়েড স্টুডিও একটি নতুন প্রকল্প তৈরি করে এবং এটি তৈরি করে। আপনার কম্পিউটারের গতির উপর নির্ভর করে এবং আপনি যদি অন্যান্য প্রকল্পের জন্য অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন তবে এই প্রক্রিয়াটি কয়েক মিনিট সময় নিতে পারে। বিল্ড সম্পূর্ণ হলে, অ্যান্ড্রয়েড স্টুডিও বিল্ড আউটপুট স্ট্যাটাস প্যানেলে একটি BUILD SUCCESSFUL বার্তা প্রদর্শন করে।

প্রকল্প চালানোর জন্য:

  1. অ্যান্ড্রয়েড স্টুডিও থেকে, রান > রান 'অ্যাপ' নির্বাচন করে প্রকল্পটি চালান।
  2. অ্যাপটি পরীক্ষা করতে মাইক্রোফোন সহ একটি সংযুক্ত Android ডিভাইস নির্বাচন করুন।

পরবর্তী বিভাগগুলি আপনাকে রেফারেন্স পয়েন্ট হিসাবে এই উদাহরণ অ্যাপটি ব্যবহার করে আপনার নিজের অ্যাপে এই কার্যকারিতা যোগ করতে আপনার বিদ্যমান প্রকল্পে যে পরিবর্তনগুলি করতে হবে তা দেখায়।

প্রকল্প নির্ভরতা যোগ করুন

আপনার নিজের অ্যাপ্লিকেশনে, আপনাকে অবশ্যই TensorFlow Lite মেশিন লার্নিং মডেলগুলি চালানোর জন্য নির্দিষ্ট প্রকল্প নির্ভরতা যোগ করতে হবে এবং ইউটিলিটি ফাংশনগুলি অ্যাক্সেস করতে হবে যা স্ট্যান্ডার্ড ডেটা ফর্ম্যাটগুলিকে রূপান্তর করে, যেমন অডিও, একটি টেনসর ডেটা ফর্ম্যাটে যা আপনি যে মডেলটি ব্যবহার করছেন তার দ্বারা প্রক্রিয়া করা যেতে পারে৷

উদাহরণ অ্যাপটি নিম্নলিখিত টেনসরফ্লো লাইট লাইব্রেরি ব্যবহার করে:

নিম্নলিখিত নির্দেশাবলী আপনার নিজের অ্যান্ড্রয়েড অ্যাপ প্রকল্পে প্রয়োজনীয় প্রজেক্ট নির্ভরতা কিভাবে যোগ করতে হয় তা দেখায়।

মডিউল নির্ভরতা যোগ করতে:

  1. TensorFlow Lite ব্যবহার করে এমন মডিউলে, নিম্নলিখিত নির্ভরতাগুলি অন্তর্ভুক্ত করতে মডিউলের build.gradle ফাইলটি আপডেট করুন। উদাহরণ কোডে, এই ফাইলটি এখানে অবস্থিত: .../examples/lite/examples/audio_classification/android/build.gradle

    dependencies {
    ...
        implementation 'org.tensorflow:tensorflow-lite-task-audio'
    }
    
  2. অ্যান্ড্রয়েড স্টুডিওতে, নির্বাচন করে প্রকল্প নির্ভরতা সিঙ্ক করুন: ফাইল > গ্রেডল ফাইলের সাথে প্রকল্প সিঙ্ক করুন

ML মডেল শুরু করুন

আপনার Android অ্যাপে, মডেলের সাথে ভবিষ্যদ্বাণী চালানোর আগে আপনাকে অবশ্যই প্যারামিটার সহ TensorFlow Lite মেশিন লার্নিং মডেলটি আরম্ভ করতে হবে। এই প্রারম্ভিক প্যারামিটারগুলি মডেলের উপর নির্ভরশীল এবং ভবিষ্যদ্বাণীগুলির জন্য ডিফল্ট ন্যূনতম নির্ভুলতা থ্রেশহোল্ড এবং শব্দ বা শব্দের জন্য লেবেল যা মডেল চিনতে পারে সেগুলি অন্তর্ভুক্ত করতে পারে৷

একটি TensorFlow Lite মডেলে মডেল ধারণকারী একটি *.tflite ফাইল অন্তর্ভুক্ত থাকে। মডেল ফাইলে ভবিষ্যদ্বাণীর যুক্তি রয়েছে এবং এতে সাধারণত ভবিষ্যদ্বাণীর ফলাফলগুলিকে কীভাবে ব্যাখ্যা করা যায় সে সম্পর্কে মেটাডেটা অন্তর্ভুক্ত থাকে, যেমন ভবিষ্যদ্বাণী শ্রেণীর নাম। মডেল ফাইলগুলি আপনার ডেভেলপমেন্ট প্রজেক্টের src/main/assets ডিরেক্টরিতে সংরক্ষণ করা উচিত, যেমন কোড উদাহরণে:

  • <project>/src/main/assets/yamnet.tflite

সুবিধা এবং কোড পঠনযোগ্যতার জন্য, উদাহরণটি একটি সহচর বস্তু ঘোষণা করে যা মডেলের সেটিংস সংজ্ঞায়িত করে।

আপনার অ্যাপে মডেলটি শুরু করতে:

  1. মডেলের জন্য সেটিংস সংজ্ঞায়িত করতে একটি সহচর বস্তু তৈরি করুন:

    companion object {
      const val DISPLAY_THRESHOLD = 0.3f
      const val DEFAULT_NUM_OF_RESULTS = 2
      const val DEFAULT_OVERLAP_VALUE = 0.5f
      const val YAMNET_MODEL = "yamnet.tflite"
      const val SPEECH_COMMAND_MODEL = "speech.tflite"
    }
    
  2. একটি AudioClassifier.AudioClassifierOptions অবজেক্ট তৈরি করে মডেলের জন্য সেটিংস তৈরি করুন:

    val options = AudioClassifier.AudioClassifierOptions.builder()
      .setScoreThreshold(classificationThreshold)
      .setMaxResults(numOfResults)
      .setBaseOptions(baseOptionsBuilder.build())
      .build()
    
  3. মডেল ধারণ করে একটি TensorFlow Lite AudioClassifier অবজেক্ট তৈরি করতে এই সেটিংস অবজেক্টটি ব্যবহার করুন:

    classifier = AudioClassifier.createFromFileAndOptions(context, "yamnet.tflite", options)
    

হার্ডওয়্যার ত্বরণ সক্রিয়

আপনার অ্যাপে একটি টেনসরফ্লো লাইট মডেল শুরু করার সময়, মডেলের পূর্বাভাস গণনার গতি বাড়ানোর জন্য আপনার হার্ডওয়্যার ত্বরণ বৈশিষ্ট্যগুলি ব্যবহার করার কথা বিবেচনা করা উচিত। TensorFlow Lite প্রতিনিধি হল সফ্টওয়্যার মডিউল যা একটি মোবাইল ডিভাইসে বিশেষায়িত প্রসেসিং হার্ডওয়্যার, যেমন গ্রাফিক্স প্রসেসিং ইউনিট (GPUs) বা টেনসর প্রসেসিং ইউনিট (TPUs) ব্যবহার করে মেশিন লার্নিং মডেলগুলির সম্পাদনকে ত্বরান্বিত করে। কোডের উদাহরণটি মডেল এক্সিকিউশনের হার্ডওয়্যার ত্বরণ পরিচালনা করতে NNAPI প্রতিনিধি ব্যবহার করে:

val baseOptionsBuilder = BaseOptions.builder()
   .setNumThreads(numThreads)
...
when (currentDelegate) {
   DELEGATE_CPU -> {
       // Default
   }
   DELEGATE_NNAPI -> {
       baseOptionsBuilder.useNnapi()
   }
}

TensorFlow Lite মডেল চালানোর জন্য প্রতিনিধিদের ব্যবহার করার পরামর্শ দেওয়া হয়, কিন্তু প্রয়োজন হয় না। TensorFlow Lite এর সাথে প্রতিনিধিদের ব্যবহার সম্পর্কে আরও তথ্যের জন্য, TensorFlow Lite প্রতিনিধি দেখুন।

মডেলের জন্য ডেটা প্রস্তুত করুন

আপনার অ্যান্ড্রয়েড অ্যাপে, আপনার কোডটি বিদ্যমান ডেটা যেমন অডিও ক্লিপগুলিকে একটি টেনসর ডেটা ফর্ম্যাটে রূপান্তর করে ব্যাখ্যা করার জন্য মডেলকে ডেটা সরবরাহ করে যা আপনার মডেল দ্বারা প্রক্রিয়া করা যেতে পারে। টেনসরের যে ডেটা আপনি একটি মডেলে পাস করেন তাতে অবশ্যই নির্দিষ্ট মাত্রা বা আকৃতি থাকতে হবে যা মডেলটিকে প্রশিক্ষণের জন্য ব্যবহৃত ডেটার বিন্যাসের সাথে মেলে।

এই কোড উদাহরণে ব্যবহৃত YAMNet/ক্ল্যাসিফায়ার মডেল এবং কাস্টমাইজড স্পিচ কমান্ড মডেলগুলি টেনসর ডেটা অবজেক্টগুলিকে গ্রহণ করে যা 0.975 সেকেন্ড ক্লিপগুলিতে (15600 নমুনা) 16kHz এ রেকর্ড করা একক-চ্যানেল বা মনো, অডিও ক্লিপগুলিকে উপস্থাপন করে। নতুন অডিও ডেটাতে ভবিষ্যদ্বাণী চালানোর জন্য, আপনার অ্যাপটিকে অবশ্যই সেই অডিও ডেটাকে সেই আকার এবং আকৃতির টেনসর ডেটা অবজেক্টে রূপান্তর করতে হবে। TensorFlow Lite Task Library Audio API আপনার জন্য ডেটা ট্রান্সফর্মেশন পরিচালনা করে।

উদাহরণ কোড AudioClassificationHelper ক্লাসে, অ্যাপটি একটি Android AudioRecord অবজেক্ট ব্যবহার করে ডিভাইস মাইক্রোফোন থেকে লাইভ অডিও রেকর্ড করে। কোডটি মডেলের জন্য উপযুক্ত নমুনা হারে অডিও রেকর্ড করতে সেই বস্তুটিকে তৈরি এবং কনফিগার করতে AudioClassifier ব্যবহার করে। কোডটি রূপান্তরিত অডিও ডেটা সঞ্চয় করার জন্য একটি TensorAudio অবজেক্ট তৈরি করতে AudioClassifier ব্যবহার করে। তারপর TensorAudio অবজেক্ট বিশ্লেষণের জন্য মডেলে পাস করা হয়।

এমএল মডেলে অডিও ডেটা প্রদান করতে:

  • একটি TensorAudio অবজেক্ট এবং একটি AudioRecord অবজেক্ট তৈরি করতে AudioClassifier অবজেক্ট ব্যবহার করুন:

    fun initClassifier() {
    ...
      try {
        classifier = AudioClassifier.createFromFileAndOptions(context, currentModel, options)
        // create audio input objects
        tensorAudio = classifier.createInputTensorAudio()
        recorder = classifier.createAudioRecord()
      }
    

ভবিষ্যদ্বাণী চালান

আপনার অ্যান্ড্রয়েড অ্যাপে, একবার আপনি একটি AudioRecord অবজেক্ট এবং একটি TensorAudio অবজেক্টকে একটি AudioClassifier অবজেক্টের সাথে সংযুক্ত করলে, আপনি একটি ভবিষ্যদ্বাণী বা অনুমান তৈরি করতে সেই ডেটার বিপরীতে মডেলটি চালাতে পারেন। এই টিউটোরিয়ালের উদাহরণ কোড একটি নির্দিষ্ট হারে একটি লাইভ-রেকর্ড করা অডিও ইনপুট স্ট্রিম থেকে ক্লিপগুলিতে ভবিষ্যদ্বাণী চালায়।

মডেল এক্সিকিউশন উল্লেখযোগ্য রিসোর্স ব্যবহার করে, তাই আলাদা, ব্যাকগ্রাউন্ড থ্রেডে ML মডেলের ভবিষ্যদ্বাণী চালানো গুরুত্বপূর্ণ। উদাহরণ অ্যাপটি অ্যাপের অন্যান্য ফাংশন থেকে মডেল প্রসেসিংকে আলাদা করতে একটি [ScheduledThreadPoolExecutor](https://developer.android.com/reference/java/util/concurrent/ScheduledThreadPoolExecutor) অবজেক্ট ব্যবহার করে।

অডিও শ্রেণীবিভাগের মডেলগুলি যেগুলি একটি স্পষ্ট শুরু এবং শেষের সাথে শব্দগুলিকে চিনতে পারে, যেমন শব্দগুলি, ওভারল্যাপিং অডিও ক্লিপগুলি বিশ্লেষণ করে একটি আগত অডিও স্ট্রীমে আরও সঠিক ভবিষ্যদ্বাণী তৈরি করতে পারে। এই পদ্ধতিটি মডেলটিকে একটি ক্লিপের শেষে কাটা শব্দগুলির জন্য অনুপস্থিত ভবিষ্যদ্বাণী এড়াতে সহায়তা করে৷ উদাহরণ অ্যাপে, প্রতিবার আপনি একটি ভবিষ্যদ্বাণী চালালে কোডটি অডিও রেকর্ডিং বাফার থেকে সর্বশেষ 0.975 সেকেন্ডের ক্লিপটি ধরে এবং এটি বিশ্লেষণ করে। আপনি মডেল বিশ্লেষণ থ্রেড এক্সিকিউশন পুল interval মানকে এমন একটি দৈর্ঘ্যে সেট করে ওভারল্যাপিং অডিও ক্লিপগুলি বিশ্লেষণ করতে পারেন যা বিশ্লেষণ করা ক্লিপগুলির দৈর্ঘ্যের চেয়ে ছোট। উদাহরণস্বরূপ, যদি আপনার মডেল 1 সেকেন্ডের ক্লিপ বিশ্লেষণ করে এবং আপনি ব্যবধানটি 500 মিলিসেকেন্ডে সেট করেন, তাহলে মডেলটি আগের ক্লিপের শেষ অর্ধেক এবং প্রতিবার 500 মিলিসেকেন্ড নতুন অডিও ডেটা বিশ্লেষণ করবে, 50% এর একটি ক্লিপ বিশ্লেষণ ওভারল্যাপ তৈরি করবে।

অডিও ডেটাতে ভবিষ্যদ্বাণী চালানো শুরু করতে:

  1. মডেলের জন্য অডিও রেকর্ডিং শুরু করতে AudioClassificationHelper.startAudioClassification() পদ্ধতি ব্যবহার করুন:

    fun startAudioClassification() {
      if (recorder.recordingState == AudioRecord.RECORDSTATE_RECORDING) {
        return
      }
      recorder.startRecording()
    }
    
  2. ScheduledThreadPoolExecutor অবজেক্টে একটি নির্দিষ্ট হারের interval সেট করে মডেলটি কত ঘন ঘন অডিও ক্লিপ থেকে একটি অনুমান তৈরি করে তা সেট করুন:

    executor = ScheduledThreadPoolExecutor(1)
    executor.scheduleAtFixedRate(
      classifyRunnable,
      0,
      interval,
      TimeUnit.MILLISECONDS)
    
  3. উপরের কোডে classifyRunnable অবজেক্টটি AudioClassificationHelper.classifyAudio() পদ্ধতি চালায়, যা রেকর্ডার থেকে সর্বশেষ উপলব্ধ অডিও ডেটা লোড করে এবং একটি ভবিষ্যদ্বাণী করে:

    private fun classifyAudio() {
      tensorAudio.load(recorder)
      val output = classifier.classify(tensorAudio)
      ...
    }
    

ভবিষ্যদ্বাণী প্রক্রিয়াকরণ বন্ধ করুন

আপনার অ্যাপের অডিও প্রসেসিং ফ্র্যাগমেন্ট বা অ্যাক্টিভিটি ফোকাস হারালে আপনার অ্যাপ কোড অডিও শ্রেণীবিভাগ করা বন্ধ করে দেয় তা নিশ্চিত করুন। একটি মেশিন লার্নিং মডেল ক্রমাগত চালানো একটি Android ডিভাইসের ব্যাটারি লাইফের উপর উল্লেখযোগ্য প্রভাব ফেলে। অডিও রেকর্ডিং এবং ভবিষ্যদ্বাণী প্রক্রিয়াকরণ বন্ধ করতে অডিও শ্রেণীবিভাগের সাথে যুক্ত Android কার্যকলাপ বা খণ্ডের onPause() পদ্ধতি ব্যবহার করুন।

অডিও রেকর্ডিং এবং শ্রেণীবিভাগ বন্ধ করতে:

  • রেকর্ডিং এবং মডেল এক্সিকিউশন বন্ধ করতে AudioClassificationHelper.stopAudioClassification() পদ্ধতি ব্যবহার করুন, AudioFragment ক্লাসে নীচে দেখানো হয়েছে:

    override fun onPause() {
      super.onPause()
      if (::audioHelper.isInitialized ) {
        audioHelper.stopAudioClassification()
      }
    }
    

মডেল আউটপুট হ্যান্ডেল

আপনার অ্যান্ড্রয়েড অ্যাপে, আপনি একটি অডিও ক্লিপ প্রক্রিয়া করার পরে, মডেলটি ভবিষ্যদ্বাণীগুলির একটি তালিকা তৈরি করে যা আপনার অ্যাপ কোডকে অতিরিক্ত ব্যবসায়িক যুক্তি, ব্যবহারকারীর কাছে ফলাফল প্রদর্শন বা অন্যান্য পদক্ষেপের মাধ্যমে পরিচালনা করতে হবে। যে কোনো প্রদত্ত TensorFlow Lite মডেলের আউটপুট এটি তৈরি করা ভবিষ্যদ্বাণীর সংখ্যা (এক বা একাধিক) এবং প্রতিটি ভবিষ্যদ্বাণীর জন্য বর্ণনামূলক তথ্যের পরিপ্রেক্ষিতে পরিবর্তিত হয়। উদাহরণ অ্যাপের মডেলগুলির ক্ষেত্রে, ভবিষ্যদ্বাণীগুলি হয় স্বীকৃত শব্দ বা শব্দগুলির একটি তালিকা৷ কোড উদাহরণে ব্যবহৃত AudioClassifier অপশন অবজেক্ট আপনাকে setMaxResults() পদ্ধতির সাহায্যে সর্বাধিক সংখ্যক ভবিষ্যদ্বাণী সেট করতে দেয়, যেমনটি Initialize the ML মডেল বিভাগে দেখানো হয়েছে।

মডেল থেকে ভবিষ্যদ্বাণী ফলাফল পেতে:

  1. AudioClassifier অবজেক্টের classify() পদ্ধতির ফলাফল পান এবং সেগুলিকে লিসেনার অবজেক্টে পাঠান (কোড রেফারেন্স):

    private fun classifyAudio() {
      ...
      val output = classifier.classify(tensorAudio)
      listener.onResult(output[0].categories, inferenceTime)
    }
    
  2. শ্রোতাদের onResult() ফাংশন ব্যবহার করুন ব্যবসায়িক যুক্তি নির্বাহ করে বা ব্যবহারকারীকে ফলাফল প্রদর্শন করে আউটপুট পরিচালনা করুন:

    private val audioClassificationListener = object : AudioClassificationListener {
      override fun onResult(results: List<Category>, inferenceTime: Long) {
        requireActivity().runOnUiThread {
          adapter.categoryList = results
          adapter.notifyDataSetChanged()
          fragmentAudioBinding.bottomSheetLayout.inferenceTimeVal.text =
            String.format("%d ms", inferenceTime)
        }
      }
    

এই উদাহরণে ব্যবহৃত মডেলটি শ্রেণীবদ্ধ শব্দ বা শব্দের জন্য একটি লেবেল সহ ভবিষ্যদ্বাণীগুলির একটি তালিকা তৈরি করে এবং 0 থেকে 1 এর মধ্যে একটি ভবিষ্যদ্বাণী স্কোর তৈরি করে যা ভবিষ্যদ্বাণীর আত্মবিশ্বাসের প্রতিনিধিত্ব করে, 1 হল সর্বোচ্চ আত্মবিশ্বাসের রেটিং। সাধারণভাবে, 50% (0.5) এর নিচে স্কোর সহ ভবিষ্যদ্বাণীগুলিকে সিদ্ধান্তহীন বলে মনে করা হয়। যাইহোক, আপনি কীভাবে কম-মূল্যের পূর্বাভাসের ফলাফলগুলি পরিচালনা করবেন তা আপনার এবং আপনার আবেদনের প্রয়োজনের উপর নির্ভর করে।

একবার মডেলটি ভবিষ্যদ্বাণী ফলাফলের একটি সেট ফিরিয়ে দিলে, আপনার অ্যাপ্লিকেশনটি আপনার ব্যবহারকারীর কাছে ফলাফল উপস্থাপন করে বা অতিরিক্ত যুক্তি প্রয়োগ করে সেই ভবিষ্যদ্বাণীগুলিতে কাজ করতে পারে। উদাহরণ কোডের ক্ষেত্রে, অ্যাপ্লিকেশনটি অ্যাপ ব্যবহারকারী ইন্টারফেসে চিহ্নিত শব্দ বা শব্দ তালিকাভুক্ত করে।

পরবর্তী পদক্ষেপ

আপনি TensorFlow Hub- এ অডিও প্রসেসিংয়ের জন্য অতিরিক্ত TensorFlow Lite মডেলগুলি খুঁজে পেতে পারেন এবং পূর্ব-প্রশিক্ষিত মডেল গাইড পৃষ্ঠার মাধ্যমে। TensorFlow Lite-এর সাথে আপনার মোবাইল অ্যাপ্লিকেশনে মেশিন লার্নিং বাস্তবায়ন সম্পর্কে আরও তথ্যের জন্য, TensorFlow Lite বিকাশকারী গাইড দেখুন।