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
310
320
402
413 const char *text;
414
420 const char *tokens;
421
423 const char *const *tokens_arr;
424
433
435 int32_t count;
436
438 const char *json;
440
445
485
498 const SherpaOnnxOnlineRecognizer *recognizer);
499
519 const SherpaOnnxOnlineRecognizer *recognizer);
520
537 const SherpaOnnxOnlineRecognizer *recognizer, const char *hotwords);
538
552 const SherpaOnnxOnlineStream *stream);
553
575 const SherpaOnnxOnlineStream *stream, int32_t sample_rate,
576 const float *samples, int32_t n);
577
591SHERPA_ONNX_API int32_t
593 const SherpaOnnxOnlineStream *stream);
594
612 const SherpaOnnxOnlineRecognizer *recognizer,
613 const SherpaOnnxOnlineStream *stream);
614
631 const SherpaOnnxOnlineRecognizer *recognizer,
632 const SherpaOnnxOnlineStream **streams, int32_t n);
633
656 const SherpaOnnxOnlineStream *stream);
657
671
688 const SherpaOnnxOnlineRecognizer *recognizer,
689 const SherpaOnnxOnlineStream *stream);
690
703
720 const SherpaOnnxOnlineRecognizer *recognizer,
721 const SherpaOnnxOnlineStream *stream);
722
735 const SherpaOnnxOnlineStream *stream);
736
752 const SherpaOnnxOnlineStream *stream, const char *key, const char *value);
753
768 const SherpaOnnxOnlineStream *stream, const char *key);
769
782 const SherpaOnnxOnlineStream *stream, const char *key);
783
797SHERPA_ONNX_API int32_t
799 const SherpaOnnxOnlineStream *stream);
800
807
820 int32_t max_word_per_line);
821
828
841 int32_t idx, const char *s);
842// ============================================================
843// For offline ASR (i.e., non-streaming ASR)
844// ============================================================
845
857
863
869
891
905
919
927
933
947
953
961
971
977
983
989
995
999 const char *encoder_adaptor;
1001 const char *llm;
1003 const char *embedding;
1005 const char *tokenizer;
1007 const char *system_prompt;
1009 const char *user_prompt;
1015 float top_p;
1017 int32_t seed;
1019 const char *language;
1021 int32_t itn;
1023 const char *hotwords;
1025
1050
1056
1129
1215
1218
1221
1281 const SherpaOnnxOfflineRecognizerConfig *config);
1282
1294 const SherpaOnnxOfflineRecognizer *recognizer,
1295 const SherpaOnnxOfflineRecognizerConfig *config);
1296
1309 const SherpaOnnxOfflineRecognizer *recognizer);
1310
1327 const SherpaOnnxOfflineRecognizer *recognizer);
1328
1345 const SherpaOnnxOfflineRecognizer *recognizer, const char *hotwords);
1346
1360 const SherpaOnnxOfflineStream *stream);
1361
1389 const SherpaOnnxOfflineStream *stream, int32_t sample_rate,
1390 const float *samples, int32_t n);
1391
1404 const SherpaOnnxOfflineStream *stream, const char *key, const char *value);
1405
1420 const SherpaOnnxOfflineStream *stream, const char *key);
1421
1435 const SherpaOnnxOfflineStream *stream, const char *key);
1436
1451 const SherpaOnnxOfflineRecognizer *recognizer,
1452 const SherpaOnnxOfflineStream *stream);
1453
1470 const SherpaOnnxOfflineRecognizer *recognizer,
1471 const SherpaOnnxOfflineStream **streams, int32_t n);
1472
1483 const char *text;
1484
1493
1495 int32_t count;
1496
1502 const char *tokens;
1503
1505 const char *const *tokens_arr;
1506
1508 const char *json;
1509
1511 const char *lang;
1512
1514 const char *emotion;
1515
1517 const char *event;
1518
1521
1524
1528
1531 const float *segment_durations;
1532
1534 const char *segment_texts;
1535
1537 const char *const *segment_texts_arr;
1538
1542
1566
1580
1595 const SherpaOnnxOfflineStream *stream);
1596
1609
1610// ============================================================
1611// For keyword spotting
1612// ============================================================
1626 const char *keyword;
1627
1633 const char *tokens;
1634
1640 const char *const *tokens_arr;
1641
1643 int32_t count;
1644
1652
1655
1661 const char *json;
1663
1726
1729
1739 const SherpaOnnxKeywordSpotterConfig *config);
1740
1748 const SherpaOnnxKeywordSpotter *spotter);
1749
1759 const SherpaOnnxKeywordSpotter *spotter);
1760
1780 const SherpaOnnxKeywordSpotter *spotter, const char *keywords);
1781
1790SHERPA_ONNX_API int32_t
1792 const SherpaOnnxOnlineStream *stream);
1793
1804 const SherpaOnnxKeywordSpotter *spotter,
1805 const SherpaOnnxOnlineStream *stream);
1806
1818 const SherpaOnnxKeywordSpotter *spotter,
1819 const SherpaOnnxOnlineStream *stream);
1820
1832 const SherpaOnnxKeywordSpotter *spotter,
1833 const SherpaOnnxOnlineStream **streams, int32_t n);
1834
1858 const SherpaOnnxKeywordSpotter *spotter,
1859 const SherpaOnnxOnlineStream *stream);
1860
1868 const SherpaOnnxKeywordResult *r);
1869
1880 const SherpaOnnxKeywordSpotter *spotter,
1881 const SherpaOnnxOnlineStream *stream);
1882
1889
1890// ============================================================
1891// For VAD
1892// ============================================================
1893
1914
1935
1982
1985
1999 int32_t capacity);
2000
2012 const SherpaOnnxCircularBuffer *buffer);
2013
2026 const SherpaOnnxCircularBuffer *buffer, const float *p, int32_t n);
2027
2043 const SherpaOnnxCircularBuffer *buffer, int32_t start_index, int32_t n);
2044
2047
2055 const SherpaOnnxCircularBuffer *buffer, int32_t n);
2056
2063SHERPA_ONNX_API int32_t
2065
2075SHERPA_ONNX_API int32_t
2077
2084 const SherpaOnnxCircularBuffer *buffer);
2085
2101
2104
2134 float buffer_size_in_seconds);
2135
2144
2161 const SherpaOnnxVoiceActivityDetector *p, const float *samples, int32_t n);
2162
2169SHERPA_ONNX_API int32_t
2171
2180
2199
2207
2230
2239 const SherpaOnnxSpeechSegment *p);
2240
2248
2262
2263// ============================================================
2264// For offline Text-to-Speech (i.e., non-streaming TTS)
2265// ============================================================
2266
2286
2306
2310 const char *model;
2312 const char *voices;
2314 const char *tokens;
2316 const char *data_dir;
2320 const char *dict_dir;
2322 const char *lexicon;
2324 const char *lang;
2326
2340
2364
2384
2402
2442
2473
2489
2498typedef int32_t (*SherpaOnnxGeneratedAudioCallback)(const float *samples,
2499 int32_t n);
2500
2505typedef int32_t (*SherpaOnnxGeneratedAudioCallbackWithArg)(const float *samples,
2506 int32_t n,
2507 void *arg);
2508
2518 const float *samples, int32_t n, float p);
2519
2525 const float *samples, int32_t n, float p, void *arg);
2526
2529
2551 const SherpaOnnxOfflineTtsConfig *config);
2552
2560 const SherpaOnnxOfflineTts *tts);
2561
2568SHERPA_ONNX_API int32_t
2570
2579SHERPA_ONNX_API int32_t
2581
2603SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2604 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2606 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2607 float speed);
2608
2626SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2627 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2629 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2630 float speed, SherpaOnnxGeneratedAudioCallback callback);
2631
2656SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2657 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2659 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2660 float speed, SherpaOnnxGeneratedAudioProgressCallback callback);
2661
2676SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2677 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2680 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2681 float speed,
2683 void *arg);
2684
2700SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2701 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2703 const SherpaOnnxOfflineTts *tts, const char *text, int32_t sid,
2704 float speed, SherpaOnnxGeneratedAudioCallbackWithArg callback,
2705 void *arg);
2706
2712SHERPA_ONNX_API SHERPA_ONNX_DEPRECATED(
2713 "Use SherpaOnnxOfflineTtsGenerateWithConfig() instead") const
2715 const SherpaOnnxOfflineTts *tts, const char *text,
2716 const char *prompt_text, const float *prompt_samples, int32_t n_prompt,
2717 int32_t prompt_sr, float speed, int32_t num_steps);
2718
2758
2789 const SherpaOnnxOfflineTts *tts, const char *text,
2790 const SherpaOnnxGenerationConfig *config,
2792
2801 const SherpaOnnxGeneratedAudio *p);
2802
2818SHERPA_ONNX_API int32_t SherpaOnnxWriteWave(const float *samples, int32_t n,
2819 int32_t sample_rate,
2820 const char *filename);
2821
2828SHERPA_ONNX_API int64_t SherpaOnnxWaveFileSize(int32_t n_samples);
2829
2841 int32_t n, int32_t sample_rate,
2842 char *buffer);
2843
2855 const float *const *samples, int32_t n, int32_t sample_rate,
2856 int32_t num_channels, const char *filename);
2857
2864typedef struct SherpaOnnxWave {
2866 const float *samples;
2872
2891
2901 const char *data, int32_t n);
2902
2909
2928
2938
2945 const SherpaOnnxMultiChannelWave *wave);
2946
2947// ============================================================
2948// For spoken language identification
2949// ============================================================
2950
2971
2998
3002
3014
3024
3039
3051
3079 const SherpaOnnxOfflineStream *s);
3080
3089
3090// ============================================================
3091// For speaker embedding extraction
3092// ============================================================
3118
3122
3134
3143
3152
3167
3178 const SherpaOnnxOnlineStream *s);
3179
3205SHERPA_ONNX_API const float *
3208 const SherpaOnnxOnlineStream *s);
3209
3218 const float *v);
3219
3227
3242
3251
3260SHERPA_ONNX_API int32_t
3262 const char *name, const float *v);
3263
3281 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name,
3282 const float **v);
3283
3297 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name,
3298 const float *v, int32_t n);
3299
3308 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name);
3309
3321 const SherpaOnnxSpeakerEmbeddingManager *p, const float *v,
3322 float threshold);
3323
3331 const char *name);
3332
3342
3354
3367 const SherpaOnnxSpeakerEmbeddingManager *p, const float *v, float threshold,
3368 int32_t n);
3369
3378
3389 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name,
3390 const float *v, float threshold);
3391
3400 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name);
3401
3410
3419
3430SHERPA_ONNX_API const char *const *
3433
3442 const char *const *names);
3443
3456 const SherpaOnnxSpeakerEmbeddingManager *p, const char *name);
3457
3466 const float *v);
3467
3468// ============================================================
3469// For audio tagging
3470// ============================================================
3476
3507
3533
3537typedef struct SherpaOnnxAudioEvent {
3539 const char *name;
3541 int32_t index;
3543 float prob;
3545
3548
3558 const SherpaOnnxAudioTaggingConfig *config);
3559
3567 const SherpaOnnxAudioTagging *tagger);
3568
3578
3605 const SherpaOnnxOfflineStream *s, int32_t top_k);
3606
3613 const SherpaOnnxAudioEvent *const *p);
3614
3615// ============================================================
3616// For punctuation
3617// ============================================================
3618
3643
3649
3652
3664
3672 const SherpaOnnxOfflinePunctuation *punct);
3673
3684 const SherpaOnnxOfflinePunctuation *punct, const char *text);
3685
3693
3720
3726
3729
3739 const SherpaOnnxOnlinePunctuationConfig *config);
3740
3747 const SherpaOnnxOnlinePunctuation *punctuation);
3748
3766 const SherpaOnnxOnlinePunctuation *punctuation, const char *text);
3767
3774
3775// For resampling
3778
3802SherpaOnnxCreateLinearResampler(int32_t samp_rate_in_hz,
3803 int32_t samp_rate_out_hz,
3804 float filter_cutoff_hz, int32_t num_zeros);
3805
3812 const SherpaOnnxLinearResampler *p);
3813
3820 const SherpaOnnxLinearResampler *p);
3821
3833
3847 const SherpaOnnxLinearResampler *p, const float *input, int32_t input_dim,
3848 int32_t flush);
3849
3856 const SherpaOnnxResampleOut *p);
3857
3865 const SherpaOnnxLinearResampler *p);
3866
3874 const SherpaOnnxLinearResampler *p);
3875
3876// =========================================================================
3877// For offline speaker diarization (i.e., non-streaming speaker diarization)
3878// =========================================================================
3891
3908
3925
3953
3957
3969
3978
3987
3999
4003
4021
4031
4041
4056
4066
4074 int32_t num_processed_chunks, int32_t num_total_chunks, void *arg);
4075
4081 int32_t num_processed_chunks, int32_t num_total_chunks);
4082
4094 const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples,
4095 int32_t n);
4096
4117 const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples,
4119 void *arg);
4120
4134 const SherpaOnnxOfflineSpeakerDiarization *sd, const float *samples,
4135 int32_t n,
4137
4146
4147// =========================================================================
4148// For offline speech enhancement
4149// =========================================================================
4155
4170
4189
4195
4198
4218
4227
4236
4250
4272 const float *samples, int32_t n,
4273 int32_t sample_rate);
4274
4283 const SherpaOnnxDenoisedAudio *p);
4284
4285// =========================================================================
4286// For streaming speech enhancement
4287// =========================================================================
4293
4296
4308
4317
4326
4337
4353 const float *samples, int32_t n,
4354 int32_t sample_rate);
4355
4367
4375
4376// =========================================================================
4377// Source separation
4378// =========================================================================
4379
4387
4393
4402
4407
4411
4423
4432
4441
4452
4462
4472
4491 const SherpaOnnxOfflineSourceSeparation *ss, const float *const *samples,
4492 int32_t num_channels, int32_t num_samples, int32_t sample_rate);
4493
4501
4502#ifdef __OHOS__
4503
4510typedef struct NativeResourceManager NativeResourceManager;
4511
4523SherpaOnnxCreateOfflineSpeechDenoiserOHOS(
4525 NativeResourceManager *mgr);
4526
4538SherpaOnnxCreateOnlineSpeechDenoiserOHOS(
4540 NativeResourceManager *mgr);
4541
4553SherpaOnnxCreateOnlineRecognizerOHOS(
4554 const SherpaOnnxOnlineRecognizerConfig *config, NativeResourceManager *mgr);
4555
4567SherpaOnnxCreateOfflineRecognizerOHOS(
4569 NativeResourceManager *mgr);
4570
4583SherpaOnnxCreateVoiceActivityDetectorOHOS(
4584 const SherpaOnnxVadModelConfig *config, float buffer_size_in_seconds,
4585 NativeResourceManager *mgr);
4586
4597SHERPA_ONNX_API const SherpaOnnxOfflineTts *SherpaOnnxCreateOfflineTtsOHOS(
4598 const SherpaOnnxOfflineTtsConfig *config, NativeResourceManager *mgr);
4599
4611SherpaOnnxCreateOfflinePunctuationOHOS(
4613 NativeResourceManager *mgr);
4614
4626SherpaOnnxCreateOnlinePunctuationOHOS(
4628 NativeResourceManager *mgr);
4629
4642SherpaOnnxCreateSpeakerEmbeddingExtractorOHOS(
4644 NativeResourceManager *mgr);
4645
4657SherpaOnnxCreateKeywordSpotterOHOS(const SherpaOnnxKeywordSpotterConfig *config,
4658 NativeResourceManager *mgr);
4659
4672SherpaOnnxCreateOfflineSpeakerDiarizationOHOS(
4674 NativeResourceManager *mgr);
4675
4688SherpaOnnxCreateOfflineSourceSeparationOHOS(
4690 NativeResourceManager *mgr);
4691#endif
4692
4693// ============================================================
4694// For diacritization
4695// ============================================================
4696
4712
4718
4721
4732
4739 const SherpaOnnxOfflineDiacritization *diacrt);
4740
4750 const SherpaOnnxOfflineDiacritization *diacrt, const char *text);
4751
4758
4759#if defined(__GNUC__)
4760#pragma GCC diagnostic pop
4761#endif
4762
4763#ifdef __cplusplus
4764} /* extern "C" */
4765#endif
4766
4767#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:3000
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:2498
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:4197
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:4080
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:4073
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:1220
#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:4295
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:444
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:2517
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:1217
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:3225
struct SherpaOnnxKeywordSpotter SherpaOnnxKeywordSpotter
Opaque keyword spotter handle.
Definition c-api.h:1728
const float * SherpaOnnxSpeakerEmbeddingManagerGetEmbedding(const SherpaOnnxSpeakerEmbeddingManager *p, const char *name)
Return a copy of the embedding of a speaker.
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:3728
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:442
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:1984
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:2528
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:4001
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:3777
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:4409
struct SherpaOnnxOfflineSpeakerDiarization SherpaOnnxOfflineSpeakerDiarization
Opaque offline speaker diarization handle.
Definition c-api.h:3955
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.
int32_t SherpaOnnxSpeakerEmbeddingManagerDim(const SherpaOnnxSpeakerEmbeddingManager *p)
Return the embedding dimension.
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:3120
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:2505
struct SherpaOnnxAudioTagging SherpaOnnxAudioTagging
Opaque audio tagger handle.
Definition c-api.h:3547
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:806
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:3651
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:2103
struct SherpaOnnxOfflineDiacritization SherpaOnnxOfflineDiacritization
Opaque offline diacritization handle.
Definition c-api.h:4720
void SherpaOnnxSpeakerEmbeddingManagerDestroyEmbedding(const float *v)
Free an embedding returned by SherpaOnnxSpeakerEmbeddingManagerGetEmbedding().
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:2524
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:3537
const char * name
Definition c-api.h:3539
Configuration for audio tagging.
Definition c-api.h:3524
SherpaOnnxAudioTaggingModelConfig model
Definition c-api.h:3526
Audio-tagging model configuration.
Definition c-api.h:3495
SherpaOnnxOfflineZipformerAudioTaggingModelConfig zipformer
Definition c-api.h:3497
Denoised audio returned by offline or online speech enhancement APIs.
Definition c-api.h:4242
const float * samples
Definition c-api.h:4244
Fast clustering configuration.
Definition c-api.h:3916
Feature extraction settings for ASR.
Definition c-api.h:287
Generated waveform returned by TTS APIs.
Definition c-api.h:2481
const float * samples
Definition c-api.h:2483
Generation-time parameters shared by advanced TTS APIs.
Definition c-api.h:2738
const char * reference_text
Definition c-api.h:2752
const float * reference_audio
Definition c-api.h:2746
Configuration for homophone replacement.
Definition c-api.h:312
Snapshot of the current keyword spotting result.
Definition c-api.h:1619
const char * keyword
Definition c-api.h:1626
const char * json
Definition c-api.h:1661
const char *const * tokens_arr
Definition c-api.h:1640
const char * tokens
Definition c-api.h:1633
Configuration for keyword spotting.
Definition c-api.h:1705
SherpaOnnxOnlineModelConfig model_config
Definition c-api.h:1709
SherpaOnnxFeatureConfig feat_config
Definition c-api.h:1707
Decoded multi-channel WAVE file content.
Definition c-api.h:2915
const float *const * samples
Definition c-api.h:2920
Configuration for a Canary model.
Definition c-api.h:893
Configuration for a Cohere Transcribe model.
Definition c-api.h:907
Configuration for HLG/FST-based offline CTC decoding.
Definition c-api.h:304
Configuration for offline diacritization.
Definition c-api.h:4714
SherpaOnnxOfflineDiacritizationModelConfig model
Definition c-api.h:4716
Offline diacritization model configuration.
Definition c-api.h:4700
Configuration for a Dolphin model.
Definition c-api.h:973
Configuration for a FireRedAsr CTC model.
Definition c-api.h:929
Configuration for a FireRedAsr encoder/decoder model.
Definition c-api.h:921
Configuration for an offline FunASR Nano model.
Definition c-api.h:997
Configuration for an offline language model.
Definition c-api.h:955
const char * model
Definition c-api.h:957
Configuration for a MedASR CTC model.
Definition c-api.h:1052
Model configuration shared by offline ASR recognizers.
Definition c-api.h:1074
SherpaOnnxOfflineQwen3ASRModelConfig qwen3_asr
Definition c-api.h:1125
SherpaOnnxOfflineParaformerModelConfig paraformer
Definition c-api.h:1078
const char * modeling_unit
Definition c-api.h:1097
SherpaOnnxOfflineDolphinModelConfig dolphin
Definition c-api.h:1109
SherpaOnnxOfflineCanaryModelConfig canary
Definition c-api.h:1113
SherpaOnnxOfflineMoonshineModelConfig moonshine
Definition c-api.h:1105
SherpaOnnxOfflineFunASRNanoModelConfig funasr_nano
Definition c-api.h:1121
const char * telespeech_ctc
Definition c-api.h:1101
SherpaOnnxOfflineFireRedAsrCtcModelConfig fire_red_asr_ctc
Definition c-api.h:1123
SherpaOnnxOfflineOmnilingualAsrCtcModelConfig omnilingual
Definition c-api.h:1117
SherpaOnnxOfflineSenseVoiceModelConfig sense_voice
Definition c-api.h:1103
SherpaOnnxOfflineWhisperModelConfig whisper
Definition c-api.h:1082
SherpaOnnxOfflineTdnnModelConfig tdnn
Definition c-api.h:1084
SherpaOnnxOfflineNemoEncDecCtcModelConfig nemo_ctc
Definition c-api.h:1080
SherpaOnnxOfflineMedAsrCtcModelConfig medasr
Definition c-api.h:1119
SherpaOnnxOfflineFireRedAsrModelConfig fire_red_asr
Definition c-api.h:1107
SherpaOnnxOfflineCohereTranscribeModelConfig cohere_transcribe
Definition c-api.h:1127
SherpaOnnxOfflineZipformerCtcModelConfig zipformer_ctc
Definition c-api.h:1111
SherpaOnnxOfflineTransducerModelConfig transducer
Definition c-api.h:1076
SherpaOnnxOfflineWenetCtcModelConfig wenet_ctc
Definition c-api.h:1115
Configuration for a Moonshine model.
Definition c-api.h:935
Configuration for a non-streaming NeMo CTC model.
Definition c-api.h:865
Configuration for an omnilingual offline CTC model.
Definition c-api.h:991
Configuration for a non-streaming Paraformer model.
Definition c-api.h:859
Configuration for offline punctuation.
Definition c-api.h:3645
SherpaOnnxOfflinePunctuationModelConfig model
Definition c-api.h:3647
Offline punctuation model configuration.
Definition c-api.h:3633
Configuration for an offline Qwen3-ASR model.
Definition c-api.h:1027
Configuration for a non-streaming ASR recognizer.
Definition c-api.h:1184
SherpaOnnxOfflineModelConfig model_config
Definition c-api.h:1188
SherpaOnnxFeatureConfig feat_config
Definition c-api.h:1186
SherpaOnnxHomophoneReplacerConfig hr
Definition c-api.h:1210
SherpaOnnxOfflineLMConfig lm_config
Definition c-api.h:1190
SherpaOnnxOfflineCtcFstDecoderConfig ctc_fst_decoder_config
Definition c-api.h:1213
Recognition result for a non-streaming ASR stream.
Definition c-api.h:1481
const char *const * segment_texts_arr
Definition c-api.h:1537
const char *const * tokens_arr
Definition c-api.h:1505
Configuration for a SenseVoice model.
Definition c-api.h:963
Top-level source-separation configuration.
Definition c-api.h:4404
SherpaOnnxOfflineSourceSeparationModelConfig model
Definition c-api.h:4405
Source-separation model configuration.
Definition c-api.h:4395
SherpaOnnxOfflineSourceSeparationUvrModelConfig uvr
Definition c-api.h:4397
SherpaOnnxOfflineSourceSeparationSpleeterModelConfig spleeter
Definition c-api.h:4396
Spleeter source-separation model configuration.
Definition c-api.h:4381
UVR (MDX-Net) source-separation model configuration.
Definition c-api.h:4389
Configuration for offline speaker diarization.
Definition c-api.h:3941
SherpaOnnxFastClusteringConfig clustering
Definition c-api.h:3947
SherpaOnnxSpeakerEmbeddingExtractorConfig embedding
Definition c-api.h:3945
SherpaOnnxOfflineSpeakerSegmentationModelConfig segmentation
Definition c-api.h:3943
Segmentation model configuration for offline speaker diarization.
Definition c-api.h:3898
SherpaOnnxOfflineSpeakerSegmentationPyannoteModelConfig pyannote
Definition c-api.h:3900
Pyannote speaker-segmentation model configuration.
Definition c-api.h:3880
Configuration for offline speech denoising.
Definition c-api.h:4191
SherpaOnnxOfflineSpeechDenoiserModelConfig model
Definition c-api.h:4193
DPDFNet offline denoiser model configuration.
Definition c-api.h:4157
GTCRN offline denoiser model configuration.
Definition c-api.h:4151
Speech denoiser model configuration shared by offline and online APIs.
Definition c-api.h:4177
SherpaOnnxOfflineSpeechDenoiserGtcrnModelConfig gtcrn
Definition c-api.h:4179
SherpaOnnxOfflineSpeechDenoiserDpdfNetModelConfig dpdfnet
Definition c-api.h:4187
Configuration for a TDNN model.
Definition c-api.h:949
Configuration for a non-streaming transducer model.
Definition c-api.h:849
Configuration for offline text-to-speech.
Definition c-api.h:2461
const char * rule_fars
Definition c-api.h:2469
SherpaOnnxOfflineTtsModelConfig model
Definition c-api.h:2463
const char * rule_fsts
Definition c-api.h:2465
Configuration for a Kitten TTS model.
Definition c-api.h:2328
Configuration for a Kokoro TTS model.
Definition c-api.h:2308
Configuration for a Matcha TTS model.
Definition c-api.h:2288
Configuration shared by offline TTS models.
Definition c-api.h:2420
SherpaOnnxOfflineTtsVitsModelConfig vits
Definition c-api.h:2422
SherpaOnnxOfflineTtsKokoroModelConfig kokoro
Definition c-api.h:2432
SherpaOnnxOfflineTtsSupertonicModelConfig supertonic
Definition c-api.h:2440
SherpaOnnxOfflineTtsKittenModelConfig kitten
Definition c-api.h:2434
SherpaOnnxOfflineTtsPocketModelConfig pocket
Definition c-api.h:2438
SherpaOnnxOfflineTtsMatchaModelConfig matcha
Definition c-api.h:2430
SherpaOnnxOfflineTtsZipvoiceModelConfig zipvoice
Definition c-api.h:2436
Configuration for a Pocket TTS model.
Definition c-api.h:2366
Configuration for a Supertonic TTS model.
Definition c-api.h:2386
Configuration for a VITS TTS model.
Definition c-api.h:2268
Configuration for a ZipVoice TTS model.
Definition c-api.h:2342
Configuration for an offline WeNet CTC model.
Definition c-api.h:985
Configuration for a non-streaming Whisper model.
Definition c-api.h:873
Zipformer audio-tagging model configuration.
Definition c-api.h:3472
Configuration for an offline Zipformer CTC model.
Definition c-api.h:979
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:3722
SherpaOnnxOnlinePunctuationModelConfig model
Definition c-api.h:3724
Online punctuation model configuration.
Definition c-api.h:3708
Configuration for a streaming ASR recognizer.
Definition c-api.h:356
SherpaOnnxOnlineCtcFstDecoderConfig ctc_fst_decoder_config
Definition c-api.h:387
SherpaOnnxOnlineModelConfig model_config
Definition c-api.h:360
SherpaOnnxHomophoneReplacerConfig hr
Definition c-api.h:400
SherpaOnnxFeatureConfig feat_config
Definition c-api.h:358
Incremental recognition result for a streaming ASR stream.
Definition c-api.h:411
const char *const * tokens_arr
Definition c-api.h:423
Configuration for streaming speech denoising.
Definition c-api.h:4289
SherpaOnnxOfflineSpeechDenoiserModelConfig model
Definition c-api.h:4291
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:3827
const float * samples
Definition c-api.h:3829
Configuration for a Silero VAD model.
Definition c-api.h:1895
Output of a source-separation run.
Definition c-api.h:4464
const SherpaOnnxSourceSeparationStem * stems
Definition c-api.h:4466
A single stem (one output track) with one or more channels.
Definition c-api.h:4454
Configuration for speaker embedding extraction.
Definition c-api.h:3108
Collection of best speaker matches.
Definition c-api.h:3348
const SherpaOnnxSpeakerEmbeddingManagerSpeakerMatch * matches
Definition c-api.h:3350
One speaker match returned by the best-matches API.
Definition c-api.h:3336
One detected speech segment returned by the VAD.
Definition c-api.h:2093
Configuration for spoken language identification.
Definition c-api.h:2988
SherpaOnnxSpokenLanguageIdentificationWhisperConfig whisper
Definition c-api.h:2990
Result of spoken-language identification.
Definition c-api.h:3045
Whisper-based model files for spoken language identification.
Definition c-api.h:2963
Configuration for a Ten VAD model.
Definition c-api.h:1916
Configuration shared by voice activity detectors.
Definition c-api.h:1968
SherpaOnnxSileroVadModelConfig silero_vad
Definition c-api.h:1970
SherpaOnnxTenVadModelConfig ten_vad
Definition c-api.h:1980
const char * provider
Definition c-api.h:1976
Decoded mono WAVE file content.
Definition c-api.h:2864
int32_t num_samples
Definition c-api.h:2870
const float * samples
Definition c-api.h:2866
int32_t sample_rate
Definition c-api.h:2868