diff --git a/sherpa-onnx/c-api/c-api.h b/sherpa-onnx/c-api/c-api.h index 7d515a09e0..7371aa45d8 100644 --- a/sherpa-onnx/c-api/c-api.h +++ b/sherpa-onnx/c-api/c-api.h @@ -79,7 +79,7 @@ SHERPA_ONNX_API int32_t SherpaOnnxFileExists(const char *filename); /// to download pre-trained models. That is, you can find encoder-xxx.onnx /// decoder-xxx.onnx, joiner-xxx.onnx, and tokens.txt for this struct /// from there. -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineTransducerModelConfig { +typedef struct SherpaOnnxOnlineTransducerModelConfig { const char *encoder; const char *decoder; const char *joiner; @@ -88,7 +88,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOnlineTransducerModelConfig { // please visit // https://k2-fsa.github.io/sherpa/onnx/pretrained_models/online-paraformer/index.html // to download pre-trained streaming paraformer models -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineParaformerModelConfig { +typedef struct SherpaOnnxOnlineParaformerModelConfig { const char *encoder; const char *decoder; } SherpaOnnxOnlineParaformerModelConfig; @@ -96,19 +96,19 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOnlineParaformerModelConfig { // Please visit // https://k2-fsa.github.io/sherpa/onnx/pretrained_models/online-ctc/zipformer-ctc-models.html# // to download pre-trained streaming zipformer2 ctc models -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineZipformer2CtcModelConfig { +typedef struct SherpaOnnxOnlineZipformer2CtcModelConfig { const char *model; } SherpaOnnxOnlineZipformer2CtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineNemoCtcModelConfig { +typedef struct SherpaOnnxOnlineNemoCtcModelConfig { const char *model; } SherpaOnnxOnlineNemoCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineToneCtcModelConfig { +typedef struct SherpaOnnxOnlineToneCtcModelConfig { const char *model; } SherpaOnnxOnlineToneCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineModelConfig { +typedef struct SherpaOnnxOnlineModelConfig { SherpaOnnxOnlineTransducerModelConfig transducer; SherpaOnnxOnlineParaformerModelConfig paraformer; SherpaOnnxOnlineZipformer2CtcModelConfig zipformer2_ctc; @@ -133,7 +133,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOnlineModelConfig { } SherpaOnnxOnlineModelConfig; /// It expects 16 kHz 16-bit single channel wave format. -SHERPA_ONNX_API typedef struct SherpaOnnxFeatureConfig { +typedef struct SherpaOnnxFeatureConfig { /// Sample rate of the input data. MUST match the one expected /// by the model. For instance, it should be 16000 for models provided /// by us. @@ -144,18 +144,18 @@ SHERPA_ONNX_API typedef struct SherpaOnnxFeatureConfig { int32_t feature_dim; } SherpaOnnxFeatureConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineCtcFstDecoderConfig { +typedef struct SherpaOnnxOnlineCtcFstDecoderConfig { const char *graph; int32_t max_active; } SherpaOnnxOnlineCtcFstDecoderConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxHomophoneReplacerConfig { +typedef struct SherpaOnnxHomophoneReplacerConfig { const char *dict_dir; // unused const char *lexicon; const char *rule_fsts; } SherpaOnnxHomophoneReplacerConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineRecognizerConfig { +typedef struct SherpaOnnxOnlineRecognizerConfig { SherpaOnnxFeatureConfig feat_config; SherpaOnnxOnlineModelConfig model_config; @@ -203,7 +203,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOnlineRecognizerConfig { SherpaOnnxHomophoneReplacerConfig hr; } SherpaOnnxOnlineRecognizerConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineRecognizerResult { +typedef struct SherpaOnnxOnlineRecognizerResult { // Recognized text const char *text; @@ -242,9 +242,9 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOnlineRecognizerResult { /// Note: OnlineRecognizer here means StreamingRecognizer. /// It does not need to access the Internet during recognition. /// Everything is run locally. -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineRecognizer +typedef struct SherpaOnnxOnlineRecognizer SherpaOnnxOnlineRecognizer; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlineStream SherpaOnnxOnlineStream; +typedef struct SherpaOnnxOnlineStream SherpaOnnxOnlineStream; /// @param config Config for the recognizer. /// @return Return a pointer to the recognizer. The user has to invoke @@ -390,7 +390,7 @@ SherpaOnnxOnlineStreamIsEndpoint(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream *stream); // for displaying results on Linux/macOS. -SHERPA_ONNX_API typedef struct SherpaOnnxDisplay SherpaOnnxDisplay; +typedef struct SherpaOnnxDisplay SherpaOnnxDisplay; /// Create a display object. Must be freed using SherpaOnnxDestroyDisplay to /// avoid memory leak. @@ -411,21 +411,21 @@ SHERPA_ONNX_API void SherpaOnnxPrint(const SherpaOnnxDisplay *display, /// to download pre-trained models. That is, you can find encoder-xxx.onnx /// decoder-xxx.onnx, and joiner-xxx.onnx for this struct /// from there. -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTransducerModelConfig { +typedef struct SherpaOnnxOfflineTransducerModelConfig { const char *encoder; const char *decoder; const char *joiner; } SherpaOnnxOfflineTransducerModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineParaformerModelConfig { +typedef struct SherpaOnnxOfflineParaformerModelConfig { const char *model; } SherpaOnnxOfflineParaformerModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineNemoEncDecCtcModelConfig { +typedef struct SherpaOnnxOfflineNemoEncDecCtcModelConfig { const char *model; } SherpaOnnxOfflineNemoEncDecCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineWhisperModelConfig { +typedef struct SherpaOnnxOfflineWhisperModelConfig { const char *encoder; const char *decoder; const char *language; @@ -444,7 +444,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineWhisperModelConfig { int32_t enable_segment_timestamps; } SherpaOnnxOfflineWhisperModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineCanaryModelConfig { +typedef struct SherpaOnnxOfflineCanaryModelConfig { const char *encoder; const char *decoder; const char *src_lang; @@ -452,16 +452,16 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineCanaryModelConfig { int32_t use_pnc; } SherpaOnnxOfflineCanaryModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineFireRedAsrModelConfig { +typedef struct SherpaOnnxOfflineFireRedAsrModelConfig { const char *encoder; const char *decoder; } SherpaOnnxOfflineFireRedAsrModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineFireRedAsrCtcModelConfig { +typedef struct SherpaOnnxOfflineFireRedAsrCtcModelConfig { const char *model; } SherpaOnnxOfflineFireRedAsrCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineMoonshineModelConfig { +typedef struct SherpaOnnxOfflineMoonshineModelConfig { const char *preprocessor; const char *encoder; const char *uncached_decoder; @@ -469,38 +469,38 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineMoonshineModelConfig { const char *merged_decoder; } SherpaOnnxOfflineMoonshineModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTdnnModelConfig { +typedef struct SherpaOnnxOfflineTdnnModelConfig { const char *model; } SherpaOnnxOfflineTdnnModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineLMConfig { +typedef struct SherpaOnnxOfflineLMConfig { const char *model; float scale; } SherpaOnnxOfflineLMConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSenseVoiceModelConfig { +typedef struct SherpaOnnxOfflineSenseVoiceModelConfig { const char *model; const char *language; int32_t use_itn; } SherpaOnnxOfflineSenseVoiceModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineDolphinModelConfig { +typedef struct SherpaOnnxOfflineDolphinModelConfig { const char *model; } SherpaOnnxOfflineDolphinModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineZipformerCtcModelConfig { +typedef struct SherpaOnnxOfflineZipformerCtcModelConfig { const char *model; } SherpaOnnxOfflineZipformerCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineWenetCtcModelConfig { +typedef struct SherpaOnnxOfflineWenetCtcModelConfig { const char *model; } SherpaOnnxOfflineWenetCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineOmnilingualAsrCtcModelConfig { +typedef struct SherpaOnnxOfflineOmnilingualAsrCtcModelConfig { const char *model; } SherpaOnnxOfflineOmnilingualAsrCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineFunASRNanoModelConfig { +typedef struct SherpaOnnxOfflineFunASRNanoModelConfig { const char *encoder_adaptor; const char *llm; const char *embedding; @@ -516,11 +516,11 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineFunASRNanoModelConfig { const char *hotwords; } SherpaOnnxOfflineFunASRNanoModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineMedAsrCtcModelConfig { +typedef struct SherpaOnnxOfflineMedAsrCtcModelConfig { const char *model; } SherpaOnnxOfflineMedAsrCtcModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineModelConfig { +typedef struct SherpaOnnxOfflineModelConfig { SherpaOnnxOfflineTransducerModelConfig transducer; SherpaOnnxOfflineParaformerModelConfig paraformer; SherpaOnnxOfflineNemoEncDecCtcModelConfig nemo_ctc; @@ -552,7 +552,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineModelConfig { SherpaOnnxOfflineFireRedAsrCtcModelConfig fire_red_asr_ctc; } SherpaOnnxOfflineModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineRecognizerConfig { +typedef struct SherpaOnnxOfflineRecognizerConfig { SherpaOnnxFeatureConfig feat_config; SherpaOnnxOfflineModelConfig model_config; SherpaOnnxOfflineLMConfig lm_config; @@ -572,10 +572,10 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineRecognizerConfig { SherpaOnnxHomophoneReplacerConfig hr; } SherpaOnnxOfflineRecognizerConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineRecognizer +typedef struct SherpaOnnxOfflineRecognizer SherpaOnnxOfflineRecognizer; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineStream SherpaOnnxOfflineStream; +typedef struct SherpaOnnxOfflineStream SherpaOnnxOfflineStream; /// @param config Config for the recognizer. /// @return Return a pointer to the recognizer. The user has to invoke @@ -660,7 +660,7 @@ SHERPA_ONNX_API void SherpaOnnxDecodeMultipleOfflineStreams( const SherpaOnnxOfflineRecognizer *recognizer, const SherpaOnnxOfflineStream **streams, int32_t n); -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineRecognizerResult { +typedef struct SherpaOnnxOfflineRecognizerResult { const char *text; // Pointer to continuous memory which holds timestamps @@ -761,7 +761,7 @@ SHERPA_ONNX_API void SherpaOnnxDestroyOfflineStreamResultJson(const char *s); // ============================================================ // For Keyword Spotter // ============================================================ -SHERPA_ONNX_API typedef struct SherpaOnnxKeywordResult { +typedef struct SherpaOnnxKeywordResult { /// The triggered keyword. /// For English, it consists of space separated words. /// For Chinese, it consists of Chinese words without spaces. @@ -798,7 +798,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxKeywordResult { const char *json; } SherpaOnnxKeywordResult; -SHERPA_ONNX_API typedef struct SherpaOnnxKeywordSpotterConfig { +typedef struct SherpaOnnxKeywordSpotterConfig { SherpaOnnxFeatureConfig feat_config; SherpaOnnxOnlineModelConfig model_config; int32_t max_active_paths; @@ -813,7 +813,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxKeywordSpotterConfig { int32_t keywords_buf_size; } SherpaOnnxKeywordSpotterConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxKeywordSpotter +typedef struct SherpaOnnxKeywordSpotter SherpaOnnxKeywordSpotter; /// @param config Config for the keyword spotter. @@ -912,7 +912,7 @@ SHERPA_ONNX_API void SherpaOnnxFreeKeywordResultJson(const char *s); // For VAD // ============================================================ -SHERPA_ONNX_API typedef struct SherpaOnnxSileroVadModelConfig { +typedef struct SherpaOnnxSileroVadModelConfig { // Path to the silero VAD model const char *model; @@ -936,7 +936,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxSileroVadModelConfig { float max_speech_duration; } SherpaOnnxSileroVadModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxTenVadModelConfig { +typedef struct SherpaOnnxTenVadModelConfig { // Path to the ten-vad model const char *model; @@ -960,7 +960,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxTenVadModelConfig { float max_speech_duration; } SherpaOnnxTenVadModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxVadModelConfig { +typedef struct SherpaOnnxVadModelConfig { SherpaOnnxSileroVadModelConfig silero_vad; int32_t sample_rate; @@ -970,7 +970,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxVadModelConfig { SherpaOnnxTenVadModelConfig ten_vad; } SherpaOnnxVadModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxCircularBuffer +typedef struct SherpaOnnxCircularBuffer SherpaOnnxCircularBuffer; // Return an instance of circular buffer. The user has to use @@ -1014,7 +1014,7 @@ SherpaOnnxCircularBufferHead(const SherpaOnnxCircularBuffer *buffer); SHERPA_ONNX_API void SherpaOnnxCircularBufferReset( const SherpaOnnxCircularBuffer *buffer); -SHERPA_ONNX_API typedef struct SherpaOnnxSpeechSegment { +typedef struct SherpaOnnxSpeechSegment { // The start index in samples of this segment int32_t start; @@ -1079,7 +1079,7 @@ SHERPA_ONNX_API void SherpaOnnxVoiceActivityDetectorFlush( // ============================================================ // For offline Text-to-Speech (i.e., non-streaming TTS) // ============================================================ -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsVitsModelConfig { +typedef struct SherpaOnnxOfflineTtsVitsModelConfig { const char *model; const char *lexicon; const char *tokens; @@ -1091,7 +1091,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsVitsModelConfig { const char *dict_dir; // unused } SherpaOnnxOfflineTtsVitsModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsMatchaModelConfig { +typedef struct SherpaOnnxOfflineTtsMatchaModelConfig { const char *acoustic_model; const char *vocoder; const char *lexicon; @@ -1103,7 +1103,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsMatchaModelConfig { const char *dict_dir; // unused } SherpaOnnxOfflineTtsMatchaModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsKokoroModelConfig { +typedef struct SherpaOnnxOfflineTtsKokoroModelConfig { const char *model; const char *voices; const char *tokens; @@ -1115,7 +1115,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsKokoroModelConfig { const char *lang; } SherpaOnnxOfflineTtsKokoroModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsKittenModelConfig { +typedef struct SherpaOnnxOfflineTtsKittenModelConfig { const char *model; const char *voices; const char *tokens; @@ -1124,7 +1124,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsKittenModelConfig { float length_scale; // < 1, faster in speech speed; > 1, slower in speed } SherpaOnnxOfflineTtsKittenModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsZipvoiceModelConfig { +typedef struct SherpaOnnxOfflineTtsZipvoiceModelConfig { const char *tokens; const char *encoder; const char *decoder; @@ -1137,7 +1137,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsZipvoiceModelConfig { float guidance_scale; } SherpaOnnxOfflineTtsZipvoiceModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsPocketModelConfig { +typedef struct SherpaOnnxOfflineTtsPocketModelConfig { const char *lm_flow; const char *lm_main; const char *encoder; @@ -1148,7 +1148,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsPocketModelConfig { int32_t voice_embedding_cache_capacity; } SherpaOnnxOfflineTtsPocketModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsSupertonicModelConfig { +typedef struct SherpaOnnxOfflineTtsSupertonicModelConfig { const char *duration_predictor; const char *text_encoder; const char *vector_estimator; @@ -1158,7 +1158,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsSupertonicModelConfig { const char *voice_style; } SherpaOnnxOfflineTtsSupertonicModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsModelConfig { +typedef struct SherpaOnnxOfflineTtsModelConfig { SherpaOnnxOfflineTtsVitsModelConfig vits; int32_t num_threads; int32_t debug; @@ -1171,7 +1171,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsModelConfig { SherpaOnnxOfflineTtsSupertonicModelConfig supertonic; } SherpaOnnxOfflineTtsModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsConfig { +typedef struct SherpaOnnxOfflineTtsConfig { SherpaOnnxOfflineTtsModelConfig model; const char *rule_fsts; int32_t max_num_sentences; @@ -1179,7 +1179,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTtsConfig { float silence_scale; } SherpaOnnxOfflineTtsConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxGeneratedAudio { +typedef struct SherpaOnnxGeneratedAudio { const float *samples; // in the range [-1, 1] int32_t n; // number of samples int32_t sample_rate; @@ -1200,7 +1200,7 @@ typedef int32_t (*SherpaOnnxGeneratedAudioProgressCallback)( typedef int32_t (*SherpaOnnxGeneratedAudioProgressCallbackWithArg)( const float *samples, int32_t n, float p, void *arg); -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTts SherpaOnnxOfflineTts; +typedef struct SherpaOnnxOfflineTts SherpaOnnxOfflineTts; // Create an instance of offline TTS. The user has to use DestroyOfflineTts() // to free the returned pointer to avoid memory leak. @@ -1262,7 +1262,7 @@ SherpaOnnxOfflineTtsGenerateWithZipvoice(const SherpaOnnxOfflineTts *tts, int32_t n_prompt, int32_t prompt_sr, float speed, int32_t num_steps); -SHERPA_ONNX_API typedef struct SherpaOnnxGenerationConfig { +typedef struct SherpaOnnxGenerationConfig { float silence_scale; float speed; // used only by some models. int32_t sid; // used only by models support multi-speakers @@ -1306,7 +1306,7 @@ SHERPA_ONNX_API void SherpaOnnxWriteWaveToBuffer(const float *samples, int32_t n, int32_t sample_rate, char *buffer); -SHERPA_ONNX_API typedef struct SherpaOnnxWave { +typedef struct SherpaOnnxWave { // samples normalized to the range [-1, 1] const float *samples; int32_t sample_rate; @@ -1334,21 +1334,21 @@ SHERPA_ONNX_API void SherpaOnnxFreeWave(const SherpaOnnxWave *wave); // For spoken language identification // ============================================================ -SHERPA_ONNX_API typedef struct +typedef struct SherpaOnnxSpokenLanguageIdentificationWhisperConfig { const char *encoder; const char *decoder; int32_t tail_paddings; } SherpaOnnxSpokenLanguageIdentificationWhisperConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxSpokenLanguageIdentificationConfig { +typedef struct SherpaOnnxSpokenLanguageIdentificationConfig { SherpaOnnxSpokenLanguageIdentificationWhisperConfig whisper; int32_t num_threads; int32_t debug; const char *provider; } SherpaOnnxSpokenLanguageIdentificationConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxSpokenLanguageIdentification +typedef struct SherpaOnnxSpokenLanguageIdentification SherpaOnnxSpokenLanguageIdentification; // Create an instance of SpokenLanguageIdentification. @@ -1367,7 +1367,7 @@ SHERPA_ONNX_API SherpaOnnxOfflineStream * SherpaOnnxSpokenLanguageIdentificationCreateOfflineStream( const SherpaOnnxSpokenLanguageIdentification *slid); -SHERPA_ONNX_API typedef struct SherpaOnnxSpokenLanguageIdentificationResult { +typedef struct SherpaOnnxSpokenLanguageIdentificationResult { // en for English // de for German // zh for Chinese @@ -1389,14 +1389,14 @@ SHERPA_ONNX_API void SherpaOnnxDestroySpokenLanguageIdentificationResult( // ============================================================ // For speaker embedding extraction // ============================================================ -SHERPA_ONNX_API typedef struct SherpaOnnxSpeakerEmbeddingExtractorConfig { +typedef struct SherpaOnnxSpeakerEmbeddingExtractorConfig { const char *model; int32_t num_threads; int32_t debug; const char *provider; } SherpaOnnxSpeakerEmbeddingExtractorConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxSpeakerEmbeddingExtractor +typedef struct SherpaOnnxSpeakerEmbeddingExtractor SherpaOnnxSpeakerEmbeddingExtractor; // The user has to invoke SherpaOnnxDestroySpeakerEmbeddingExtractor() @@ -1439,7 +1439,7 @@ SherpaOnnxSpeakerEmbeddingExtractorComputeEmbedding( SHERPA_ONNX_API void SherpaOnnxSpeakerEmbeddingExtractorDestroyEmbedding( const float *v); -SHERPA_ONNX_API typedef struct SherpaOnnxSpeakerEmbeddingManager +typedef struct SherpaOnnxSpeakerEmbeddingManager SherpaOnnxSpeakerEmbeddingManager; // The user has to invoke SherpaOnnxDestroySpeakerEmbeddingManager() @@ -1506,12 +1506,12 @@ SHERPA_ONNX_API const char *SherpaOnnxSpeakerEmbeddingManagerSearch( SHERPA_ONNX_API void SherpaOnnxSpeakerEmbeddingManagerFreeSearch( const char *name); -SHERPA_ONNX_API typedef struct SherpaOnnxSpeakerEmbeddingManagerSpeakerMatch { +typedef struct SherpaOnnxSpeakerEmbeddingManagerSpeakerMatch { float score; const char *name; } SherpaOnnxSpeakerEmbeddingManagerSpeakerMatch; -SHERPA_ONNX_API typedef struct +typedef struct SherpaOnnxSpeakerEmbeddingManagerBestMatchesResult { const SherpaOnnxSpeakerEmbeddingManagerSpeakerMatch *matches; int32_t count; @@ -1585,12 +1585,12 @@ SHERPA_ONNX_API void SherpaOnnxSpeakerEmbeddingManagerFreeAllSpeakers( // ============================================================ // For audio tagging // ============================================================ -SHERPA_ONNX_API typedef struct +typedef struct SherpaOnnxOfflineZipformerAudioTaggingModelConfig { const char *model; } SherpaOnnxOfflineZipformerAudioTaggingModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxAudioTaggingModelConfig { +typedef struct SherpaOnnxAudioTaggingModelConfig { SherpaOnnxOfflineZipformerAudioTaggingModelConfig zipformer; const char *ced; int32_t num_threads; @@ -1598,19 +1598,19 @@ SHERPA_ONNX_API typedef struct SherpaOnnxAudioTaggingModelConfig { const char *provider; } SherpaOnnxAudioTaggingModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxAudioTaggingConfig { +typedef struct SherpaOnnxAudioTaggingConfig { SherpaOnnxAudioTaggingModelConfig model; const char *labels; int32_t top_k; } SherpaOnnxAudioTaggingConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxAudioEvent { +typedef struct SherpaOnnxAudioEvent { const char *name; int32_t index; float prob; } SherpaOnnxAudioEvent; -SHERPA_ONNX_API typedef struct SherpaOnnxAudioTagging SherpaOnnxAudioTagging; +typedef struct SherpaOnnxAudioTagging SherpaOnnxAudioTagging; // The user has to invoke // SherpaOnnxDestroyAudioTagging() @@ -1646,18 +1646,18 @@ SHERPA_ONNX_API void SherpaOnnxAudioTaggingFreeResults( // For punctuation // ============================================================ -SHERPA_ONNX_API typedef struct SherpaOnnxOfflinePunctuationModelConfig { +typedef struct SherpaOnnxOfflinePunctuationModelConfig { const char *ct_transformer; int32_t num_threads; int32_t debug; // true to print debug information of the model const char *provider; } SherpaOnnxOfflinePunctuationModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflinePunctuationConfig { +typedef struct SherpaOnnxOfflinePunctuationConfig { SherpaOnnxOfflinePunctuationModelConfig model; } SherpaOnnxOfflinePunctuationConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflinePunctuation +typedef struct SherpaOnnxOfflinePunctuation SherpaOnnxOfflinePunctuation; // The user has to invoke SherpaOnnxDestroyOfflinePunctuation() @@ -1677,7 +1677,7 @@ SHERPA_ONNX_API const char *SherpaOfflinePunctuationAddPunct( SHERPA_ONNX_API void SherpaOfflinePunctuationFreeText(const char *text); -SHERPA_ONNX_API typedef struct SherpaOnnxOnlinePunctuationModelConfig { +typedef struct SherpaOnnxOnlinePunctuationModelConfig { const char *cnn_bilstm; const char *bpe_vocab; int32_t num_threads; @@ -1685,11 +1685,11 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOnlinePunctuationModelConfig { const char *provider; } SherpaOnnxOnlinePunctuationModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlinePunctuationConfig { +typedef struct SherpaOnnxOnlinePunctuationConfig { SherpaOnnxOnlinePunctuationModelConfig model; } SherpaOnnxOnlinePunctuationConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOnlinePunctuation +typedef struct SherpaOnnxOnlinePunctuation SherpaOnnxOnlinePunctuation; // Create an online punctuation processor. The user has to invoke @@ -1713,7 +1713,7 @@ SHERPA_ONNX_API const char *SherpaOnnxOnlinePunctuationAddPunct( SHERPA_ONNX_API void SherpaOnnxOnlinePunctuationFreeText(const char *text); // for resampling -SHERPA_ONNX_API typedef struct SherpaOnnxLinearResampler +typedef struct SherpaOnnxLinearResampler SherpaOnnxLinearResampler; /* @@ -1762,19 +1762,19 @@ SHERPA_ONNX_API int32_t SherpaOnnxLinearResamplerResampleGetOutputSampleRate( // ========================================================================= // For offline speaker diarization (i.e., non-streaming speaker diarization) // ========================================================================= -SHERPA_ONNX_API typedef struct +typedef struct SherpaOnnxOfflineSpeakerSegmentationPyannoteModelConfig { const char *model; } SherpaOnnxOfflineSpeakerSegmentationPyannoteModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeakerSegmentationModelConfig { +typedef struct SherpaOnnxOfflineSpeakerSegmentationModelConfig { SherpaOnnxOfflineSpeakerSegmentationPyannoteModelConfig pyannote; int32_t num_threads; // 1 int32_t debug; // false const char *provider; // "cpu" } SherpaOnnxOfflineSpeakerSegmentationModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxFastClusteringConfig { +typedef struct SherpaOnnxFastClusteringConfig { // If greater than 0, then threshold is ignored. // // We strongly recommend that you set it if you know the number of clusters @@ -1788,7 +1788,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxFastClusteringConfig { float threshold; } SherpaOnnxFastClusteringConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeakerDiarizationConfig { +typedef struct SherpaOnnxOfflineSpeakerDiarizationConfig { SherpaOnnxOfflineSpeakerSegmentationModelConfig segmentation; SherpaOnnxSpeakerEmbeddingExtractorConfig embedding; SherpaOnnxFastClusteringConfig clustering; @@ -1802,7 +1802,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeakerDiarizationConfig { float min_duration_off; // in seconds } SherpaOnnxOfflineSpeakerDiarizationConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeakerDiarization +typedef struct SherpaOnnxOfflineSpeakerDiarization SherpaOnnxOfflineSpeakerDiarization; // The users has to invoke SherpaOnnxDestroyOfflineSpeakerDiarization() @@ -1824,10 +1824,10 @@ SHERPA_ONNX_API void SherpaOnnxOfflineSpeakerDiarizationSetConfig( const SherpaOnnxOfflineSpeakerDiarization *sd, const SherpaOnnxOfflineSpeakerDiarizationConfig *config); -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeakerDiarizationResult +typedef struct SherpaOnnxOfflineSpeakerDiarizationResult SherpaOnnxOfflineSpeakerDiarizationResult; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeakerDiarizationSegment { +typedef struct SherpaOnnxOfflineSpeakerDiarizationSegment { float start; float end; int32_t speaker; @@ -1885,22 +1885,22 @@ SHERPA_ONNX_API void SherpaOnnxOfflineSpeakerDiarizationDestroyResult( // ========================================================================= // For offline speech enhancement // ========================================================================= -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeechDenoiserGtcrnModelConfig { +typedef struct SherpaOnnxOfflineSpeechDenoiserGtcrnModelConfig { const char *model; } SherpaOnnxOfflineSpeechDenoiserGtcrnModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeechDenoiserModelConfig { +typedef struct SherpaOnnxOfflineSpeechDenoiserModelConfig { SherpaOnnxOfflineSpeechDenoiserGtcrnModelConfig gtcrn; int32_t num_threads; int32_t debug; // true to print debug information of the model const char *provider; } SherpaOnnxOfflineSpeechDenoiserModelConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeechDenoiserConfig { +typedef struct SherpaOnnxOfflineSpeechDenoiserConfig { SherpaOnnxOfflineSpeechDenoiserModelConfig model; } SherpaOnnxOfflineSpeechDenoiserConfig; -SHERPA_ONNX_API typedef struct SherpaOnnxOfflineSpeechDenoiser +typedef struct SherpaOnnxOfflineSpeechDenoiser SherpaOnnxOfflineSpeechDenoiser; // The users has to invoke SherpaOnnxDestroyOfflineSpeechDenoiser() @@ -1916,7 +1916,7 @@ SHERPA_ONNX_API void SherpaOnnxDestroyOfflineSpeechDenoiser( SHERPA_ONNX_API int32_t SherpaOnnxOfflineSpeechDenoiserGetSampleRate( const SherpaOnnxOfflineSpeechDenoiser *sd); -SHERPA_ONNX_API typedef struct SherpaOnnxDenoisedAudio { +typedef struct SherpaOnnxDenoisedAudio { const float *samples; // in the range [-1, 1] int32_t n; // number of samples int32_t sample_rate; diff --git a/sherpa-onnx/c-api/cxx-api.h b/sherpa-onnx/c-api/cxx-api.h index 8d4af2d3ea..359bbf9b3a 100644 --- a/sherpa-onnx/c-api/cxx-api.h +++ b/sherpa-onnx/c-api/cxx-api.h @@ -212,21 +212,21 @@ class SHERPA_ONNX_API OnlineRecognizer // ============================================================================ // Non-streaming ASR // ============================================================================ -struct SHERPA_ONNX_API OfflineTransducerModelConfig { +struct OfflineTransducerModelConfig { std::string encoder; std::string decoder; std::string joiner; }; -struct SHERPA_ONNX_API OfflineParaformerModelConfig { +struct OfflineParaformerModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineNemoEncDecCtcModelConfig { +struct OfflineNemoEncDecCtcModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineWhisperModelConfig { +struct OfflineWhisperModelConfig { std::string encoder; std::string decoder; std::string language; @@ -234,7 +234,7 @@ struct SHERPA_ONNX_API OfflineWhisperModelConfig { int32_t tail_paddings = -1; }; -struct SHERPA_ONNX_API OfflineCanaryModelConfig { +struct OfflineCanaryModelConfig { std::string encoder; std::string decoder; std::string src_lang; @@ -242,46 +242,46 @@ struct SHERPA_ONNX_API OfflineCanaryModelConfig { bool use_pnc = true; }; -struct SHERPA_ONNX_API OfflineFireRedAsrModelConfig { +struct OfflineFireRedAsrModelConfig { std::string encoder; std::string decoder; }; -struct SHERPA_ONNX_API OfflineFireRedAsrCtcModelConfig { +struct OfflineFireRedAsrCtcModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineTdnnModelConfig { +struct OfflineTdnnModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineSenseVoiceModelConfig { +struct OfflineSenseVoiceModelConfig { std::string model; std::string language; bool use_itn = false; }; -struct SHERPA_ONNX_API OfflineDolphinModelConfig { +struct OfflineDolphinModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineZipformerCtcModelConfig { +struct OfflineZipformerCtcModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineWenetCtcModelConfig { +struct OfflineWenetCtcModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineOmnilingualAsrCtcModelConfig { +struct OfflineOmnilingualAsrCtcModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineMedAsrCtcModelConfig { +struct OfflineMedAsrCtcModelConfig { std::string model; }; -struct SHERPA_ONNX_API OfflineMoonshineModelConfig { +struct OfflineMoonshineModelConfig { std::string preprocessor; std::string encoder; std::string uncached_decoder; @@ -289,7 +289,7 @@ struct SHERPA_ONNX_API OfflineMoonshineModelConfig { std::string merged_decoder; }; -struct SHERPA_ONNX_API OfflineFunASRNanoModelConfig { +struct OfflineFunASRNanoModelConfig { std::string encoder_adaptor; std::string llm; std::string embedding; @@ -305,7 +305,7 @@ struct SHERPA_ONNX_API OfflineFunASRNanoModelConfig { std::string hotwords; }; -struct SHERPA_ONNX_API OfflineModelConfig { +struct OfflineModelConfig { OfflineTransducerModelConfig transducer; OfflineParaformerModelConfig paraformer; OfflineNemoEncDecCtcModelConfig nemo_ctc; @@ -333,12 +333,12 @@ struct SHERPA_ONNX_API OfflineModelConfig { OfflineFireRedAsrCtcModelConfig fire_red_asr_ctc; }; -struct SHERPA_ONNX_API OfflineLMConfig { +struct OfflineLMConfig { std::string model; float scale = 1.0; }; -struct SHERPA_ONNX_API OfflineRecognizerConfig { +struct OfflineRecognizerConfig { FeatureConfig feat_config; OfflineModelConfig model_config; OfflineLMConfig lm_config; @@ -355,7 +355,7 @@ struct SHERPA_ONNX_API OfflineRecognizerConfig { HomophoneReplacerConfig hr; }; -struct SHERPA_ONNX_API OfflineRecognizerResult { +struct OfflineRecognizerResult { std::string text; std::vector timestamps; std::vector tokens;