// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_SPEECH_ENDPOINTER_ENDPOINTER_H_ #define COMPONENTS_SPEECH_ENDPOINTER_ENDPOINTER_H_ #include <stdint.h> #include "components/speech/endpointer/energy_endpointer.h" class EpStatus; class AudioChunk; namespace speech { // A simple interface to the underlying energy-endpointer implementation, this // class lets callers provide audio as being recorded and let them poll to find // when the user has stopped speaking. // // There are two events that may trigger the end of speech: // // speechInputPossiblyComplete event: // // Signals that silence/noise has been detected for a *short* amount of // time after some speech has been detected. It can be used for low latency // UI feedback. To disable it, set it to a large amount. // // speechInputComplete event: // // This event is intended to signal end of input and to stop recording. // The amount of time to wait after speech is set by // speech_input_complete_silence_length_ and optionally two other // parameters (see below). // This time can be held constant, or can change as more speech is detected. // In the latter case, the time changes after a set amount of time from the // *beginning* of speech. This is motivated by the expectation that there // will be two distinct types of inputs: short search queries and longer // dictation style input. // // Three parameters are used to define the piecewise constant timeout function. // The timeout length is speech_input_complete_silence_length until // long_speech_length, when it changes to // long_speech_input_complete_silence_length. class Endpointer { … }; } // namespace speech #endif // COMPONENTS_SPEECH_ENDPOINTER_ENDPOINTER_H_