--- /dev/null
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+#ifndef MEASURE_RMS_H
+#define MEASURE_RMS_H
+
+/* Measure the rms of the non-silence segment of the signal in pcm, which
+ is of numSamples length, and sampled at sampleRate. pcm is assumed to
+ consist of silence - signal - silence, as might be logged during a
+ speech recognition attempt. The stimulus signal in this case should
+ be approximately a 3-second burst of pink noise presented at a level
+ comparable to normal speaking level. The RMS is measured using 25ms
+ duration non-overlapping windows. These are averaged over the whole
+ non-silence part of pcm, and the result is returned in rms. The
+ standard deviation of this measurement over all frames is returned in
+ stdRms, and the estimated duration of the non-silence region, in
+ seconds, is returned in duration. The target signal is taken to be
+ that segment that is onsetThresh dB above the background, and is
+ expected to be continuous, once the onset has been found. If
+ onsetThresh < 0.0, simply make the measurememt over the entire pcm
+ signal. In both cases, the mean of the entire signal is returned in
+ mean. */
+void measureRms(short* pcm, int numSamples, float sampleRate,
+ float onsetThresh, float* rms, float* stdRms,
+ float* mean, float* duration);
+
+
+#endif /* MEASURE_RMS_H */