sherpa-onnx C API 1.0
Public C API and C++ wrapper for sherpa-onnx
Loading...
Searching...
No Matches
c-api.h
Go to the documentation of this file.
1// sherpa-onnx/c-api/c-api.h
2//
3// Copyright (c) 2023 Xiaomi Corporation
71#ifndef SHERPA_ONNX_C_API_C_API_H_
72#define SHERPA_ONNX_C_API_C_API_H_
73
74#include <stdint.h>
75
76#ifdef __cplusplus
77extern "C" {
78#endif
79
80// See https://github.com/pytorch/pytorch/blob/main/c10/macros/Export.h
81// We will set SHERPA_ONNX_BUILD_SHARED_LIBS and SHERPA_ONNX_BUILD_MAIN_LIB in
82// CMakeLists.txt
83
84#if defined(__GNUC__)
85#pragma GCC diagnostic push
86#pragma GCC diagnostic ignored "-Wattributes"
87#endif
88
89#if defined(_WIN32)
90#if defined(SHERPA_ONNX_BUILD_SHARED_LIBS)
91#define SHERPA_ONNX_EXPORT __declspec(dllexport)
92#define SHERPA_ONNX_IMPORT __declspec(dllimport)
93#else
94#define SHERPA_ONNX_EXPORT
95#define SHERPA_ONNX_IMPORT
96#endif
97#else // WIN32
98#define SHERPA_ONNX_EXPORT __attribute__((visibility("default")))
99
100#define SHERPA_ONNX_IMPORT SHERPA_ONNX_EXPORT
101#endif // WIN32
102
103#if defined(SHERPA_ONNX_BUILD_MAIN_LIB)
104#define SHERPA_ONNX_API SHERPA_ONNX_EXPORT
105#else
106#define SHERPA_ONNX_API SHERPA_ONNX_IMPORT
107#endif
108
109#ifndef SHERPA_ONNX_DEPRECATED
110#if defined(_MSC_VER)
111#define SHERPA_ONNX_DEPRECATED(msg) __declspec(deprecated(msg))
112#elif defined(__GNUC__) || defined(__clang__)
113#define SHERPA_ONNX_DEPRECATED(msg) __attribute__((deprecated(msg)))
114#else
115#define SHERPA_ONNX_DEPRECATED(msg)
116#endif
117#endif
118
132
142
152
162
175SHERPA_ONNX_API int32_t SherpaOnnxFileExists(const char *filename);
176
192
206
214
220
226
280
294
302
312
394
405 const char *text;
406
412 const char *tokens;
413
415 const char *const *tokens_arr;
416
425
427 int32_t count;
428
430 const char *json;
432
437
477
490 const SherpaOnnxOnlineRecognizer *recognizer);
491
511 const SherpaOnnxOnlineRecognizer *recognizer);
512
529 const SherpaOnnxOnlineRecognizer *recognizer, const char *hotwords);
530
544 const SherpaOnnxOnlineStream *stream);
545
567 const SherpaOnnxOnlineStream *stream, int32_t sample_rate,
568 const float *samples, int32_t n);
569
583SHERPA_ONNX_API int32_t
585 const SherpaOnnxOnlineStream *stream);
586
604 const SherpaOnnxOnlineRecognizer *recognizer,
605 const SherpaOnnxOnlineStream *stream);
606
623 const SherpaOnnxOnlineRecognizer *recognizer,
624 const SherpaOnnxOnlineStream **streams, int32_t n);
625
648 const SherpaOnnxOnlineStream *stream);
649
663
680 const SherpaOnnxOnlineRecognizer *recognizer,
681 const SherpaOnnxOnlineStream *stream);
682
695
712 const SherpaOnnxOnlineRecognizer *recognizer,
713 const SherpaOnnxOnlineStream *stream);
714
727 const SherpaOnnxOnlineStream *stream);
728
744 const SherpaOnnxOnlineStream *stream, const char *key, const char *value);
745
760 const SherpaOnnxOnlineStream *stream, const char *key);
761
774 const SherpaOnnxOnlineStream *stream, const char *key);
775
789SHERPA_ONNX_API int32_t
791 const SherpaOnnxOnlineStream *stream);
792
799
812 int32_t max_word_per_line);
813
820
833 int32_t idx, const char *s);
834// ============================================================
835// For offline ASR (i.e., non-streaming ASR)
836// ============================================================
837
849
855
861
883
897
911
919
925
939
945
953
963
969
975
981
987
991 const char *encoder_adaptor;
993 const char *llm;
995 const char *embedding;
997 const char *tokenizer;
999 const char *system_prompt;
1001 const char *user_prompt;
1007 float top_p;
1009 int32_t seed;
1011 const char *language;
1013 int32_t itn;
1015 const char *hotwords;
1017
1042
1048
1121
1204
1207
1210
1270 const SherpaOnnxOfflineRecognizerConfig *config);
1271
1283 const SherpaOnnxOfflineRecognizer *recognizer,
1284 const SherpaOnnxOfflineRecognizerConfig *config);
1285
1298 const SherpaOnnxOfflineRecognizer *recognizer);
1299
1316 const SherpaOnnxOfflineRecognizer *recognizer);
1317
1334 const SherpaOnnxOfflineRecognizer *recognizer, const char *hotwords);
1335
1349 const SherpaOnnxOfflineStream *stream);
1350
1378 const SherpaOnnxOfflineStream *stream, int32_t sample_rate,
1379 const float *samples, int32_t n);
1380
1393 const SherpaOnnxOfflineStream *stream, const char *key, const char *value);
1394
1409 const SherpaOnnxOfflineStream *stream, const char *key);
1410
1424 const SherpaOnnxOfflineStream *stream, const char *key);
1425
1440 const SherpaOnnxOfflineRecognizer *recognizer,
1441 const SherpaOnnxOfflineStream *stream);
1442
1459 const SherpaOnnxOfflineRecognizer *recognizer,
1460 const SherpaOnnxOfflineStream **streams, int32_t n);
1461
1472 const char *text;
1473
1482
1484 int32_t count;
1485
1491 const char *tokens;
1492
1494 const char *const *tokens_arr;
1495
1497 const char *json;
1498
1500 const char *lang;
1501
1503 const char *emotion;
1504
1506 const char *event;
1507
1510
1513
1517
1520 const float *segment_durations;
1521
1523 const char *segment_texts;
1524
1526 const char *const *segment_texts_arr;
1527
1531
1555
1569
1584 const SherpaOnnxOfflineStream *stream);
1585
1598
1599// ============================================================
1600// For keyword spotting
1601// ============================================================
1615 const char *keyword;
1616
1622 const char *tokens;
1623
1629 const char *const *tokens_arr;
1630
1632 int32_t count;
1633
1641
1644
1650 const char *json;
1652
1715
1718
1728 const SherpaOnnxKeywordSpotterConfig *config);
1729
1737 const SherpaOnnxKeywordSpotter *spotter);
1738
1748 const SherpaOnnxKeywordSpotter *spotter);
1749
1769 const SherpaOnnxKeywordSpotter *spotter, const char *keywords);
1770
1779SHERPA_ONNX_API int32_t
1781 const SherpaOnnxOnlineStream *stream);
1782
1793 const SherpaOnnxKeywordSpotter *spotter,
1794 const SherpaOnnxOnlineStream *stream);
1795
1807 const SherpaOnnxKeywordSpotter *spotter,
1808 const SherpaOnnxOnlineStream *stream);
1809
1821 const SherpaOnnxKeywordSpotter *spotter,
1822 const SherpaOnnxOnlineStream **streams, int32_t n);
1823
1847 const SherpaOnnxKeywordSpotter *spotter,
1848 const SherpaOnnxOnlineStream *stream);
1849
1857 const SherpaOnnxKeywordResult *r);
1858
1869 const SherpaOnnxKeywordSpotter *spotter,
1870 const SherpaOnnxOnlineStream *stream);
1871
1878
1879// ============================================================
1880// For VAD
1881// ============================================================
1882
1903
1924
1971
1974
1988 int32_t capacity);
1989
2001 const SherpaOnnxCircularBuffer *buffer);
2002
2015 const SherpaOnnxCircularBuffer *buffer, const float *p, int32_t n);
2016
2032 const SherpaOnnxCircularBuffer *buffer, int32_t start_index, int32_t n);
2033
2036
2044 const SherpaOnnxCircularBuffer *buffer, int32_t n);
2045
2052SHERPA_ONNX_API int32_t
2054
2064SHERPA_ONNX_API int32_t
2066
2073 const SherpaOnnxCircularBuffer *buffer);
2074
2090
2093
2123 float buffer_size_in_seconds);
2124
2133
2150 const SherpaOnnxVoiceActivityDetector *p, const float *samples, int32_t n);
2151
2158SHERPA_ONNX_API int32_t
2160
2169
2188
2196
2219
2228 const SherpaOnnxSpeechSegment *p);
2229
2237
2251
2252// ============================================================
2253// For offline Text-to-Speech (i.e., non-streaming TTS)
2254// ============================================================
2255
2275
2295
2299 const char *model;
2301 const char *voices;
2303 const char *tokens;
2305 const char *data_dir;
2309 const char *dict_dir;
2311 const char *lexicon;
2313 const char *lang;
2315
2329
2353
2373
2391
2431
2462
2478
2487typedef int32_t (*SherpaOnnxGeneratedAudioCallback)(const float *samples,
2488 int32_t n);
2489
2494typedef int32_t (*SherpaOnnxGeneratedAudioCallbackWithArg)(const float *samples,
2495 int32_t n,
2496 void *arg);
2497
2507 const float *samples, int32_t n, float p);
2508
2514 const float *samples, int32_t n, float p, void *arg);
2515
2518
2540 const SherpaOnnxOfflineTtsConfig *config);
2541
2549 const SherpaOnnxOfflineTts *tts);
2550
2557SHERPA_ONNX_API int32_t
2559
2568SHERPA_ONNX_API int32_t
2570
2592SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2593 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2595 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2596 float speed);
2597
2615SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2616 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2618 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2619 float speed, SherpaOnnxGeneratedAudioCallback callback);
2620
2645SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2646 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2648 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2649 float speed, SherpaOnnxGeneratedAudioProgressCallback callback);
2650
2665SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2666 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2669 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2670 float speed,
2672 void *arg);
2673
2689SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2690 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2692 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2693 float speed, SherpaOnnxGeneratedAudioCallbackWithArg callback,
2694 void *arg);
2695
2701SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2702 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2704 const SherpaOnnxOfflineTts *tts, const char *text,
2705 const char *prompt_text, const float *prompt_samples, int32_t n_prompt,
2706 int32_t prompt_sr, float speed, int32_t num_steps);
2707
2747
2778 const SherpaOnnxOfflineTts *tts, const char *text,
2779 const SherpaOnnxGenerationConfig *config,
2781
2790 const SherpaOnnxGeneratedAudio *p);
2791
2807SHERPA_ONNX_API int32_t SherpaOnnxWriteWave(const float *samples, int32_t n,
2808 int32_t sample_rate,
2809 const char *filename);
2810
2817SHERPA_ONNX_API int64_t SherpaOnnxWaveFileSize(int32_t n_samples);
2818
2830 int32_t n, int32_t sample_rate,
2831 char *buffer);
2832
2844 const float *const *samples, int32_t n, int32_t sample_rate,
2845 int32_t num_channels, const char *filename);
2846
2853typedef struct SherpaOnnxWave {
2855 const float *samples;
2861
2880
2890 const char *data, int32_t n);
2891
2898
2917
2927
2934 const SherpaOnnxMultiChannelWave *wave);
2935
2936// ============================================================
2937// For spoken language identification
2938// ============================================================
2939
2960
2987
2991
3003
3013
3028
3040
3068 const SherpaOnnxOfflineStream *s);
3069
3078
3079// ============================================================
3080// For speaker embedding extraction
3081// ============================================================
3107
3111
3123
3132
3141
3156
3167 const SherpaOnnxOnlineStream *s);
3168
3194SHERPA_ONNX_API const float *
3197 const SherpaOnnxOnlineStream *s);
3198
3207 const float *v);
3208
3216
3231
3240
3249SHERPA_ONNX_API int32_t
3251 const char *name, const float *v);
3252
3270 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name,
3271 const float **v);
3272
3286 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name,
3287 const float *v, int32_t n);
3288
3297 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name);
3298
3310 const SherpaOnnxSpeakerEmbeddingManager *p, const float *v,
3311 float threshold);
3312
3320 const char *name);
3321
3331
3343
3356 const SherpaOnnxSpeakerEmbeddingManager *p, const float *v, float threshold,
3357 int32_t n);
3358
3367
3378 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name,
3379 const float *v, float threshold);
3380
3389 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name);
3390
3399
3410SHERPA_ONNX_API const char *const *
3413
3422 const char *const *names);
3423
3424// ============================================================
3425// For audio tagging
3426// ============================================================
3432
3463
3489
3493typedef struct SherpaOnnxAudioEvent {
3495 const char *name;
3497 int32_t index;
3499 float prob;
3501
3504
3514 const SherpaOnnxAudioTaggingConfig *config);
3515
3523 const SherpaOnnxAudioTagging *tagger);
3524
3534
3561 const SherpaOnnxOfflineStream *s, int32_t top_k);
3562
3569 const SherpaOnnxAudioEvent *const *p);
3570
3571// ============================================================
3572// For punctuation
3573// ============================================================
3574
3599
3605
3608
3620
3628 const SherpaOnnxOfflinePunctuation *punct);
3629
3640 const SherpaOnnxOfflinePunctuation *punct, const char *text);
3641
3649
3676
3682
3685
3695 const SherpaOnnxOnlinePunctuationConfig *config);
3696
3703 const SherpaOnnxOnlinePunctuation *punctuation);
3704
3722 const SherpaOnnxOnlinePunctuation *punctuation, const char *text);
3723
3730
3731// For resampling
3734
3758SherpaOnnxCreateLinearResampler(int32_t samp_rate_in_hz,
3759 int32_t samp_rate_out_hz,
3760 float filter_cutoff_hz, int32_t num_zeros);
3761
3768 const SherpaOnnxLinearResampler *p);
3769
3776 const SherpaOnnxLinearResampler *p);
3777
3789
3803 const SherpaOnnxLinearResampler *p, const float *input, int32_t input_dim,
3804 int32_t flush);
3805
3812 const SherpaOnnxResampleOut *p);
3813
3821 const SherpaOnnxLinearResampler *p);
3822
3830 const SherpaOnnxLinearResampler *p);
3831
3832// =========================================================================
3833// For offline speaker diarization (i.e., non-streaming speaker diarization)
3834// =========================================================================
3847
3864
3879
3907
3911
3923
3932
3941
3953
3957
3969
3979
3989
4004
4014
4022 int32_t num_processed_chunks, int32_t num_total_chunks, void *arg);
4023
4029 int32_t num_processed_chunks, int32_t num_total_chunks);
4030
4042 const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples,
4043 int32_t n);
4044
4065 const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples,
4067 void *arg);
4068
4082 const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples,
4083 int32_t n,
4085
4094
4095// =========================================================================
4096// For offline speech enhancement
4097// =========================================================================
4103
4118
4137
4143
4146
4166
4175
4184
4198
4220 const float *samples, int32_t n,
4221 int32_t sample_rate);
4222
4231 const SherpaOnnxDenoisedAudio *p);
4232
4233// =========================================================================
4234// For streaming speech enhancement
4235// =========================================================================
4241
4244
4256
4265
4274
4285
4301 const float *samples, int32_t n,
4302 int32_t sample_rate);
4303
4315
4323
4324// =========================================================================
4325// Source separation
4326// =========================================================================
4327
4335
4341
4350
4355
4359
4371
4380
4389
4400
4410
4420
4439 const SherpaOnnxOfflineSourceSeparation *ss, const float *const *samples,
4440 int32_t num_channels, int32_t num_samples, int32_t sample_rate);
4441
4449
4450#ifdef __OHOS__
4451
4458typedef struct NativeResourceManager NativeResourceManager;
4459
4471SherpaOnnxCreateOfflineSpeechDenoiserOHOS(
4473 NativeResourceManager *mgr);
4474
4486SherpaOnnxCreateOnlineSpeechDenoiserOHOS(
4488 NativeResourceManager *mgr);
4489
4501SherpaOnnxCreateOnlineRecognizerOHOS(
4502 const SherpaOnnxOnlineRecognizerConfig *config, NativeResourceManager *mgr);
4503
4515SherpaOnnxCreateOfflineRecognizerOHOS(
4517 NativeResourceManager *mgr);
4518
4531SherpaOnnxCreateVoiceActivityDetectorOHOS(
4532 const SherpaOnnxVadModelConfig *config, float buffer_size_in_seconds,
4533 NativeResourceManager *mgr);
4534
4545SHERPA_ONNX_API const SherpaOnnxOfflineTts *SherpaOnnxCreateOfflineTtsOHOS(
4546 const SherpaOnnxOfflineTtsConfig *config, NativeResourceManager *mgr);
4547
4559SherpaOnnxCreateOfflinePunctuationOHOS(
4561 NativeResourceManager *mgr);
4562
4574SherpaOnnxCreateOnlinePunctuationOHOS(
4576 NativeResourceManager *mgr);
4577
4590SherpaOnnxCreateSpeakerEmbeddingExtractorOHOS(
4592 NativeResourceManager *mgr);
4593
4605SherpaOnnxCreateKeywordSpotterOHOS(const SherpaOnnxKeywordSpotterConfig *config,
4606 NativeResourceManager *mgr);
4607
4620SherpaOnnxCreateOfflineSpeakerDiarizationOHOS(
4622 NativeResourceManager *mgr);
4623
4636SherpaOnnxCreateOfflineSourceSeparationOHOS(
4638 NativeResourceManager *mgr);
4639#endif
4640
4641// ============================================================
4642// For diacritization
4643// ============================================================
4644
4660
4666
4669
4680
4687 const SherpaOnnxOfflineDiacritization *diacrt);
4688
4698 const SherpaOnnxOfflineDiacritization *diacrt, const char *text);
4699
4706
4707#if defined(__GNUC__)
4708#pragma GCC diagnostic pop
4709#endif
4710
4711#ifdef __cplusplus
4712} /* extern "C" */
4713#endif
4714
4715#endif // SHERPA_ONNX_C_API_C_API_H_
int32_t SherpaOnnxOfflineSpeakerDiarizationResultGetNumSegments(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Return the number of diarization segments.
int32_t SherpaOnnxVoiceActivityDetectorDetected(const SherpaOnnxVoiceActivityDetector *p)
Check whether the detector is currently inside speech.
const SherpaOnnxSpeechSegment * SherpaOnnxVoiceActivityDetectorFront(const SherpaOnnxVoiceActivityDetector *p)
Get the first queued speech segment.
void SherpaOnnxOfflineRecognizerSetConfig(const SherpaOnnxOfflineRecognizer *recognizer, const SherpaOnnxOfflineRecognizerConfig *config)
Update the configuration of an existing offline recognizer.
const SherpaOnnxMultiChannelWave * SherpaOnnxReadWaveMultiChannel(const char *filename)
Read a multi-channel 16-bit PCM WAVE file.
void SherpaOnnxFreeWave(const SherpaOnnxWave *wave)
Destroy a wave object returned by SherpaOnnxReadWave() or SherpaOnnxReadWaveFromBinaryData().
struct SherpaOnnxSpokenLanguageIdentification SherpaOnnxSpokenLanguageIdentification
Opaque spoken-language identification handle.
Definition c-api.h:2989
const SherpaOnnxOfflineSpeakerDiarizationResult * SherpaOnnxOfflineSpeakerDiarizationProcess(const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples, int32_t n)
Run offline speaker diarization.
void SherpaOnnxDestroySpokenLanguageIdentification(const SherpaOnnxSpokenLanguageIdentification *slid)
Destroy a spoken-language identifier.
int32_t SherpaOnnxSpeakerEmbeddingManagerNumSpeakers(const SherpaOnnxSpeakerEmbeddingManager *p)
Return the number of enrolled speakers.
int32_t(* SherpaOnnxGeneratedAudioCallback)(const float *samples, int32_t n)
Callback invoked during incremental generation.
Definition c-api.h:2487
void SherpaOnnxOnlineSpeechDenoiserReset(const SherpaOnnxOnlineSpeechDenoiser *sd)
Reset an online denoiser so it can process a new stream.
const SherpaOnnxGeneratedAudio * SherpaOnnxOfflineTtsGenerateWithZipvoice(const SherpaOnnxOfflineTts *tts, const char *text, const char *prompt_text, const float *prompt_samples, int32_t n_prompt, int32_t prompt_sr, float speed, int32_t num_steps)
Deprecated ZipVoice-specific generation API.
const char * SherpaOnnxOfflineStreamGetOption(const SherpaOnnxOfflineStream *stream, const char *key)
Get a per-stream runtime option for offline ASR.
int32_t SherpaOnnxSpeakerEmbeddingManagerRemove(const SherpaOnnxSpeakerEmbeddingManager *p, const char *name)
Remove a speaker from the manager.
const SherpaOnnxSpeakerEmbeddingExtractor * SherpaOnnxCreateSpeakerEmbeddingExtractor(const SherpaOnnxSpeakerEmbeddingExtractorConfig *config)
Create a speaker embedding extractor.
struct SherpaOnnxOfflineSpeechDenoiser SherpaOnnxOfflineSpeechDenoiser
Opaque offline speech denoiser handle.
Definition c-api.h:4145
void SherpaOnnxDestroyKeywordSpotter(const SherpaOnnxKeywordSpotter *spotter)
Destroy a keyword spotter.
void SherpaOnnxDestroyOnlineSpeechDenoiser(const SherpaOnnxOnlineSpeechDenoiser *sd)
Destroy an online speech denoiser.
const SherpaOnnxLinearResampler * SherpaOnnxCreateLinearResampler(int32_t samp_rate_in_hz, int32_t samp_rate_out_hz, float filter_cutoff_hz, int32_t num_zeros)
Create a linear resampler.
int32_t SherpaOnnxOfflineSpeechDenoiserGetSampleRate(const SherpaOnnxOfflineSpeechDenoiser *sd)
Return the expected sample rate for the denoiser.
const SherpaOnnxWave * SherpaOnnxReadWave(const char *filename)
Read a mono 16-bit PCM WAVE file.
void SherpaOnnxOnlineStreamAcceptWaveform(const SherpaOnnxOnlineStream *stream, int32_t sample_rate, const float *samples, int32_t n)
Append audio samples to a streaming ASR stream.
void SherpaOnnxDestroyOnlineStreamResultJson(const char *s)
Free a JSON string returned by SherpaOnnxGetOnlineStreamResultAsJson().
void SherpaOnnxAudioTaggingFreeResults(const SherpaOnnxAudioEvent *const *p)
Destroy results returned by SherpaOnnxAudioTaggingCompute().
void SherpaOnnxDestroyOfflineSpeakerDiarization(const SherpaOnnxOfflineSpeakerDiarization *sd)
Destroy an offline speaker diarizer.
const SherpaOnnxOfflineRecognizer * SherpaOnnxCreateOfflineRecognizer(const SherpaOnnxOfflineRecognizerConfig *config)
Create a non-streaming ASR recognizer.
void SherpaOnnxSpeakerEmbeddingExtractorDestroyEmbedding(const float *v)
Destroy an embedding vector returned by SherpaOnnxSpeakerEmbeddingExtractorComputeEmbedding().
int32_t(* SherpaOnnxOfflineSpeakerDiarizationProgressCallbackNoArg)(int32_t num_processed_chunks, int32_t num_total_chunks)
Same as SherpaOnnxOfflineSpeakerDiarizationProgressCallback but without a user pointer.
Definition c-api.h:4028
const SherpaOnnxOfflineTts * SherpaOnnxCreateOfflineTts(const SherpaOnnxOfflineTtsConfig *config)
Create an offline TTS engine.
void SherpaOnnxVoiceActivityDetectorFlush(const SherpaOnnxVoiceActivityDetector *p)
Flush buffered tail samples and force final segmentation.
void SherpaOnnxDestroyOfflineStream(const SherpaOnnxOfflineStream *stream)
Destroy a non-streaming ASR stream.
const float * SherpaOnnxSpeakerEmbeddingExtractorComputeEmbedding(const SherpaOnnxSpeakerEmbeddingExtractor *p, const SherpaOnnxOnlineStream *s)
Compute the embedding for a stream.
const SherpaOnnxOfflineRecognizerResult * SherpaOnnxGetOfflineStreamResult(const SherpaOnnxOfflineStream *stream)
Get the recognition result for an offline ASR stream.
void SherpaOnnxFreeMultiChannelWave(const SherpaOnnxMultiChannelWave *wave)
Destroy a multi-channel wave object.
void SherpaOnnxOnlineStreamSetOption(const SherpaOnnxOnlineStream *stream, const char *key, const char *value)
Set a per-stream runtime option.
const char * SherpaOnnxGetOfflineStreamResultAsJson(const SherpaOnnxOfflineStream *stream)
Get the offline ASR result as JSON.
int32_t(* SherpaOnnxOfflineSpeakerDiarizationProgressCallback)(int32_t num_processed_chunks, int32_t num_total_chunks, void *arg)
Progress callback for offline speaker diarization.
Definition c-api.h:4021
const char * SherpaOnnxGetKeywordResultAsJson(const SherpaOnnxKeywordSpotter *spotter, const SherpaOnnxOnlineStream *stream)
Get the current keyword spotting result as JSON.
const float * SherpaOnnxCircularBufferGet(const SherpaOnnxCircularBuffer *buffer, int32_t start_index, int32_t n)
Copy out a slice of samples from a circular buffer.
const char * SherpaOnnxOnlinePunctuationAddPunct(const SherpaOnnxOnlinePunctuation *punctuation, const char *text)
Add punctuation to one text chunk using the online punctuation model.
int32_t SherpaOnnxSpeakerEmbeddingManagerAddList(const SherpaOnnxSpeakerEmbeddingManager *p, const char *name, const float **v)
Add multiple enrollment embeddings for one speaker.
void SherpaOnnxDecodeOfflineStream(const SherpaOnnxOfflineRecognizer *recognizer, const SherpaOnnxOfflineStream *stream)
Run offline ASR on one stream.
void SherpaOfflineDiacritizationFreeText(const char *text)
Free a string returned by SherpaOfflineDiacritizationAddDiacritics().
int32_t SherpaOnnxIsKeywordStreamReady(const SherpaOnnxKeywordSpotter *spotter, const SherpaOnnxOnlineStream *stream)
Check whether a keyword stream has enough audio for decoding.
int32_t SherpaOnnxSpeakerEmbeddingManagerAdd(const SherpaOnnxSpeakerEmbeddingManager *p, const char *name, const float *v)
Add one enrollment embedding for a speaker.
void SherpaOnnxDecodeKeywordStream(const SherpaOnnxKeywordSpotter *spotter, const SherpaOnnxOnlineStream *stream)
Decode one ready keyword stream.
void SherpaOnnxDestroySpeakerEmbeddingManager(const SherpaOnnxSpeakerEmbeddingManager *p)
Destroy a speaker embedding manager.
const SherpaOnnxOfflineSpeakerDiarizationResult * SherpaOnnxOfflineSpeakerDiarizationProcessWithCallback(const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples, int32_t n, SherpaOnnxOfflineSpeakerDiarizationProgressCallback callback, void *arg)
Run offline speaker diarization with a progress callback.
const SherpaOnnxResampleOut * SherpaOnnxLinearResamplerResample(const SherpaOnnxLinearResampler *p, const float *input, int32_t input_dim, int32_t flush)
Resample one chunk of input audio.
struct SherpaOnnxOfflineStream SherpaOnnxOfflineStream
Non-streaming decoding state for one utterance.
Definition c-api.h:1209
#define SHERPA_ONNX_API
Definition c-api.h:106
void SherpaOnnxOnlinePunctuationFreeText(const char *text)
Free a string returned by SherpaOnnxOnlinePunctuationAddPunct().
void SherpaOnnxCircularBufferPush(const SherpaOnnxCircularBuffer *buffer, const float *p, int32_t n)
Append samples to a circular buffer.
const char * SherpaOnnxGetOnlineStreamResultAsJson(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream *stream)
Get the current streaming ASR result as JSON.
struct SherpaOnnxOnlineSpeechDenoiser SherpaOnnxOnlineSpeechDenoiser
Opaque online speech denoiser handle.
Definition c-api.h:4243
const SherpaOnnxOnlinePunctuation * SherpaOnnxCreateOnlinePunctuation(const SherpaOnnxOnlinePunctuationConfig *config)
Create an online punctuation processor.
struct SherpaOnnxOnlineStream SherpaOnnxOnlineStream
Streaming decoding state for one utterance or stream.
Definition c-api.h:436
void SherpaOnnxDestroyLinearResampler(const SherpaOnnxLinearResampler *p)
Destroy a linear resampler.
const SherpaOnnxDenoisedAudio * SherpaOnnxOnlineSpeechDenoiserRun(const SherpaOnnxOnlineSpeechDenoiser *sd, const float *samples, int32_t n, int32_t sample_rate)
Process one chunk of streaming audio.
const SherpaOnnxOfflineSourceSeparation * SherpaOnnxCreateOfflineSourceSeparation(const SherpaOnnxOfflineSourceSeparationConfig *config)
Create a source-separation engine.
void SherpaOnnxDestroyOfflineRecognizer(const SherpaOnnxOfflineRecognizer *recognizer)
Destroy a non-streaming recognizer.
void SherpaOnnxLinearResamplerReset(const SherpaOnnxLinearResampler *p)
Reset a linear resampler to its initial state.
void SherpaOnnxDestroyOnlineRecognizerResult(const SherpaOnnxOnlineRecognizerResult *r)
Destroy a result returned by SherpaOnnxGetOnlineStreamResult().
const SherpaOnnxAudioEvent *const * SherpaOnnxAudioTaggingCompute(const SherpaOnnxAudioTagging *tagger, const SherpaOnnxOfflineStream *s, int32_t top_k)
Run audio tagging on an offline stream.
void SherpaOnnxLinearResamplerResampleFree(const SherpaOnnxResampleOut *p)
Destroy a resampler output chunk.
int32_t SherpaOnnxOfflineSourceSeparationGetOutputSampleRate(const SherpaOnnxOfflineSourceSeparation *ss)
Return the output sample rate of the source-separation engine.
void SherpaOnnxDecodeMultipleKeywordStreams(const SherpaOnnxKeywordSpotter *spotter, const SherpaOnnxOnlineStream **streams, int32_t n)
Decode multiple ready keyword streams in parallel.
int32_t SherpaOnnxCircularBufferSize(const SherpaOnnxCircularBuffer *buffer)
Return the number of currently stored samples.
void SherpaOnnxVoiceActivityDetectorReset(const SherpaOnnxVoiceActivityDetector *p)
Reset a voice activity detector so it can process a new stream.
const char * SherpaOnnxGetOnnxruntimeVersionStr()
Return the onnxruntime version string used by the library.
const SherpaOnnxOnlineSpeechDenoiser * SherpaOnnxCreateOnlineSpeechDenoiser(const SherpaOnnxOnlineSpeechDenoiserConfig *config)
Create an online speech denoiser.
int32_t(* SherpaOnnxGeneratedAudioProgressCallback)(const float *samples, int32_t n, float p)
Progress callback invoked during incremental generation.
Definition c-api.h:2506
void SherpaOnnxDestroyOfflineTtsGeneratedAudio(const SherpaOnnxGeneratedAudio *p)
Destroy audio returned by a TTS generation API.
const SherpaOnnxOfflineStream * SherpaOnnxAudioTaggingCreateOfflineStream(const SherpaOnnxAudioTagging *tagger)
Create an offline stream for audio tagging.
const char * SherpaOfflinePunctuationAddPunct(const SherpaOnnxOfflinePunctuation *punct, const char *text)
Add punctuation to a complete input text.
int32_t SherpaOnnxVoiceActivityDetectorEmpty(const SherpaOnnxVoiceActivityDetector *p)
Check whether the detector currently has any completed speech segment.
int32_t SherpaOnnxIsOnlineStreamReady(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream *stream)
Check whether a streaming ASR stream is ready to decode.
int32_t SherpaOnnxSpeakerEmbeddingExtractorIsReady(const SherpaOnnxSpeakerEmbeddingExtractor *p, const SherpaOnnxOnlineStream *s)
Check whether enough audio has been provided to compute an embedding.
void SherpaOnnxCircularBufferPop(const SherpaOnnxCircularBuffer *buffer, int32_t n)
Drop samples from the front of a circular buffer.
int32_t SherpaOnnxOnlineSpeechDenoiserGetFrameShiftInSamples(const SherpaOnnxOnlineSpeechDenoiser *sd)
Return the recommended chunk size in samples for streaming input.
void SherpaOnnxSpeakerEmbeddingManagerFreeSearch(const char *name)
Free a string returned by SherpaOnnxSpeakerEmbeddingManagerSearch().
void SherpaOnnxDestroySpeakerEmbeddingExtractor(const SherpaOnnxSpeakerEmbeddingExtractor *p)
Destroy a speaker embedding extractor.
const SherpaOnnxOfflineSpeakerDiarization * SherpaOnnxCreateOfflineSpeakerDiarization(const SherpaOnnxOfflineSpeakerDiarizationConfig *config)
Create an offline speaker diarization pipeline.
struct SherpaOnnxOfflineRecognizer SherpaOnnxOfflineRecognizer
Non-streaming recognizer handle.
Definition c-api.h:1206
const char * SherpaOnnxSpeakerEmbeddingManagerSearch(const SherpaOnnxSpeakerEmbeddingManager *p, const float *v, float threshold)
Search for the best matching enrolled speaker.
void SherpaOnnxOfflineSpeakerDiarizationDestroyResult(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Destroy a diarization result.
const SherpaOnnxSpeakerEmbeddingManager * SherpaOnnxCreateSpeakerEmbeddingManager(int32_t dim)
Create a speaker embedding manager.
int32_t SherpaOnnxLinearResamplerResampleGetOutputSampleRate(const SherpaOnnxLinearResampler *p)
Return the resampler output sample rate.
const SherpaOnnxGeneratedAudio * SherpaOnnxOfflineTtsGenerateWithProgressCallback(const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid, float speed, SherpaOnnxGeneratedAudioProgressCallback callback)
Generate speech with a progress callback.
void SherpaOnnxDestroyAudioTagging(const SherpaOnnxAudioTagging *tagger)
Destroy an audio tagger.
int32_t SherpaOnnxOfflineTtsSampleRate(const SherpaOnnxOfflineTts *tts)
Return the output sample rate of a TTS engine.
void SherpaOnnxOfflineSpeakerDiarizationSetConfig(const SherpaOnnxOfflineSpeakerDiarization *sd, const SherpaOnnxOfflineSpeakerDiarizationConfig *config)
Update clustering-related settings of an existing diarizer.
void SherpaOnnxDestroyCircularBuffer(const SherpaOnnxCircularBuffer *buffer)
Destroy a circular buffer.
void SherpaOnnxDestroyOfflineStreamResultJson(const char *s)
Free a JSON string returned by SherpaOnnxGetOfflineStreamResultAsJson().
const SherpaOnnxGeneratedAudio * SherpaOnnxOfflineTtsGenerateWithCallback(const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid, float speed, SherpaOnnxGeneratedAudioCallback callback)
Generate speech and receive incremental audio chunks through a callback.
int32_t SherpaOnnxOfflineSpeakerDiarizationGetSampleRate(const SherpaOnnxOfflineSpeakerDiarization *sd)
Return the expected input sample rate.
void SherpaOnnxAcceptWaveformOffline(const SherpaOnnxOfflineStream *stream, int32_t sample_rate, const float *samples, int32_t n)
Provide the full utterance to an offline ASR stream.
const char *const * SherpaOnnxSpeakerEmbeddingManagerGetAllSpeakers(const SherpaOnnxSpeakerEmbeddingManager *p)
Return all enrolled speaker names.
const SherpaOnnxOnlineRecognizerResult * SherpaOnnxGetOnlineStreamResult(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream *stream)
Get the current streaming ASR result for a stream.
struct SherpaOnnxSpeakerEmbeddingManager SherpaOnnxSpeakerEmbeddingManager
Opaque speaker embedding manager handle.
Definition c-api.h:3214
struct SherpaOnnxKeywordSpotter SherpaOnnxKeywordSpotter
Opaque keyword spotter handle.
Definition c-api.h:1717
int32_t SherpaOnnxSpeakerEmbeddingManagerContains(const SherpaOnnxSpeakerEmbeddingManager *p, const char *name)
Check whether a speaker is enrolled.
int32_t SherpaOnnxOfflineStreamHasOption(const SherpaOnnxOfflineStream *stream, const char *key)
Check whether a per-stream runtime option exists.
void SherpaOnnxDestroyOnlineRecognizer(const SherpaOnnxOnlineRecognizer *recognizer)
Destroy a streaming recognizer.
void SherpaOnnxWriteWaveToBuffer(const float *samples, int32_t n, int32_t sample_rate, char *buffer)
Write a mono 16-bit WAVE file to a caller-provided buffer.
int32_t SherpaOnnxSpeakerEmbeddingManagerVerify(const SherpaOnnxSpeakerEmbeddingManager *p, const char *name, const float *v, float threshold)
Verify whether a query embedding matches a named speaker.
struct SherpaOnnxOnlinePunctuation SherpaOnnxOnlinePunctuation
Opaque online punctuation handle.
Definition c-api.h:3684
const SherpaOnnxOfflineStream * SherpaOnnxCreateOfflineStreamWithHotwords(const SherpaOnnxOfflineRecognizer *recognizer, const char *hotwords)
Create a non-streaming ASR input stream with per-stream hotwords.
int32_t SherpaOnnxCircularBufferHead(const SherpaOnnxCircularBuffer *buffer)
Return the current head index of the buffer timeline.
struct SherpaOnnxOnlineRecognizer SherpaOnnxOnlineRecognizer
Streaming recognizer handle.
Definition c-api.h:434
void SherpaOnnxDestroyOfflineSpeechDenoiser(const SherpaOnnxOfflineSpeechDenoiser *sd)
Destroy an offline speech denoiser.
int32_t SherpaOnnxOnlineStreamIsEndpoint(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream *stream)
Check whether endpoint detection has triggered for a stream.
const SherpaOnnxGeneratedAudio * SherpaOnnxOfflineTtsGenerate(const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid, float speed)
Generate speech from text using the simple sid/speed interface.
void SherpaOnnxSpeakerEmbeddingManagerFreeAllSpeakers(const char *const *names)
Free an array returned by SherpaOnnxSpeakerEmbeddingManagerGetAllSpeakers().
const SherpaOnnxDenoisedAudio * SherpaOnnxOfflineSpeechDenoiserRun(const SherpaOnnxOfflineSpeechDenoiser *sd, const float *samples, int32_t n, int32_t sample_rate)
Run offline speech denoising on a complete waveform.
void SherpaOnnxDestroySourceSeparationOutput(const SherpaOnnxSourceSeparationOutput *p)
Destroy the output of a source-separation run.
const SherpaOnnxKeywordSpotter * SherpaOnnxCreateKeywordSpotter(const SherpaOnnxKeywordSpotterConfig *config)
Create a keyword spotter.
void SherpaOnnxVoiceActivityDetectorPop(const SherpaOnnxVoiceActivityDetector *p)
Remove the front speech segment from the detector queue.
struct SherpaOnnxCircularBuffer SherpaOnnxCircularBuffer
Opaque circular-buffer handle used by helper APIs.
Definition c-api.h:1973
void SherpaOnnxDestroyKeywordResult(const SherpaOnnxKeywordResult *r)
Destroy a keyword result snapshot.
void SherpaOnnxOfflineStreamSetOption(const SherpaOnnxOfflineStream *stream, const char *key, const char *value)
Set a per-stream runtime option for offline ASR.
int32_t SherpaOnnxOfflineSpeakerDiarizationResultGetNumSpeakers(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Return the number of speakers in a diarization result.
const SherpaOnnxOnlineStream * SherpaOnnxCreateKeywordStreamWithKeywords(const SherpaOnnxKeywordSpotter *spotter, const char *keywords)
Create a keyword spotting stream with extra or replacement keywords.
void SherpaOnnxDestroyDisplay(const SherpaOnnxDisplay *display)
Destroy a display helper.
const SherpaOnnxWave * SherpaOnnxReadWaveFromBinaryData(const char *data, int32_t n)
Read a mono 16-bit PCM WAVE file from binary memory.
void SherpaOnnxDestroyOfflineRecognizerResult(const SherpaOnnxOfflineRecognizerResult *r)
Destroy a result returned by SherpaOnnxGetOfflineStreamResult().
const SherpaOnnxSpeakerEmbeddingManagerBestMatchesResult * SherpaOnnxSpeakerEmbeddingManagerGetBestMatches(const SherpaOnnxSpeakerEmbeddingManager *p, const float *v, float threshold, int32_t n)
Return up to n best matches above a similarity threshold.
struct SherpaOnnxOfflineTts SherpaOnnxOfflineTts
Opaque offline TTS handle.
Definition c-api.h:2517
void SherpaOnnxDecodeMultipleOnlineStreams(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream **streams, int32_t n)
Decode multiple streaming ASR streams in parallel.
int32_t SherpaOnnxFileExists(const char *filename)
Check whether a file exists.
struct SherpaOnnxOfflineSpeakerDiarizationResult SherpaOnnxOfflineSpeakerDiarizationResult
Opaque offline speaker diarization result.
Definition c-api.h:3955
void SherpaOfflinePunctuationFreeText(const char *text)
Free a string returned by SherpaOfflinePunctuationAddPunct().
void SherpaOnnxFreeKeywordResultJson(const char *s)
Free a JSON string returned by SherpaOnnxGetKeywordResultAsJson().
const SherpaOnnxDisplay * SherpaOnnxCreateDisplay(int32_t max_word_per_line)
Create a display helper.
const SherpaOnnxSpokenLanguageIdentification * SherpaOnnxCreateSpokenLanguageIdentification(const SherpaOnnxSpokenLanguageIdentificationConfig *config)
Create a spoken-language identifier.
void SherpaOnnxOfflineSpeakerDiarizationDestroySegment(const SherpaOnnxOfflineSpeakerDiarizationSegment *s)
Destroy a segment array returned by SherpaOnnxOfflineSpeakerDiarizationResultSortByStartTime().
void SherpaOnnxDestroyOfflineSourceSeparation(const SherpaOnnxOfflineSourceSeparation *ss)
Destroy a source-separation engine.
const SherpaOnnxOfflineStream * SherpaOnnxCreateOfflineStream(const SherpaOnnxOfflineRecognizer *recognizer)
Create a non-streaming ASR input stream.
const SherpaOnnxGeneratedAudio * SherpaOnnxOfflineTtsGenerateWithConfig(const SherpaOnnxOfflineTts *tts, const char *text, const SherpaOnnxGenerationConfig *config, SherpaOnnxGeneratedAudioProgressCallbackWithArg callback, void *arg)
Generate speech using the advanced configuration interface.
struct SherpaOnnxLinearResampler SherpaOnnxLinearResampler
Opaque linear resampler handle.
Definition c-api.h:3733
void SherpaOnnxDecodeMultipleOfflineStreams(const SherpaOnnxOfflineRecognizer *recognizer, const SherpaOnnxOfflineStream **streams, int32_t n)
Run offline ASR on multiple streams in parallel.
void SherpaOnnxCircularBufferReset(const SherpaOnnxCircularBuffer *buffer)
Clear a circular buffer and reset its head index.
void SherpaOnnxCircularBufferFree(const float *p)
Free an array returned by SherpaOnnxCircularBufferGet().
int32_t SherpaOnnxOnlineSpeechDenoiserGetSampleRate(const SherpaOnnxOnlineSpeechDenoiser *sd)
Return the expected input sample rate for the online denoiser.
void SherpaOnnxVoiceActivityDetectorAcceptWaveform(const SherpaOnnxVoiceActivityDetector *p, const float *samples, int32_t n)
Feed audio samples to the VAD.
const SherpaOnnxSpokenLanguageIdentificationResult * SherpaOnnxSpokenLanguageIdentificationCompute(const SherpaOnnxSpokenLanguageIdentification *slid, const SherpaOnnxOfflineStream *s)
Run spoken-language identification on an offline stream.
struct SherpaOnnxOfflineSourceSeparation SherpaOnnxOfflineSourceSeparation
Opaque source-separation engine handle.
Definition c-api.h:4357
struct SherpaOnnxOfflineSpeakerDiarization SherpaOnnxOfflineSpeakerDiarization
Opaque offline speaker diarization handle.
Definition c-api.h:3909
const SherpaOnnxOnlineStream * SherpaOnnxSpeakerEmbeddingExtractorCreateStream(const SherpaOnnxSpeakerEmbeddingExtractor *p)
Create a streaming feature buffer for embedding extraction.
const SherpaOnnxDenoisedAudio * SherpaOnnxOnlineSpeechDenoiserFlush(const SherpaOnnxOnlineSpeechDenoiser *sd)
Flush buffered samples and reset the online denoiser.
void SherpaOnnxDestroySpeechSegment(const SherpaOnnxSpeechSegment *p)
Destroy a speech segment returned by SherpaOnnxVoiceActivityDetectorFront().
void SherpaOnnxDestroyOnlineStream(const SherpaOnnxOnlineStream *stream)
Destroy a streaming ASR state object.
void SherpaOnnxDestroyVoiceActivityDetector(const SherpaOnnxVoiceActivityDetector *p)
Destroy a voice activity detector.
const SherpaOnnxOfflineDiacritization * SherpaOnnxCreateOfflineDiacritization(const SherpaOnnxOfflineDiacritizationConfig *config)
Create an offline diacritization processor.
const SherpaOnnxOnlineStream * SherpaOnnxCreateOnlineStreamWithHotwords(const SherpaOnnxOnlineRecognizer *recognizer, const char *hotwords)
Create a streaming ASR state object with per-stream hotwords.
void SherpaOnnxVoiceActivityDetectorClear(const SherpaOnnxVoiceActivityDetector *p)
Remove all queued speech segments.
const SherpaOnnxVoiceActivityDetector * SherpaOnnxCreateVoiceActivityDetector(const SherpaOnnxVadModelConfig *config, float buffer_size_in_seconds)
Create a voice activity detector.
const SherpaOnnxSourceSeparationOutput * SherpaOnnxOfflineSourceSeparationProcess(const SherpaOnnxOfflineSourceSeparation *ss, const float *const *samples, int32_t num_channels, int32_t num_samples, int32_t sample_rate)
Run source separation on multi-channel audio.
int64_t SherpaOnnxWaveFileSize(int32_t n_samples)
Return the number of bytes needed for a mono 16-bit WAVE file.
SherpaOnnxOfflineStream * SherpaOnnxSpokenLanguageIdentificationCreateOfflineStream(const SherpaOnnxSpokenLanguageIdentification *slid)
Create an offline stream for spoken-language identification.
const char * SherpaOnnxGetGitSha1()
Return the Git SHA1 used to build the library.
const SherpaOnnxOnlineStream * SherpaOnnxCreateKeywordStream(const SherpaOnnxKeywordSpotter *spotter)
Create a keyword spotting stream using the spotter's built-in keyword list.
void SherpaOnnxDestroyOfflineDiacritization(const SherpaOnnxOfflineDiacritization *diacrt)
Destroy an offline diacritization processor.
int32_t SherpaOnnxOfflineTtsNumSpeakers(const SherpaOnnxOfflineTts *tts)
Return the number of available speaker IDs.
const SherpaOnnxOfflineSpeakerDiarizationSegment * SherpaOnnxOfflineSpeakerDiarizationResultSortByStartTime(const SherpaOnnxOfflineSpeakerDiarizationResult *r)
Return segments sorted by start time.
void SherpaOnnxOnlineStreamReset(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream *stream)
Reset a streaming ASR stream after an endpoint or utterance boundary.
void SherpaOnnxDestroySpokenLanguageIdentificationResult(const SherpaOnnxSpokenLanguageIdentificationResult *r)
Destroy a spoken-language identification result.
const SherpaOnnxOfflineSpeechDenoiser * SherpaOnnxCreateOfflineSpeechDenoiser(const SherpaOnnxOfflineSpeechDenoiserConfig *config)
Create an offline speech denoiser.
struct SherpaOnnxSpeakerEmbeddingExtractor SherpaOnnxSpeakerEmbeddingExtractor
Opaque speaker embedding extractor handle.
Definition c-api.h:3109
void SherpaOnnxDestroyOnlinePunctuation(const SherpaOnnxOnlinePunctuation *punctuation)
Destroy an online punctuation processor.
int32_t(* SherpaOnnxGeneratedAudioCallbackWithArg)(const float *samples, int32_t n, void *arg)
Same as SherpaOnnxGeneratedAudioCallback but with an extra user pointer.
Definition c-api.h:2494
struct SherpaOnnxAudioTagging SherpaOnnxAudioTagging
Opaque audio tagger handle.
Definition c-api.h:3503
int32_t SherpaOnnxOnlineStreamHasOption(const SherpaOnnxOnlineStream *stream, const char *key)
Check whether a per-stream runtime option exists.
struct SherpaOnnxDisplay SherpaOnnxDisplay
Helper for pretty-printing incremental recognition results.
Definition c-api.h:798
const SherpaOnnxAudioTagging * SherpaOnnxCreateAudioTagging(const SherpaOnnxAudioTaggingConfig *config)
Create an audio tagger.
void SherpaOnnxOnlineStreamInputFinished(const SherpaOnnxOnlineStream *stream)
Signal end-of-input for a streaming ASR stream.
void SherpaOnnxDestroyOfflinePunctuation(const SherpaOnnxOfflinePunctuation *punct)
Destroy an offline punctuation processor.
const SherpaOnnxGeneratedAudio * SherpaOnnxOfflineTtsGenerateWithProgressCallbackWithArg(const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid, float speed, SherpaOnnxGeneratedAudioProgressCallbackWithArg callback, void *arg)
Generate speech with a progress callback that receives a user pointer.
int32_t SherpaOnnxWriteWave(const float *samples, int32_t n, int32_t sample_rate, const char *filename)
Write floating-point PCM to a mono 16-bit WAVE file.
const SherpaOnnxOnlineStream * SherpaOnnxCreateOnlineStream(const SherpaOnnxOnlineRecognizer *recognizer)
Create a streaming ASR state object.
const SherpaOnnxGeneratedAudio * SherpaOnnxOfflineTtsGenerateWithCallbackWithArg(const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid, float speed, SherpaOnnxGeneratedAudioCallbackWithArg callback, void *arg)
Same as SherpaOnnxOfflineTtsGenerateWithCallback() but with a user pointer.
int32_t SherpaOnnxSpeakerEmbeddingExtractorDim(const SherpaOnnxSpeakerEmbeddingExtractor *p)
Return the embedding dimension produced by the extractor.
void SherpaOnnxResetKeywordStream(const SherpaOnnxKeywordSpotter *spotter, const SherpaOnnxOnlineStream *stream)
Reset a keyword stream after a keyword is detected.
void SherpaOnnxDecodeOnlineStream(const SherpaOnnxOnlineRecognizer *recognizer, const SherpaOnnxOnlineStream *stream)
Decode one step of a streaming ASR stream.
const SherpaOnnxKeywordResult * SherpaOnnxGetKeywordResult(const SherpaOnnxKeywordSpotter *spotter, const SherpaOnnxOnlineStream *stream)
Get the current keyword spotting result for a stream.
const char * SherpaOnnxOnlineStreamGetOption(const SherpaOnnxOnlineStream *stream, const char *key)
Get a per-stream runtime option.
void SherpaOnnxDestroyDenoisedAudio(const SherpaOnnxDenoisedAudio *p)
Destroy denoised audio returned by a speech enhancement API.
struct SherpaOnnxOfflinePunctuation SherpaOnnxOfflinePunctuation
Opaque offline punctuation handle.
Definition c-api.h:3607
const SherpaOnnxOfflineSpeakerDiarizationResult * SherpaOnnxOfflineSpeakerDiarizationProcessWithCallbackNoArg(const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples, int32_t n, SherpaOnnxOfflineSpeakerDiarizationProgressCallbackNoArg callback)
Run offline speaker diarization with a progress callback that has no user pointer.
void SherpaOnnxSpeakerEmbeddingManagerFreeBestMatches(const SherpaOnnxSpeakerEmbeddingManagerBestMatchesResult *r)
Destroy a best-matches result.
const SherpaOnnxOnlineRecognizer * SherpaOnnxCreateOnlineRecognizer(const SherpaOnnxOnlineRecognizerConfig *config)
Create a streaming ASR recognizer.
const char * SherpaOnnxGetGitDate()
Return the Git build date used to build the library.
int32_t SherpaOnnxOfflineSourceSeparationGetNumberOfStems(const SherpaOnnxOfflineSourceSeparation *ss)
Return the number of stems produced by the engine.
struct SherpaOnnxVoiceActivityDetector SherpaOnnxVoiceActivityDetector
Opaque voice activity detector handle.
Definition c-api.h:2092
struct SherpaOnnxOfflineDiacritization SherpaOnnxOfflineDiacritization
Opaque offline diacritization handle.
Definition c-api.h:4668
int32_t SherpaOnnxLinearResamplerResampleGetInputSampleRate(const SherpaOnnxLinearResampler *p)
Return the resampler input sample rate.
const SherpaOnnxCircularBuffer * SherpaOnnxCreateCircularBuffer(int32_t capacity)
Create a floating-point circular buffer.
int32_t(* SherpaOnnxGeneratedAudioProgressCallbackWithArg)(const float *samples, int32_t n, float p, void *arg)
Same as SherpaOnnxGeneratedAudioProgressCallback but with an extra user pointer.
Definition c-api.h:2513
const char * SherpaOnnxGetVersionStr()
Return the sherpa-onnx version string.
int32_t SherpaOnnxWriteWaveMultiChannel(const float *const *samples, int32_t n, int32_t sample_rate, int32_t num_channels, const char *filename)
Write multi-channel audio to a WAVE file (16-bit PCM).
const SherpaOnnxOfflinePunctuation * SherpaOnnxCreateOfflinePunctuation(const SherpaOnnxOfflinePunctuationConfig *config)
Create an offline punctuation processor.
int32_t SherpaOnnxSpeakerEmbeddingManagerAddListFlattened(const SherpaOnnxSpeakerEmbeddingManager *p, const char *name, const float *v, int32_t n)
Add multiple enrollment embeddings packed in one flat array.
void SherpaOnnxPrint(const SherpaOnnxDisplay *display, int32_t idx, const char *s)
Print one line of text using the display helper.
void SherpaOnnxDestroyOfflineTts(const SherpaOnnxOfflineTts *tts)
Destroy an offline TTS engine.
const char * SherpaOfflineDiacritizationAddDiacritics(const SherpaOnnxOfflineDiacritization *diacrt, const char *text)
Add diacritics to a complete input text.
One audio-tagging prediction.
Definition c-api.h:3493
const char * name
Definition c-api.h:3495
Configuration for audio tagging.
Definition c-api.h:3480
SherpaOnnxAudioTaggingModelConfig model
Definition c-api.h:3482
Audio-tagging model configuration.
Definition c-api.h:3451
SherpaOnnxOfflineZipformerAudioTaggingModelConfig zipformer
Definition c-api.h:3453
Denoised audio returned by offline or online speech enhancement APIs.
Definition c-api.h:4190
const float * samples
Definition c-api.h:4192
Fast clustering configuration.
Definition c-api.h:3872
Feature extraction settings for ASR.
Definition c-api.h:287
Generated waveform returned by TTS APIs.
Definition c-api.h:2470
const float * samples
Definition c-api.h:2472
Generation-time parameters shared by advanced TTS APIs.
Definition c-api.h:2727
const char * reference_text
Definition c-api.h:2741
const float * reference_audio
Definition c-api.h:2735
Configuration for homophone replacement.
Definition c-api.h:304
Snapshot of the current keyword spotting result.
Definition c-api.h:1608
const char * keyword
Definition c-api.h:1615
const char * json
Definition c-api.h:1650
const char *const * tokens_arr
Definition c-api.h:1629
const char * tokens
Definition c-api.h:1622
Configuration for keyword spotting.
Definition c-api.h:1694
SherpaOnnxOnlineModelConfig model_config
Definition c-api.h:1698
SherpaOnnxFeatureConfig feat_config
Definition c-api.h:1696
Decoded multi-channel WAVE file content.
Definition c-api.h:2904
const float *const * samples
Definition c-api.h:2909
Configuration for a Canary model.
Definition c-api.h:885
Configuration for a Cohere Transcribe model.
Definition c-api.h:899
Configuration for offline diacritization.
Definition c-api.h:4662
SherpaOnnxOfflineDiacritizationModelConfig model
Definition c-api.h:4664
Offline diacritization model configuration.
Definition c-api.h:4648
Configuration for a Dolphin model.
Definition c-api.h:965
Configuration for a FireRedAsr CTC model.
Definition c-api.h:921
Configuration for a FireRedAsr encoder/decoder model.
Definition c-api.h:913
Configuration for an offline FunASR Nano model.
Definition c-api.h:989
Configuration for an offline language model.
Definition c-api.h:947
const char * model
Definition c-api.h:949
Configuration for a MedASR CTC model.
Definition c-api.h:1044
Model configuration shared by offline ASR recognizers.
Definition c-api.h:1066
SherpaOnnxOfflineQwen3ASRModelConfig qwen3_asr
Definition c-api.h:1117
SherpaOnnxOfflineParaformerModelConfig paraformer
Definition c-api.h:1070
const char * modeling_unit
Definition c-api.h:1089
SherpaOnnxOfflineDolphinModelConfig dolphin
Definition c-api.h:1101
SherpaOnnxOfflineCanaryModelConfig canary
Definition c-api.h:1105
SherpaOnnxOfflineMoonshineModelConfig moonshine
Definition c-api.h:1097
SherpaOnnxOfflineFunASRNanoModelConfig funasr_nano
Definition c-api.h:1113
const char * telespeech_ctc
Definition c-api.h:1093
SherpaOnnxOfflineFireRedAsrCtcModelConfig fire_red_asr_ctc
Definition c-api.h:1115
SherpaOnnxOfflineOmnilingualAsrCtcModelConfig omnilingual
Definition c-api.h:1109
SherpaOnnxOfflineSenseVoiceModelConfig sense_voice
Definition c-api.h:1095
SherpaOnnxOfflineWhisperModelConfig whisper
Definition c-api.h:1074
SherpaOnnxOfflineTdnnModelConfig tdnn
Definition c-api.h:1076
SherpaOnnxOfflineNemoEncDecCtcModelConfig nemo_ctc
Definition c-api.h:1072
SherpaOnnxOfflineMedAsrCtcModelConfig medasr
Definition c-api.h:1111
SherpaOnnxOfflineFireRedAsrModelConfig fire_red_asr
Definition c-api.h:1099
SherpaOnnxOfflineCohereTranscribeModelConfig cohere_transcribe
Definition c-api.h:1119
SherpaOnnxOfflineZipformerCtcModelConfig zipformer_ctc
Definition c-api.h:1103
SherpaOnnxOfflineTransducerModelConfig transducer
Definition c-api.h:1068
SherpaOnnxOfflineWenetCtcModelConfig wenet_ctc
Definition c-api.h:1107
Configuration for a Moonshine model.
Definition c-api.h:927
Configuration for a non-streaming NeMo CTC model.
Definition c-api.h:857
Configuration for an omnilingual offline CTC model.
Definition c-api.h:983
Configuration for a non-streaming Paraformer model.
Definition c-api.h:851
Configuration for offline punctuation.
Definition c-api.h:3601
SherpaOnnxOfflinePunctuationModelConfig model
Definition c-api.h:3603
Offline punctuation model configuration.
Definition c-api.h:3589
Configuration for an offline Qwen3-ASR model.
Definition c-api.h:1019
Configuration for a non-streaming ASR recognizer.
Definition c-api.h:1176
SherpaOnnxOfflineModelConfig model_config
Definition c-api.h:1180
SherpaOnnxFeatureConfig feat_config
Definition c-api.h:1178
SherpaOnnxHomophoneReplacerConfig hr
Definition c-api.h:1202
SherpaOnnxOfflineLMConfig lm_config
Definition c-api.h:1182
Recognition result for a non-streaming ASR stream.
Definition c-api.h:1470
const char *const * segment_texts_arr
Definition c-api.h:1526
const char *const * tokens_arr
Definition c-api.h:1494
Configuration for a SenseVoice model.
Definition c-api.h:955
Top-level source-separation configuration.
Definition c-api.h:4352
SherpaOnnxOfflineSourceSeparationModelConfig model
Definition c-api.h:4353
Source-separation model configuration.
Definition c-api.h:4343
SherpaOnnxOfflineSourceSeparationUvrModelConfig uvr
Definition c-api.h:4345
SherpaOnnxOfflineSourceSeparationSpleeterModelConfig spleeter
Definition c-api.h:4344
Spleeter source-separation model configuration.
Definition c-api.h:4329
UVR (MDX-Net) source-separation model configuration.
Definition c-api.h:4337
Configuration for offline speaker diarization.
Definition c-api.h:3895
SherpaOnnxFastClusteringConfig clustering
Definition c-api.h:3901
SherpaOnnxSpeakerEmbeddingExtractorConfig embedding
Definition c-api.h:3899
SherpaOnnxOfflineSpeakerSegmentationModelConfig segmentation
Definition c-api.h:3897
Segmentation model configuration for offline speaker diarization.
Definition c-api.h:3854
SherpaOnnxOfflineSpeakerSegmentationPyannoteModelConfig pyannote
Definition c-api.h:3856
Pyannote speaker-segmentation model configuration.
Definition c-api.h:3836
Configuration for offline speech denoising.
Definition c-api.h:4139
SherpaOnnxOfflineSpeechDenoiserModelConfig model
Definition c-api.h:4141
DPDFNet offline denoiser model configuration.
Definition c-api.h:4105
GTCRN offline denoiser model configuration.
Definition c-api.h:4099
Speech denoiser model configuration shared by offline and online APIs.
Definition c-api.h:4125
SherpaOnnxOfflineSpeechDenoiserGtcrnModelConfig gtcrn
Definition c-api.h:4127
SherpaOnnxOfflineSpeechDenoiserDpdfNetModelConfig dpdfnet
Definition c-api.h:4135
Configuration for a TDNN model.
Definition c-api.h:941
Configuration for a non-streaming transducer model.
Definition c-api.h:841
Configuration for offline text-to-speech.
Definition c-api.h:2450
const char * rule_fars
Definition c-api.h:2458
SherpaOnnxOfflineTtsModelConfig model
Definition c-api.h:2452
const char * rule_fsts
Definition c-api.h:2454
Configuration for a Kitten TTS model.
Definition c-api.h:2317
Configuration for a Kokoro TTS model.
Definition c-api.h:2297
Configuration for a Matcha TTS model.
Definition c-api.h:2277
Configuration shared by offline TTS models.
Definition c-api.h:2409
SherpaOnnxOfflineTtsVitsModelConfig vits
Definition c-api.h:2411
SherpaOnnxOfflineTtsKokoroModelConfig kokoro
Definition c-api.h:2421
SherpaOnnxOfflineTtsSupertonicModelConfig supertonic
Definition c-api.h:2429
SherpaOnnxOfflineTtsKittenModelConfig kitten
Definition c-api.h:2423
SherpaOnnxOfflineTtsPocketModelConfig pocket
Definition c-api.h:2427
SherpaOnnxOfflineTtsMatchaModelConfig matcha
Definition c-api.h:2419
SherpaOnnxOfflineTtsZipvoiceModelConfig zipvoice
Definition c-api.h:2425
Configuration for a Pocket TTS model.
Definition c-api.h:2355
Configuration for a Supertonic TTS model.
Definition c-api.h:2375
Configuration for a VITS TTS model.
Definition c-api.h:2257
Configuration for a ZipVoice TTS model.
Definition c-api.h:2331
Configuration for an offline WeNet CTC model.
Definition c-api.h:977
Configuration for a non-streaming Whisper model.
Definition c-api.h:865
Zipformer audio-tagging model configuration.
Definition c-api.h:3428
Configuration for an offline Zipformer CTC model.
Definition c-api.h:971
Configuration for HLG/FST-based online CTC decoding.
Definition c-api.h:296
Model configuration shared by streaming ASR recognizers.
Definition c-api.h:242
const char * model_type
Definition c-api.h:258
SherpaOnnxOnlineZipformer2CtcModelConfig zipformer2_ctc
Definition c-api.h:248
const char * modeling_unit
Definition c-api.h:267
SherpaOnnxOnlineNemoCtcModelConfig nemo_ctc
Definition c-api.h:276
const char * provider
Definition c-api.h:254
SherpaOnnxOnlineToneCtcModelConfig t_one_ctc
Definition c-api.h:278
const char * bpe_vocab
Definition c-api.h:269
const char * tokens_buf
Definition c-api.h:272
SherpaOnnxOnlineTransducerModelConfig transducer
Definition c-api.h:244
SherpaOnnxOnlineParaformerModelConfig paraformer
Definition c-api.h:246
Configuration for a streaming NeMo CTC model.
Definition c-api.h:216
Configuration for a streaming Paraformer model.
Definition c-api.h:200
Configuration for online punctuation.
Definition c-api.h:3678
SherpaOnnxOnlinePunctuationModelConfig model
Definition c-api.h:3680
Online punctuation model configuration.
Definition c-api.h:3664
Configuration for a streaming ASR recognizer.
Definition c-api.h:348
SherpaOnnxOnlineCtcFstDecoderConfig ctc_fst_decoder_config
Definition c-api.h:379
SherpaOnnxOnlineModelConfig model_config
Definition c-api.h:352
SherpaOnnxHomophoneReplacerConfig hr
Definition c-api.h:392
SherpaOnnxFeatureConfig feat_config
Definition c-api.h:350
Incremental recognition result for a streaming ASR stream.
Definition c-api.h:403
const char *const * tokens_arr
Definition c-api.h:415
Configuration for streaming speech denoising.
Definition c-api.h:4237
SherpaOnnxOfflineSpeechDenoiserModelConfig model
Definition c-api.h:4239
Configuration for a streaming T-One CTC model.
Definition c-api.h:222
Configuration for a streaming transducer model.
Definition c-api.h:184
Configuration for a streaming Zipformer2 CTC model.
Definition c-api.h:210
Output chunk returned by SherpaOnnxLinearResamplerResample().
Definition c-api.h:3783
const float * samples
Definition c-api.h:3785
Configuration for a Silero VAD model.
Definition c-api.h:1884
Output of a source-separation run.
Definition c-api.h:4412
const SherpaOnnxSourceSeparationStem * stems
Definition c-api.h:4414
A single stem (one output track) with one or more channels.
Definition c-api.h:4402
Configuration for speaker embedding extraction.
Definition c-api.h:3097
Collection of best speaker matches.
Definition c-api.h:3337
const SherpaOnnxSpeakerEmbeddingManagerSpeakerMatch * matches
Definition c-api.h:3339
One speaker match returned by the best-matches API.
Definition c-api.h:3325
One detected speech segment returned by the VAD.
Definition c-api.h:2082
Configuration for spoken language identification.
Definition c-api.h:2977
SherpaOnnxSpokenLanguageIdentificationWhisperConfig whisper
Definition c-api.h:2979
Result of spoken-language identification.
Definition c-api.h:3034
Whisper-based model files for spoken language identification.
Definition c-api.h:2952
Configuration for a Ten VAD model.
Definition c-api.h:1905
Configuration shared by voice activity detectors.
Definition c-api.h:1957
SherpaOnnxSileroVadModelConfig silero_vad
Definition c-api.h:1959
SherpaOnnxTenVadModelConfig ten_vad
Definition c-api.h:1969
const char * provider
Definition c-api.h:1965
Decoded mono WAVE file content.
Definition c-api.h:2853
int32_t num_samples
Definition c-api.h:2859
const float * samples
Definition c-api.h:2855
int32_t sample_rate
Definition c-api.h:2857