Wie kann ich Spracherkennung ohne lästige Dialog in Android-Handys verwenden
Ist dies möglich, ohne ändern der android-APIs?
Ich habe ein Artikel über dieses.
Es ist ein ein Kommentar, den ich tun sollte, änderungen an der android-APIs.
Aber es nicht sagen, wie Sie die änderung.
Kann jemand mir einige Tipps geben, wie das zu tun?
Danke!
Habe ich fand diesen Artikel;
SpeechRecognizer
Seine Bedürfnisse ist fast die gleiche wie meine.
Es ist eine gute Referenz für mich!
Ich habe ganz habe dieses problem gelöst.
Ich googelte einen brauchbaren Beispielcode aus diesem China-website
Hier ist mein source code
package voice.recognition.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.speech.RecognitionListener;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
import android.util.Log;
public class voiceRecognitionTest extends Activity implements OnClickListener
{
private TextView mText;
private SpeechRecognizer sr;
private static final String TAG = "MyStt3Activity";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button speakButton = (Button) findViewById(R.id.btn_speak);
mText = (TextView) findViewById(R.id.textView1);
speakButton.setOnClickListener(this);
sr = SpeechRecognizer.createSpeechRecognizer(this);
sr.setRecognitionListener(new listener());
}
class listener implements RecognitionListener
{
public void onReadyForSpeech(Bundle params)
{
Log.d(TAG, "onReadyForSpeech");
}
public void onBeginningOfSpeech()
{
Log.d(TAG, "onBeginningOfSpeech");
}
public void onRmsChanged(float rmsdB)
{
Log.d(TAG, "onRmsChanged");
}
public void onBufferReceived(byte[] buffer)
{
Log.d(TAG, "onBufferReceived");
}
public void onEndOfSpeech()
{
Log.d(TAG, "onEndofSpeech");
}
public void onError(int error)
{
Log.d(TAG, "error " + error);
mText.setText("error " + error);
}
public void onResults(Bundle results)
{
String str = new String();
Log.d(TAG, "onResults " + results);
ArrayList data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
for (int i = 0; i < data.size(); i++)
{
Log.d(TAG, "result " + data.get(i));
str += data.get(i);
}
mText.setText("results: "+String.valueOf(data.size()));
}
public void onPartialResults(Bundle partialResults)
{
Log.d(TAG, "onPartialResults");
}
public void onEvent(int eventType, Bundle params)
{
Log.d(TAG, "onEvent " + eventType);
}
}
public void onClick(View v) {
if (v.getId() == R.id.btn_speak)
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test");
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5);
sr.startListening(intent);
Log.i("111111","11111111");
}
}
}
Löschen Sie die lästigen Protokolle nach dem debugging!
InformationsquelleAutor der Frage Jim31837 | 2011-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die SpeechRecognizer - Schnittstelle. Ihre app muss über die RECORD_AUDIO Berechtigung, und Sie können dann erstellen Sie ein SpeechRecognizer, geben Sie es ein RecognitionListener und rufen Sie dann seine
startListening
Methode. Erhalten Sie Rückrufe an den listener, wenn das speech recognizer ist bereit zu beginnen, hören, für die Rede-und, wie es erhält Rede-und wandelt es in text um.InformationsquelleAutor der Antwort Femi
GAST hat eine handliche abstrakte Klasse, die Sie verwenden können, um die Nutzung der
SpeechRecognizer
Klasse mit sehr wenig neuen code. Es ist auch ein Beispiel für das ausführen derSpeechRecognizer
als hintergrund-service verwenden diese und dieseInformationsquelleAutor der Antwort gregm
Vielen Dank für dieses posting! Ich fand es hilfreich zu definieren, die onclick-listener in oncreate:
InformationsquelleAutor der Antwort mnutsch
Ich habe versucht zu speichern, mein learning von TTS und STT in das Github-Repo . Wenn Sie wie Zwischenlagen, dann können Sie mein Projekt.
Es verwendet Factory-pattern, um Sprache in Text umzuwandeln in on line ohne lästigen dialog
SpeechToText (STT) .
Ausgabe :-
TextToSpeech (TTS)
Ausgabe :-
InformationsquelleAutor der Antwort Hitesh Sahu