CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 12 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 26 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

speech recognition timeout

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid L'avatar di supertommino


    Registrato dal
    Nov 2011
    Messaggi
    891
    Smartphone
    Nexus 6P, Nexus 5, Nexus s

    Ringraziamenti
    19
    Ringraziato 53 volte in 43 Posts
    Predefinito

    speech recognition timeout

    Ciao a tutti..
    E' un mese che non riesco a risolvere questa cosa:
    Ho un'applicazione che riconosce quello che dice l'utente.. Senza però mostrare il dialogo di riconoscimento vocale di google.
    Utilizzo questo codice:
    codice:
    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");
                }
       }
    }
    Tutto funziona ma se uso il mio nexus s se aspetto a parlare va in timeout però non richiama l'onError come dovrebbe fare..
    Testato anche sul galaxy s e li lo richiama senza problemi..
    Cosi nel nexus s non riesco a capire quando il riconoscmento vocale smette di ascoltare......
    Come posso risolvere?
    ps. La cosa migliore, se possibile, sarebbe di eliminare il timeout forse.. Ma non so come fare

  2.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy