Domanda

Sto scrivendo un'applicazione che si comporterà simile al riconoscimento vocale esistente, ma sarà l'invio dei dati audio a un servizio Web di proprietà di eseguire la parte di riconoscimento vocale. Sto usando lo standard MEDIARECORD (che è AMR-NB codificato), che sembra essere perfetto per il riconoscimento vocale. Gli unici dati forniti da questo è l'ampiezza tramite il getMaxAmplitude () metodo.

Sto cercando di rilevare quando la persona inizia a parlare in modo che quando la persona smette di parlare per circa 2 secondi posso procedere per inviare i dati audio al servizio web. In questo momento sto usando una soglia per l'ampiezza che se va oltre un valore (cioè 1500) poi mi assumo la persona che sta parlando. La mia preoccupazione è che i livelli di ampiezza possono variare a seconda del dispositivo (cioè Nexus One v Droid), quindi sono alla ricerca di un approccio più standard per questo che può essere derivato dai valori di ampiezza.

P.S. Ho guardato grafica ampiezza ma non fornisce un modo per farlo con solo l'ampiezza.

È stato utile?

Soluzione

Bene, questo potrebbe non essere di molto aiuto, ma come di iniziare misurando l'offset rumore catturato dal microfono del dispositivo con l'applicazione, e applicare la soglia basata dinamicamente su questo? In questo modo si dovrebbe rendere adattabile ai microfoni dei diversi dispositivi e anche per l'ambiente che l'utente lo sta utilizzando a, in un determinato momento.

Altri suggerimenti

1500 è troppo basso di un numero. Misurando la variazione di ampiezza funzionerà meglio. Tuttavia, sarà ancora causare rilevazioni mancare.

temo l'unico modo per risolvere questo problema è quello di capire come riconoscere una semplice parola o un tono piuttosto che semplicemente rilevare il rumore.

La maggior parte degli smartphone sono dotati di un sensore di prossimità. Android ha API per l'utilizzo di questi sensori. Questo sarebbe sufficiente per il lavoro che avete descritto. Quando l'utente sposta il telefono vicino all'orecchio, è possibile codificare l'applicazione per avviare la registrazione. Dovrebbe essere abbastanza facile.

classe Sensor for android

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top