2015-05-16 8 views
10

Ho un'attività che implementa RecognitionListener. Per rendere più continuo, ogni volta onEndOfSpeech() mi metto l'ascoltatore ancora:Riconoscimento vocale continuo Android - Senza spazi vuoti

speech.startListening(recognizerIntent); 

Ma, ci vuole un po 'di tempo (circa mezzo secondo) fino a che non inizia, quindi c'è questo mezzo secondo di distacco, dove nulla è in ascolto . Pertanto, mi mancano le parole che sono state pronunciate in quella differenza di tempo.

D'altra parte, quando uso l'immissione vocale di Google, per dettare i messaggi al posto della tastiera, questo intervallo di tempo non esiste. Significato: c'è una soluzione.

Che cos'è?

Grazie

+0

Hai successo in questo? – Herry

risposta

2

prova a guardare un paio di altri API ....

speech demo: ha origine here ed è discusso here e funzionanti a CLI here

potresti usare il full duplex google api (il suo limite massimo è di 50 al giorno)

Oppure se ti piace l'idea generale controlla ibm's wa tson discussi here

IMO: è più complesso ma non limitato.

+0

lo streaming http per i servizi di terze parti sembra l'unica soluzione a questo punto. –

2

Ci sono opzioni come:

intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000); // value to wait 

o

intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000); 

Questi smesso di lavorare su Jelly Bean e al di sopra, ma lavorare su ICS e sotto - non so se destinati o un bug!

+0

Grazie, intendevo quando quelli non funzionano ... –

3

Si consiglia di utilizzare CMUSphinx per riconoscere il parlato continuamente. Per ottenere il riconoscimento vocale continuo utilizzando l'API di riconoscimento vocale di Google, potresti dover ricorrere a un ciclo in un servizio in background che richiederà troppe risorse e esaurirà la batteria del dispositivo.

D'altra parte, Pocketsphinx funziona davvero alla grande. È abbastanza veloce da individuare una frase chiave e riconoscere i comandi vocali dietro la schermata di blocco senza che gli utenti tocchino il loro dispositivo. E fa tutto questo offline. Puoi provare lo demo.

Se davvero si vuole utilizzare API di Google, see this

+1

Grazie, anche se Pocketsphinx non funziona bene per la dettatura del parlato naturale (funziona benissimo per una grammatica limitata - ottimo per i comandi), e non la soluzione nel il link all'API di Google ha lo stesso problema che ho postato? –

+0

@RonenRabinovici Spiacente, ho aggiornato il collegamento –

+0

Come faccio a scaricare pocketphinx –