title: Voice Activity Detection in Android
body: <p>I am writing an application that will behave similar to the existing Voice recognition but will be sending the sound data to a proprietary web service to perform the speech recognition part. I am using the standard MediaRecord (which is AMR-NB encoded) which seems to be perfect to speech recognition. The only data provided by this is the Amplitude via the <em>getMaxAmplitude()</em> method.</p>
  
  <p>I am trying to detect when the person starts to talk so that when the person stops talking for about 2 seconds I can proceed to send the sound data to the web service. Right now I am using a threshold for the amplitude that if its goes over a value (i.e. 1500) then I assume the person is speaking. My concern is that the amplitude levels may vary by device (i.e. Nexus One v Droid), so I am looking for a more standard approach to this that can be derived from the amplitude values.</p>
  
  <p>P.S.
  I looked at <a href="https://stackoverflow.com/questions/2448670/graphing-amplitude">graphing-amplitude</a> but it doesn't provide a way to do it with just the amplitude.</p>