Refactor C API to prefix each API with SherpaOnnx. (#1171)
This commit is contained in:
@@ -193,148 +193,155 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOnlineStream SherpaOnnxOnlineStream;
|
||||
|
||||
/// @param config Config for the recognizer.
|
||||
/// @return Return a pointer to the recognizer. The user has to invoke
|
||||
// DestroyOnlineRecognizer() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineRecognizer *CreateOnlineRecognizer(
|
||||
// SherpaOnnxDestroyOnlineRecognizer() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineRecognizer *SherpaOnnxCreateOnlineRecognizer(
|
||||
const SherpaOnnxOnlineRecognizerConfig *config);
|
||||
|
||||
/// Free a pointer returned by CreateOnlineRecognizer()
|
||||
/// Free a pointer returned by SherpaOnnxCreateOnlineRecognizer()
|
||||
///
|
||||
/// @param p A pointer returned by CreateOnlineRecognizer()
|
||||
SHERPA_ONNX_API void DestroyOnlineRecognizer(
|
||||
/// @param p A pointer returned by SherpaOnnxCreateOnlineRecognizer()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOnlineRecognizer(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer);
|
||||
|
||||
/// Create an online stream for accepting wave samples.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOnlineRecognizer()
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOnlineRecognizer()
|
||||
/// @return Return a pointer to an OnlineStream. The user has to invoke
|
||||
/// DestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *CreateOnlineStream(
|
||||
/// SherpaOnnxDestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *SherpaOnnxCreateOnlineStream(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer);
|
||||
|
||||
/// Create an online stream for accepting wave samples with the specified hot
|
||||
/// words.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOnlineRecognizer()
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOnlineRecognizer()
|
||||
/// @return Return a pointer to an OnlineStream. The user has to invoke
|
||||
/// DestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *CreateOnlineStreamWithHotwords(
|
||||
/// SherpaOnnxDestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *
|
||||
SherpaOnnxCreateOnlineStreamWithHotwords(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer, const char *hotwords);
|
||||
|
||||
/// Destroy an online stream.
|
||||
///
|
||||
/// @param stream A pointer returned by CreateOnlineStream()
|
||||
SHERPA_ONNX_API void DestroyOnlineStream(const SherpaOnnxOnlineStream *stream);
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOnlineStream()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOnlineStream(
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// Accept input audio samples and compute the features.
|
||||
/// The user has to invoke DecodeOnlineStream() to run the neural network and
|
||||
/// decoding.
|
||||
/// The user has to invoke SherpaOnnxDecodeOnlineStream() to run the neural
|
||||
/// network and decoding.
|
||||
///
|
||||
/// @param stream A pointer returned by CreateOnlineStream().
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOnlineStream().
|
||||
/// @param sample_rate Sample rate of the input samples. If it is different
|
||||
/// from config.feat_config.sample_rate, we will do
|
||||
/// resampling inside sherpa-onnx.
|
||||
/// @param samples A pointer to a 1-D array containing audio samples.
|
||||
/// The range of samples has to be normalized to [-1, 1].
|
||||
/// @param n Number of elements in the samples array.
|
||||
SHERPA_ONNX_API void AcceptWaveform(const SherpaOnnxOnlineStream *stream,
|
||||
int32_t sample_rate, const float *samples,
|
||||
int32_t n);
|
||||
SHERPA_ONNX_API void SherpaOnnxOnlineStreamAcceptWaveform(
|
||||
const SherpaOnnxOnlineStream *stream, int32_t sample_rate,
|
||||
const float *samples, int32_t n);
|
||||
|
||||
/// Return 1 if there are enough number of feature frames for decoding.
|
||||
/// Return 0 otherwise.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOnlineRecognizer
|
||||
/// @param stream A pointer returned by CreateOnlineStream
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOnlineRecognizer
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOnlineStream
|
||||
SHERPA_ONNX_API int32_t
|
||||
IsOnlineStreamReady(const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
SherpaOnnxIsOnlineStreamReady(const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// Call this function to run the neural network model and decoding.
|
||||
//
|
||||
/// Precondition for this function: IsOnlineStreamReady() MUST return 1.
|
||||
/// Precondition for this function: SherpaOnnxIsOnlineStreamReady() MUST
|
||||
/// return 1.
|
||||
///
|
||||
/// Usage example:
|
||||
///
|
||||
/// while (IsOnlineStreamReady(recognizer, stream)) {
|
||||
/// DecodeOnlineStream(recognizer, stream);
|
||||
/// while (SherpaOnnxIsOnlineStreamReady(recognizer, stream)) {
|
||||
/// SherpaOnnxDecodeOnlineStream(recognizer, stream);
|
||||
/// }
|
||||
///
|
||||
SHERPA_ONNX_API void DecodeOnlineStream(
|
||||
SHERPA_ONNX_API void SherpaOnnxDecodeOnlineStream(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// This function is similar to DecodeOnlineStream(). It decodes multiple
|
||||
/// OnlineStream in parallel.
|
||||
/// This function is similar to SherpaOnnxDecodeOnlineStream(). It decodes
|
||||
/// multiple OnlineStream in parallel.
|
||||
///
|
||||
/// Caution: The caller has to ensure each OnlineStream is ready, i.e.,
|
||||
/// IsOnlineStreamReady() for that stream should return 1.
|
||||
/// SherpaOnnxIsOnlineStreamReady() for that stream should return 1.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOnlineRecognizer()
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOnlineRecognizer()
|
||||
/// @param streams A pointer array containing pointers returned by
|
||||
/// CreateOnlineRecognizer()
|
||||
/// SherpaOnnxCreateOnlineRecognizer()
|
||||
/// @param n Number of elements in the given streams array.
|
||||
SHERPA_ONNX_API void DecodeMultipleOnlineStreams(
|
||||
SHERPA_ONNX_API void SherpaOnnxDecodeMultipleOnlineStreams(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream **streams, int32_t n);
|
||||
|
||||
/// Get the decoding results so far for an OnlineStream.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOnlineRecognizer().
|
||||
/// @param stream A pointer returned by CreateOnlineStream().
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOnlineRecognizer().
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOnlineStream().
|
||||
/// @return A pointer containing the result. The user has to invoke
|
||||
/// DestroyOnlineRecognizerResult() to free the returned pointer to
|
||||
/// avoid memory leak.
|
||||
SHERPA_ONNX_API const SherpaOnnxOnlineRecognizerResult *GetOnlineStreamResult(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
/// SherpaOnnxDestroyOnlineRecognizerResult() to free the returned
|
||||
/// pointer to avoid memory leak.
|
||||
SHERPA_ONNX_API const SherpaOnnxOnlineRecognizerResult *
|
||||
SherpaOnnxGetOnlineStreamResult(const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// Destroy the pointer returned by GetOnlineStreamResult().
|
||||
/// Destroy the pointer returned by SherpaOnnxGetOnlineStreamResult().
|
||||
///
|
||||
/// @param r A pointer returned by GetOnlineStreamResult()
|
||||
SHERPA_ONNX_API void DestroyOnlineRecognizerResult(
|
||||
/// @param r A pointer returned by SherpaOnnxGetOnlineStreamResult()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOnlineRecognizerResult(
|
||||
const SherpaOnnxOnlineRecognizerResult *r);
|
||||
|
||||
/// Return the result as a json string.
|
||||
/// The user has to invoke
|
||||
/// DestroyOnlineStreamResultJson()
|
||||
/// SherpaOnnxDestroyOnlineStreamResultJson()
|
||||
/// to free the returned pointer to avoid memory leak
|
||||
SHERPA_ONNX_API const char *GetOnlineStreamResultAsJson(
|
||||
SHERPA_ONNX_API const char *SherpaOnnxGetOnlineStreamResultAsJson(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
SHERPA_ONNX_API void DestroyOnlineStreamResultJson(const char *s);
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOnlineStreamResultJson(const char *s);
|
||||
|
||||
/// Reset an OnlineStream , which clears the neural network model state
|
||||
/// and the state for decoding.
|
||||
/// SherpaOnnxOnlineStreamReset an OnlineStream , which clears the neural
|
||||
/// network model state and the state for decoding.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOnlineRecognizer().
|
||||
/// @param stream A pointer returned by CreateOnlineStream
|
||||
SHERPA_ONNX_API void Reset(const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOnlineRecognizer().
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOnlineStream
|
||||
SHERPA_ONNX_API void SherpaOnnxOnlineStreamReset(
|
||||
const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// Signal that no more audio samples would be available.
|
||||
/// After this call, you cannot call AcceptWaveform() any more.
|
||||
/// After this call, you cannot call SherpaOnnxOnlineStreamAcceptWaveform() any
|
||||
/// more.
|
||||
///
|
||||
/// @param stream A pointer returned by CreateOnlineStream()
|
||||
SHERPA_ONNX_API void InputFinished(const SherpaOnnxOnlineStream *stream);
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOnlineStream()
|
||||
SHERPA_ONNX_API void SherpaOnnxOnlineStreamInputFinished(
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// Return 1 if an endpoint has been detected.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOnlineRecognizer()
|
||||
/// @param stream A pointer returned by CreateOnlineStream()
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOnlineRecognizer()
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOnlineStream()
|
||||
/// @return Return 1 if an endpoint is detected. Return 0 otherwise.
|
||||
SHERPA_ONNX_API int32_t IsEndpoint(const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
SHERPA_ONNX_API int32_t
|
||||
SherpaOnnxOnlineStreamIsEndpoint(const SherpaOnnxOnlineRecognizer *recognizer,
|
||||
const SherpaOnnxOnlineStream *stream);
|
||||
|
||||
// for displaying results on Linux/macOS.
|
||||
SHERPA_ONNX_API typedef struct SherpaOnnxDisplay SherpaOnnxDisplay;
|
||||
|
||||
/// Create a display object. Must be freed using DestroyDisplay to avoid
|
||||
/// memory leak.
|
||||
SHERPA_ONNX_API const SherpaOnnxDisplay *CreateDisplay(
|
||||
/// Create a display object. Must be freed using SherpaOnnxDestroyDisplay to
|
||||
/// avoid memory leak.
|
||||
SHERPA_ONNX_API const SherpaOnnxDisplay *SherpaOnnxCreateDisplay(
|
||||
int32_t max_word_per_line);
|
||||
|
||||
SHERPA_ONNX_API void DestroyDisplay(const SherpaOnnxDisplay *display);
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyDisplay(const SherpaOnnxDisplay *display);
|
||||
|
||||
/// Print the result.
|
||||
SHERPA_ONNX_API void SherpaOnnxPrint(const SherpaOnnxDisplay *display,
|
||||
@@ -431,8 +438,9 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineStream SherpaOnnxOfflineStream;
|
||||
|
||||
/// @param config Config for the recognizer.
|
||||
/// @return Return a pointer to the recognizer. The user has to invoke
|
||||
// DestroyOfflineRecognizer() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOfflineRecognizer *CreateOfflineRecognizer(
|
||||
// SherpaOnnxDestroyOfflineRecognizer() to free it to avoid memory
|
||||
// leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOfflineRecognizer *SherpaOnnxCreateOfflineRecognizer(
|
||||
const SherpaOnnxOfflineRecognizerConfig *config);
|
||||
|
||||
/// @param config Config for the recognizer.
|
||||
@@ -440,31 +448,31 @@ SHERPA_ONNX_API void SherpaOnnxOfflineRecognizerSetConfig(
|
||||
const SherpaOnnxOfflineRecognizer *recognizer,
|
||||
const SherpaOnnxOfflineRecognizerConfig *config);
|
||||
|
||||
/// Free a pointer returned by CreateOfflineRecognizer()
|
||||
/// Free a pointer returned by SherpaOnnxCreateOfflineRecognizer()
|
||||
///
|
||||
/// @param p A pointer returned by CreateOfflineRecognizer()
|
||||
SHERPA_ONNX_API void DestroyOfflineRecognizer(
|
||||
/// @param p A pointer returned by SherpaOnnxCreateOfflineRecognizer()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOfflineRecognizer(
|
||||
SherpaOnnxOfflineRecognizer *recognizer);
|
||||
|
||||
/// Create an offline stream for accepting wave samples.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOfflineRecognizer()
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOfflineRecognizer()
|
||||
/// @return Return a pointer to an OfflineStream. The user has to invoke
|
||||
/// DestroyOfflineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOfflineStream *CreateOfflineStream(
|
||||
/// SherpaOnnxDestroyOfflineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOfflineStream *SherpaOnnxCreateOfflineStream(
|
||||
const SherpaOnnxOfflineRecognizer *recognizer);
|
||||
|
||||
/// Destroy an offline stream.
|
||||
///
|
||||
/// @param stream A pointer returned by CreateOfflineStream()
|
||||
SHERPA_ONNX_API void DestroyOfflineStream(
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOfflineStream()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOfflineStream(
|
||||
const SherpaOnnxOfflineStream *stream);
|
||||
|
||||
/// Accept input audio samples and compute the features.
|
||||
/// The user has to invoke DecodeOfflineStream() to run the neural network and
|
||||
/// decoding.
|
||||
/// The user has to invoke SherpaOnnxDecodeOfflineStream() to run the neural
|
||||
/// network and decoding.
|
||||
///
|
||||
/// @param stream A pointer returned by CreateOfflineStream().
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOfflineStream().
|
||||
/// @param sample_rate Sample rate of the input samples. If it is different
|
||||
/// from config.feat_config.sample_rate, we will do
|
||||
/// resampling inside sherpa-onnx.
|
||||
@@ -473,30 +481,30 @@ SHERPA_ONNX_API void DestroyOfflineStream(
|
||||
/// @param n Number of elements in the samples array.
|
||||
///
|
||||
/// @caution: For each offline stream, please invoke this function only once!
|
||||
SHERPA_ONNX_API void AcceptWaveformOffline(
|
||||
SHERPA_ONNX_API void SherpaOnnxAcceptWaveformOffline(
|
||||
const SherpaOnnxOfflineStream *stream, int32_t sample_rate,
|
||||
const float *samples, int32_t n);
|
||||
/// Decode an offline stream.
|
||||
///
|
||||
/// We assume you have invoked AcceptWaveformOffline() for the given stream
|
||||
/// before calling this function.
|
||||
/// We assume you have invoked SherpaOnnxAcceptWaveformOffline() for the given
|
||||
/// stream before calling this function.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOfflineRecognizer().
|
||||
/// @param stream A pointer returned by CreateOfflineStream()
|
||||
SHERPA_ONNX_API void DecodeOfflineStream(
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOfflineRecognizer().
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOfflineStream()
|
||||
SHERPA_ONNX_API void SherpaOnnxDecodeOfflineStream(
|
||||
const SherpaOnnxOfflineRecognizer *recognizer,
|
||||
const SherpaOnnxOfflineStream *stream);
|
||||
|
||||
/// Decode a list offline streams in parallel.
|
||||
///
|
||||
/// We assume you have invoked AcceptWaveformOffline() for each stream
|
||||
/// We assume you have invoked SherpaOnnxAcceptWaveformOffline() for each stream
|
||||
/// before calling this function.
|
||||
///
|
||||
/// @param recognizer A pointer returned by CreateOfflineRecognizer().
|
||||
/// @param recognizer A pointer returned by SherpaOnnxCreateOfflineRecognizer().
|
||||
/// @param streams A pointer pointer array containing pointers returned
|
||||
/// by CreateOfflineStream().
|
||||
/// by SherpaOnnxCreateOfflineStream().
|
||||
/// @param n Number of entries in the given streams.
|
||||
SHERPA_ONNX_API void DecodeMultipleOfflineStreams(
|
||||
SHERPA_ONNX_API void SherpaOnnxDecodeMultipleOfflineStreams(
|
||||
SherpaOnnxOfflineRecognizer *recognizer, SherpaOnnxOfflineStream **streams,
|
||||
int32_t n);
|
||||
|
||||
@@ -538,30 +546,30 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineRecognizerResult {
|
||||
|
||||
/// Get the result of the offline stream.
|
||||
///
|
||||
/// We assume you have called DecodeOfflineStream() or
|
||||
/// DecodeMultipleOfflineStreams() with the given stream before calling
|
||||
/// this function.
|
||||
/// We assume you have called SherpaOnnxDecodeOfflineStream() or
|
||||
/// SherpaOnnxDecodeMultipleOfflineStreams() with the given stream before
|
||||
/// calling this function.
|
||||
///
|
||||
/// @param stream A pointer returned by CreateOfflineStream().
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateOfflineStream().
|
||||
/// @return Return a pointer to the result. The user has to invoke
|
||||
/// DestroyOnlineRecognizerResult() to free the returned pointer to
|
||||
/// avoid memory leak.
|
||||
SHERPA_ONNX_API const SherpaOnnxOfflineRecognizerResult *GetOfflineStreamResult(
|
||||
const SherpaOnnxOfflineStream *stream);
|
||||
/// SherpaOnnxDestroyOnlineRecognizerResult() to free the returned
|
||||
/// pointer to avoid memory leak.
|
||||
SHERPA_ONNX_API const SherpaOnnxOfflineRecognizerResult *
|
||||
SherpaOnnxGetOfflineStreamResult(const SherpaOnnxOfflineStream *stream);
|
||||
|
||||
/// Destroy the pointer returned by GetOfflineStreamResult().
|
||||
/// Destroy the pointer returned by SherpaOnnxGetOfflineStreamResult().
|
||||
///
|
||||
/// @param r A pointer returned by GetOfflineStreamResult()
|
||||
SHERPA_ONNX_API void DestroyOfflineRecognizerResult(
|
||||
/// @param r A pointer returned by SherpaOnnxGetOfflineStreamResult()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOfflineRecognizerResult(
|
||||
const SherpaOnnxOfflineRecognizerResult *r);
|
||||
|
||||
/// Return the result as a json string.
|
||||
/// The user has to use DestroyOfflineStreamResultJson()
|
||||
/// The user has to use SherpaOnnxDestroyOfflineStreamResultJson()
|
||||
/// to free the returned pointer to avoid memory leak
|
||||
SHERPA_ONNX_API const char *GetOfflineStreamResultAsJson(
|
||||
SHERPA_ONNX_API const char *SherpaOnnxGetOfflineStreamResultAsJson(
|
||||
const SherpaOnnxOfflineStream *stream);
|
||||
|
||||
SHERPA_ONNX_API void DestroyOfflineStreamResultJson(const char *s);
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyOfflineStreamResultJson(const char *s);
|
||||
|
||||
// ============================================================
|
||||
// For Keyword Spot
|
||||
@@ -618,82 +626,86 @@ SHERPA_ONNX_API typedef struct SherpaOnnxKeywordSpotter
|
||||
|
||||
/// @param config Config for the keyword spotter.
|
||||
/// @return Return a pointer to the spotter. The user has to invoke
|
||||
/// DestroyKeywordSpotter() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxKeywordSpotter *CreateKeywordSpotter(
|
||||
/// SherpaOnnxDestroyKeywordSpotter() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxKeywordSpotter *SherpaOnnxCreateKeywordSpotter(
|
||||
const SherpaOnnxKeywordSpotterConfig *config);
|
||||
|
||||
/// Free a pointer returned by CreateKeywordSpotter()
|
||||
/// Free a pointer returned by SherpaOnnxCreateKeywordSpotter()
|
||||
///
|
||||
/// @param p A pointer returned by CreateKeywordSpotter()
|
||||
SHERPA_ONNX_API void DestroyKeywordSpotter(SherpaOnnxKeywordSpotter *spotter);
|
||||
/// @param p A pointer returned by SherpaOnnxCreateKeywordSpotter()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyKeywordSpotter(
|
||||
SherpaOnnxKeywordSpotter *spotter);
|
||||
|
||||
/// Create an online stream for accepting wave samples.
|
||||
///
|
||||
/// @param spotter A pointer returned by CreateKeywordSpotter()
|
||||
/// @param spotter A pointer returned by SherpaOnnxCreateKeywordSpotter()
|
||||
/// @return Return a pointer to an OnlineStream. The user has to invoke
|
||||
/// DestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *CreateKeywordStream(
|
||||
/// SherpaOnnxDestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *SherpaOnnxCreateKeywordStream(
|
||||
const SherpaOnnxKeywordSpotter *spotter);
|
||||
|
||||
/// Create an online stream for accepting wave samples with the specified hot
|
||||
/// words.
|
||||
///
|
||||
/// @param spotter A pointer returned by CreateKeywordSpotter()
|
||||
/// @param spotter A pointer returned by SherpaOnnxCreateKeywordSpotter()
|
||||
/// @param keywords A pointer points to the keywords that you set
|
||||
/// @return Return a pointer to an OnlineStream. The user has to invoke
|
||||
/// DestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *CreateKeywordStreamWithKeywords(
|
||||
/// SherpaOnnxDestroyOnlineStream() to free it to avoid memory leak.
|
||||
SHERPA_ONNX_API SherpaOnnxOnlineStream *
|
||||
SherpaOnnxCreateKeywordStreamWithKeywords(
|
||||
const SherpaOnnxKeywordSpotter *spotter, const char *keywords);
|
||||
|
||||
/// Return 1 if there are enough number of feature frames for decoding.
|
||||
/// Return 0 otherwise.
|
||||
///
|
||||
/// @param spotter A pointer returned by CreateKeywordSpotter
|
||||
/// @param stream A pointer returned by CreateKeywordStream
|
||||
SHERPA_ONNX_API int32_t IsKeywordStreamReady(SherpaOnnxKeywordSpotter *spotter,
|
||||
SherpaOnnxOnlineStream *stream);
|
||||
/// @param spotter A pointer returned by SherpaOnnxCreateKeywordSpotter
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateKeywordStream
|
||||
SHERPA_ONNX_API int32_t SherpaOnnxIsKeywordStreamReady(
|
||||
SherpaOnnxKeywordSpotter *spotter, SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// Call this function to run the neural network model and decoding.
|
||||
//
|
||||
/// Precondition for this function: IsKeywordStreamReady() MUST return 1.
|
||||
SHERPA_ONNX_API void DecodeKeywordStream(SherpaOnnxKeywordSpotter *spotter,
|
||||
SherpaOnnxOnlineStream *stream);
|
||||
/// Precondition for this function: SherpaOnnxIsKeywordStreamReady() MUST
|
||||
/// return 1.
|
||||
SHERPA_ONNX_API void SherpaOnnxDecodeKeywordStream(
|
||||
SherpaOnnxKeywordSpotter *spotter, SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// This function is similar to DecodeKeywordStream(). It decodes multiple
|
||||
/// OnlineStream in parallel.
|
||||
/// This function is similar to SherpaOnnxDecodeKeywordStream(). It decodes
|
||||
/// multiple OnlineStream in parallel.
|
||||
///
|
||||
/// Caution: The caller has to ensure each OnlineStream is ready, i.e.,
|
||||
/// IsKeywordStreamReady() for that stream should return 1.
|
||||
/// SherpaOnnxIsKeywordStreamReady() for that stream should return 1.
|
||||
///
|
||||
/// @param spotter A pointer returned by CreateKeywordSpotter()
|
||||
/// @param spotter A pointer returned by SherpaOnnxCreateKeywordSpotter()
|
||||
/// @param streams A pointer array containing pointers returned by
|
||||
/// CreateKeywordStream()
|
||||
/// SherpaOnnxCreateKeywordStream()
|
||||
/// @param n Number of elements in the given streams array.
|
||||
SHERPA_ONNX_API void DecodeMultipleKeywordStreams(
|
||||
SHERPA_ONNX_API void SherpaOnnxDecodeMultipleKeywordStreams(
|
||||
SherpaOnnxKeywordSpotter *spotter, SherpaOnnxOnlineStream **streams,
|
||||
int32_t n);
|
||||
|
||||
/// Get the decoding results so far for an OnlineStream.
|
||||
///
|
||||
/// @param spotter A pointer returned by CreateKeywordSpotter().
|
||||
/// @param stream A pointer returned by CreateKeywordStream().
|
||||
/// @param spotter A pointer returned by SherpaOnnxCreateKeywordSpotter().
|
||||
/// @param stream A pointer returned by SherpaOnnxCreateKeywordStream().
|
||||
/// @return A pointer containing the result. The user has to invoke
|
||||
/// DestroyKeywordResult() to free the returned pointer to
|
||||
/// SherpaOnnxDestroyKeywordResult() to free the returned pointer to
|
||||
/// avoid memory leak.
|
||||
SHERPA_ONNX_API const SherpaOnnxKeywordResult *GetKeywordResult(
|
||||
SHERPA_ONNX_API const SherpaOnnxKeywordResult *SherpaOnnxGetKeywordResult(
|
||||
SherpaOnnxKeywordSpotter *spotter, SherpaOnnxOnlineStream *stream);
|
||||
|
||||
/// Destroy the pointer returned by GetKeywordResult().
|
||||
/// Destroy the pointer returned by SherpaOnnxGetKeywordResult().
|
||||
///
|
||||
/// @param r A pointer returned by GetKeywordResult()
|
||||
SHERPA_ONNX_API void DestroyKeywordResult(const SherpaOnnxKeywordResult *r);
|
||||
/// @param r A pointer returned by SherpaOnnxGetKeywordResult()
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyKeywordResult(
|
||||
const SherpaOnnxKeywordResult *r);
|
||||
|
||||
// the user has to call FreeKeywordResultJson() to free the returned pointer
|
||||
// to avoid memory leak
|
||||
SHERPA_ONNX_API const char *GetKeywordResultAsJson(
|
||||
// the user has to call SherpaOnnxFreeKeywordResultJson() to free the returned
|
||||
// pointer to avoid memory leak
|
||||
SHERPA_ONNX_API const char *SherpaOnnxGetKeywordResultAsJson(
|
||||
SherpaOnnxKeywordSpotter *spotter, SherpaOnnxOnlineStream *stream);
|
||||
|
||||
SHERPA_ONNX_API void FreeKeywordResultJson(const char *s);
|
||||
SHERPA_ONNX_API void SherpaOnnxFreeKeywordResultJson(const char *s);
|
||||
|
||||
// ============================================================
|
||||
// For VAD
|
||||
@@ -979,7 +991,7 @@ SherpaOnnxCreateSpokenLanguageIdentification(
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroySpokenLanguageIdentification(
|
||||
const SherpaOnnxSpokenLanguageIdentification *slid);
|
||||
|
||||
// The user has to invoke DestroyOfflineStream()
|
||||
// The user has to invoke SherpaOnnxDestroyOfflineStream()
|
||||
// to free the returned pointer to avoid memory leak
|
||||
SHERPA_ONNX_API SherpaOnnxOfflineStream *
|
||||
SherpaOnnxSpokenLanguageIdentificationCreateOfflineStream(
|
||||
@@ -1029,8 +1041,8 @@ SHERPA_ONNX_API void SherpaOnnxDestroySpeakerEmbeddingExtractor(
|
||||
SHERPA_ONNX_API int32_t SherpaOnnxSpeakerEmbeddingExtractorDim(
|
||||
const SherpaOnnxSpeakerEmbeddingExtractor *p);
|
||||
|
||||
// The user has to invoke DestroyOnlineStream() to free the returned pointer
|
||||
// to avoid memory leak
|
||||
// The user has to invoke SherpaOnnxDestroyOnlineStream() to free the returned
|
||||
// pointer to avoid memory leak
|
||||
SHERPA_ONNX_API const SherpaOnnxOnlineStream *
|
||||
SherpaOnnxSpeakerEmbeddingExtractorCreateStream(
|
||||
const SherpaOnnxSpeakerEmbeddingExtractor *p);
|
||||
@@ -1239,7 +1251,7 @@ SHERPA_ONNX_API const SherpaOnnxAudioTagging *SherpaOnnxCreateAudioTagging(
|
||||
SHERPA_ONNX_API void SherpaOnnxDestroyAudioTagging(
|
||||
const SherpaOnnxAudioTagging *tagger);
|
||||
|
||||
// The user has to invoke DestroyOfflineStream()
|
||||
// The user has to invoke SherpaOnnxDestroyOfflineStream()
|
||||
// to free the returned pointer to avoid memory leak
|
||||
SHERPA_ONNX_API const SherpaOnnxOfflineStream *
|
||||
SherpaOnnxAudioTaggingCreateOfflineStream(const SherpaOnnxAudioTagging *tagger);
|
||||
|
||||
Reference in New Issue
Block a user