[autotest] audio_test_utils: Check anomaly in check_recorded_frequency
Add an argument check_anomaly in check_recorded_frequency. Use anomaly
detection algorithm in audio_analysis module to check the signal block
by block and find the blocks that are not similar to sine wave.
BUG=chromium:573154
TEST=not used yet
Change-Id: I4df072ba06953f5d8723dc8b5462dfc5a54859ea
Reviewed-on: https://chromium-review.googlesource.com/319969
Commit-Ready: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Kalin Stoyanov <kalin@chromium.org>
diff --git a/client/cros/audio/audio_analysis.py b/client/cros/audio/audio_analysis.py
index 0811622..a708200 100644
--- a/client/cros/audio/audio_analysis.py
+++ b/client/cros/audio/audio_analysis.py
@@ -178,7 +178,11 @@
# amplitude is 1.
PATTERN_MATCHING_THRESHOLD = 0.85
-def anomaly_detection(signal, rate, freq, block_size,
+# The default block size of pattern matching.
+ANOMALY_DETECTION_BLOCK_SIZE = 120
+
+def anomaly_detection(signal, rate, freq,
+ block_size=ANOMALY_DETECTION_BLOCK_SIZE,
threshold=PATTERN_MATCHING_THRESHOLD):
"""Detects anomaly in a sine wave signal.