Android API for Voice Recognition
Android API for Voice Recognition, geliştiricilerin Android cihazlarda ses tanıma özelliklerini uygulamalarına entegre etmelerine olanak tanıyan bir dizi araç ve sınıftır. Bu API, kullanıcıların sesli komutlar vererek uygulamalarla etkileşim kurmasını sağlar.
Ses Tanıma Nasıl Çalışır?
Ses tanıma, konuşulan kelimeleri veya cümleleri metne dönüştürme işlemidir. Bu işlem, aşağıdaki adımlardan oluşur:
- Ses girişi: Kullanıcı, mikrofon aracılığıyla sesli komutunu verir.
- Ses işleme: Android cihaz, ses girişini işler ve özelliklerini çıkarır.
- Özellik eşleştirme: Android cihaz, ses girişinin özelliklerini önceden tanımlanmış bir kelime veya cümle kümesiyle eşleştirir.
- Metin dönüşümü: Android cihaz, eşleşen kelime veya cümleyi metne dönüştürür.
Android API for Voice Recognition’ın Özellikleri
Android API for Voice Recognition, aşağıdaki özellikleri sunar:
- Sesli komut tanıma: Kullanıcıların sesli komutlar vererek uygulamalarla etkileşim kurmasını sağlar.
- Konuşma tanıma: Kullanıcıların konuşmasını metne dönüştürür.
- Dil desteği: Birçok farklı dili destekler.
- Ayarlanabilir hassasiyet: Ses tanıma hassasiyetini ayarlama olanağı sağlar.
- Gelişmiş özellikler: Ses tanıma sonuçlarını iyileştirmek için çeşitli gelişmiş özellikler sunar.
Android API for Voice Recognition’ı Kullanma
Android API for Voice Recognition’ı kullanmak için aşağıdaki adımları izleyebilirsiniz:
- Android Studio’yu açın ve yeni bir proje oluşturun.
- Projenize “Speech Recognition” adını verin ve “Empty Activity” şablonunu seçin.
- Projenize aşağıdaki izinleri ekleyin:
xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
- Projenize aşağıdaki bağımlılığı ekleyin:
xml
implementation 'com.google.android.gms:play-services-speech:19.0.0'
- Aşağıdaki kodu MainActivity sınıfınıza ekleyin:
“`java
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.speech.RecognitionListener;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity implements RecognitionListener {
private static final int REQUEST_RECORD_AUDIO_PERMISSION = 200;
private SpeechRecognizer speechRecognizer;
private Button startButton;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startButton = findViewById(R.id.start_button);
textView = findViewById(R.id.text_view);
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
speechRecognizer.setRecognitionListener(this);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.RECORD_AUDIO}, REQUEST_RECORD_AUDIO_PERMISSION);
} else {
startListening();
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_RECORD_AUDIO_PERMISSION && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
startListening();
}
}
private void startListening() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak something...");
speechRecognizer.startListening(intent);
}
@Override
public void onReadyForSpeech(Bundle params) {
Log.d("Speech Recognition", "Ready for speech");
}
@Override
public void onBeginningOfSpeech() {
Log.d("Speech Recognition", "Beginning of speech");
}
@Override
public void onRmsChanged(float rmsdB) {
Log.d("Speech Recognition", "RMS changed: " + rmsdB);
}
@Override
public void onBufferReceived(byte[] buffer) {
Log.d("Speech Recognition", "Buffer received: " + buffer.length);
}
@Override
public void onEndOfSpeech() {
Log.d("Speech Recognition", "End of speech");
}
@Override
public void onError(int error) {
Log.e("Speech Recognition", "Error: " + error);
}
@Override
public void onResults(Bundle results) {
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (matches != null && matches.size() > 0) {
textView.setText(matches.get(0));
}
}
@Override
public void onPartialResults(Bundle partialResults) {
ArrayList<String> matches = partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (matches != null && matches.size() > 0) {
textView.setText(matches.get(0));
}
}
@Override
public void onEvent(int eventType, Bundle params) {
Log.d("Speech Recognition", "Event: " + eventType);
}
}
“`
- Uygulamayı çalıştırın ve mikrofon simgesine dokunarak sesli komutunuzu verin.