Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android ऐप में SpeechRecognizer API का उपयोग करना

Android SpeechRecognizer API - वॉयस रिकग्निशन इम्प्लीमेंटेशन

यह उदाहरण दर्शाता है कि Android के बिल्ट-इन SpeechRecognizer API का उपयोग करके स्पीच-टू-टेक्स्ट कार्यक्षमता कैसे जोड़ी जाती है। उपयोगकर्ता की आवाज सुनकर टेक्स्ट में बदलता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें और प्रोजेक्ट बनाएं।

चरण 2: लेआउट में TextView

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16sp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:textSize="16sp"
        android:textStyle="bold" />

</LinearLayout>

चरण 3: MainActivity.java - स्पीच रिकग्निशन लॉजिक

package app.com.sample;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.widget.TextView;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private final int REQUEST_SPEECH_RECOGNIZER = 3000;
    private TextView textView;
    private final String mQuestion = "पृथ्वी पर सबसे बड़ी ऑनलाइन रिटेलर कंपनी कौन सी है?";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        textView = findViewById(R.id.textView);
        startSpeechRecognizer();
    }

    private void startSpeechRecognizer() {
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, mQuestion);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "hi-IN"); // हिंदी के लिए
        startActivityForResult(intent, REQUEST_SPEECH_RECOGNIZER);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_SPEECH_RECOGNIZER) {
            if (resultCode == RESULT_OK) {
                List results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                String mAnswer = results.get(0);
                
                if (mAnswer.toUpperCase().contains("AMAZON") || mAnswer.contains("अमेज़न")) {
                    textView.setText(String.format("\n\nप्रश्न: %s\n\nआपका उत्तर '%s' सही है!", mQuestion, mAnswer));
                } else {
                    textView.setText(String.format("\n\nप्रश्न: %s\n\nआपका उत्तर '%s' गलत है!", mQuestion, mAnswer));
                }
            } else {
                textView.setText("स्पीच रिकग्निशन रद्द या विफल");
            }
        }
    }
}

चरण 4: AndroidManifest.xml - रिकॉर्ड ऑडियो अनुमति

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
    </application>
    
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    
</manifest>

मुख्य RecognizerIntent एक्स्ट्रा

एक्स्ट्राविवरण
EXTRA_LANGUAGE_MODELLANGUAGE_MODEL_FREE_FORM (डिक्टेशन) या WEB_SEARCH
EXTRA_PROMPTउपयोगकर्ता को दिखाया जाने वाला प्रॉम्प्ट टेक्स्ट
EXTRA_LANGUAGEभाषा कोड (जैसे "hi-IN", "en-US")
EXTRA_MAX_RESULTSवापस किए जाने वाले अधिकतम परिणाम (डिफ़ॉल्ट 1)
EXTRA_PARTIAL_RESULTSआंशिक परिणाम प्राप्त करने के लिए true
EXTRA_SPEECH_INPUT_MIN_LENGTH_MILLISन्यूनतम रिकॉर्डिंग अवधि
EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLISचुप्पी के बाद रुकने का समय

उन्नत: SpeechRecognizer क्लास (UI के बिना)

कस्टम UI के लिए SpeechRecognizer क्लास का उपयोग करें:

SpeechRecognizer recognizer = SpeechRecognizer.createSpeechRecognizer(this);
recognizer.setRecognitionListener(new RecognitionListener() {
    @Override
    public void onResults(Bundle results) {
        ArrayList matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
        // परिणाम प्रोसेस करें
    }
    // अन्य ओवरराइड मेथड्स...
});

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
recognizer.startListening(intent);

ऐप चलाएं

डिवाइस कनेक्ट करें (माइक्रोफोन आवश्यक), Run पर क्लिक करें। ऐप खुलते ही स्पीच डायलॉग खुलेगा। प्रश्न का उत्तर बोलें - परिणाम TextView में दिखेगा।

  1. Android में Snackbar का उपयोग कैसे करें? Android में Snackbar का उपयोग कैसे करें?

    परिचय Snackbar Material Design का एक घटक है जो स्क्रीन के निचले भाग में एक संक्षिप्त संदेश दिखाता है। यह उदाहरण Snackbar के बुनियादी उपयोग और अनुकूलन को दर्शाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.

  1. Android में CheckBox का उपयोग कैसे करें? Android में CheckBox का उपयोग कैसे करें?

    Android में CheckBox के साथ ऑर्डर सिस्टम बनाना यह उदाहरण दर्शाता है कि कई CheckBox विजेट्स का उपयोग करके एक सरल फूड ऑर्डर ऐप कैसे बनाया जाए, जहां उपयोगकर्ता आइटम चुन सकता है और कुल राशि देख सकता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट फ़ाइल (res/lay

  1. Android में NavigationView (नेविगेशन ड्रॉअर) कैसे उपयोग करें? Android में NavigationView (नेविगेशन ड्रॉअर) कैसे उपयोग करें?

    परिचय NavigationView मटेरियल डिज़ाइन का साइड नेविगेशन ड्रॉअर (हैमबर्गर मेनू) है। यह DrawerLayout के अंदर होता है और मेनू आइटम्स, हेडर, और नेविगेशन हैंडलिंग प्रदान करता है। यह ट्यूटोरियल Navigation Components के साथ आधुनिक सेटअप दिखाता है। आवश्यक चरण चरण 1: नया प्रोजेक्ट बनाएं Android Studio में Fi