Cattura audio inviata al server di riconoscimento vocale di Google

per riconoscere il linguaggio da parte del server Google, utilizzo la class SpeechReceachzer in combinazione con ReceachtionListener come suggerito dalla risposta di Stephan a questa domanda . Inoltre, cerco di acquisire il segnale audio che viene riconosciuto utilizzando il callback onBufferReceived () da ReceachtionListener come:

byte[] sig = new byte[500000] ; int sigPos = 0 ; ... public void onBufferReceived(byte[] buffer) { System.arrayscopy(buffer, 0, sig, sigPos, buffer.length) ; sigPos += buffer.length ; } ... 

Questo sembra funzionare bene, ad exception di quando SpeechReceachzer non riesce a connettersi al server Google, quando un pezzo di audio non viene copiato nell'arrays di cui sopra e un'output di timeout di connessione HTTP viene lanciata. SpeechReceachzer si collega al server Google e i risultati di riconoscimento indicano che è stato ricevuto un segnale audio completo; solo la matrix sig manca alcuni pezzi audio.

  • Invia file alla printingnte WiFi
  • Come faccio ad aggiungere parole ai suggerimenti sulla parte superiore della tastiera soft
  • È ansible caricare dynamicmente una libreria in runtime da un'applicazione Android?
  • Imansible get Action Bar nella class di frammento
  • font malayalam in android?
  • L'utilizzo dell'attributo onClick in xml layout crea una window di dialogo NoSuchMethodException in Android
  • Qualcuno ha lo stesso problema? Qualche suggerimento per la soluzione? Grazie!

  • Come possiamo tessere un'image vettoriale?
  • Spinner: get lo stato o ricevere la notifica quando si apre
  • Android emulatore - rotazione dello schermo
  • Utilizzare il carattere Roboto per i dispositivi precedenti
  • Aggiungere l'imbottitura in vista programmaticamente
  • Come fornire un'icona di lancio diversa per sapore di prodotto
  • 2 Solutions collect form web for “Cattura audio inviata al server di riconoscimento vocale di Google”

    Tendo a dire che potrebbe essere una incoerenza nel comportmento del servizio di riconoscimento, forse anche un bug nella versione Android utilizzata. Tuttavia, la documentazione afferma, che non è garantito che questo metodo sia chiamato in modo che rientri nella specifica. Quello che ho notato finora è il seguente (in Android 2.3.4): ottengo i byte durante la logging, ma se esiste ad esempio un SocketTimeout , tenta di submit i dati al server dopo un po 'di tempo, ma senza call onBufferReceived per gli stessi dati. Il codice utilizzato per test è stato lo stesso di quello che hai collegato nel tuo post.

    Perché pensi che alcuni brani mancano dall'audio ricevuto nel metodo? Se c'erano solo pochi pezzi mancanti, potrebbe anche essere il caso, che il riconoscimento ha funzionato anche se questi pezzi erano mancanti.

    Nelle versioni moderne, onBufferReceieved non funziona, è ansible controllare il record / salvare l'audio da un intento di riconoscimento vocale .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.