blob: 369af00ede77944b1914cc73abff1ddb927bbde8 [file] [log] [blame]
/*
* 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_ */