summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTzung-Bi Shih <tzungbi@chromium.org>2019-07-02 03:05:33 +0800
committerCommit Bot <commit-bot@chromium.org>2019-09-19 07:59:08 +0000
commitf337d5b320867c74672f517c87543acaa447278c (patch)
tree692d1b2d048063cced39764c4e4cbc7139ba23cb /include
parentaa17252161c5cc526555c2f82ad238361f7d22a0 (diff)
downloadchrome-ec-f337d5b320867c74672f517c87543acaa447278c.tar.gz
audio_codec: integrate speech-micro
Leverage speech-micro to detect hotword. BRANCH=none BUG=b:122027734, b:123268236, b:132319180 TEST=1. define CONFIG_AUDIO_CODEC in board.h 2. define CONFIG_AUDIO_CODEC_DMIC in board.h 3. define CONFIG_AUDIO_CODEC_DMIC_SOFTWARE_GAIN in board.h 4. define CONFIG_AUDIO_CODEC_DMIC_MAX_SOFTWARE_GAIN in board.h 5. define CONFIG_AUDIO_CODEC_WOV in board.h 6. make BOARD=kukui_scp -j Change-Id: I8b238fd8bd9af8e70d5a747650eb8b7dbf4200cb Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1602453 Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/hotword_dsp_api.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/include/hotword_dsp_api.h b/include/hotword_dsp_api.h
new file mode 100644
index 0000000000..369af00ede
--- /dev/null
+++ b/include/hotword_dsp_api.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2019 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SPEECH_MICRO_API_HOTWORD_DSP_API_H_
+#define SPEECH_MICRO_API_HOTWORD_DSP_API_H_
+
+/*
+ * This API creates a global singleton behind the scenes. It's the caller's
+ * responsibility to store the contents of the hotword_memmap model file into
+ * aligned memory and pass its pointer to this library. Note that no additional
+ * memory is allocated and hotword_memmap will contain both the model and the
+ * scratch buffers.
+ */
+
+/* Specifies the required alignment for the hotword_memmap. */
+extern const int kGoogleHotwordRequiredDataAlignment;
+
+/*
+ * Called to set up the Google hotword algorithm. Returns 1 if successful, and 0
+ * otherwise.
+ */
+int GoogleHotwordDspInit(void *hotword_memmap);
+
+/*
+ * Call with every frame of samples to process. If a hotword is detected, this
+ * function returns 1 otherwise 0. The required preamble length will be set to
+ * the number of milliseconds of buffered audio to be transferred to the AP.
+ */
+int GoogleHotwordDspProcess(const void *samples, int num_samples,
+ int *preamble_length_ms);
+
+/*
+ * If there's a break in the audio stream (e.g. when Sound Activity Detection is
+ * enabled), call this before any subsequent calls to GoogleHotwordDspProcess.
+ */
+void GoogleHotwordDspReset(void);
+
+/* Returns the maximum possible audio preamble length in miliseconds. */
+int GoogleHotwordDspGetMaximumAudioPreambleMs(void);
+
+/* Returns an internal version number that this library was built at. */
+extern int GoogleHotwordVersion(void);
+
+#endif /* SPEECH_MICRO_API_HOTWORD_DSP_API_H_ */