Here is a hint that what you are suggesting will be possible. This is a semi-real time audio level meter
that on my iMac OSX 10.9.5 system with Mathematica Version 9, shows rapid responses to audio inputs to the system microphone. I don't know if my attempt to convert the
data to a decibel form is needed. Am guessing here on the meaning of the data returned by record[9] as being the Absolute value of the last measurement.
FrontEndExecute[ FrontEnd`RecordSound[4]];
FrontEndExecute[ FrontEnd`RecordSound[7]];
FrontEndExecute[ FrontEnd`RecordSound[8]];
record[m_, n_: 0] := FrontEndExecute[FrontEnd`RecordSound[m, n]];
FrontEndExecute[
FrontEnd`RecordSound[1, 0, 0]]; (* start recording *)
Dynamic[
ThermometerGauge[20 Log[10, record[9]], {-20, 0}],
UpdateInterval -> 0.01]
For your application, you would continuously read record[9] and when it drops below a threshold, you would stop recording with record[2] and then return record[3].
You might fancy this up by applying a low pass filter to the real time signal, before thresholding, so the system is not too responsive.
Edit, 15 October 2014. I have added some resets to make this more reliable. It is ok running on Mathematica 9, but not on Version 10.