/**
 * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
 *
 * Do not edit this file as changes may cause incorrect behavior and will be lost
 * once the code is regenerated.
 *
 * @generated by codegen project: GenerateModuleH.js
 */

#pragma once

#include <ReactCommon/TurboModule.h>
#include <react/bridging/Bridging.h>

namespace facebook::react {


template <typename T>
class JSI_EXPORT NativeSherpaOnnxSpecCxxSpec : public TurboModule {
public:
  static constexpr std::string_view kModuleName = "SherpaOnnx";

protected:
  NativeSherpaOnnxSpecCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeSherpaOnnxSpecCxxSpec::kModuleName}, jsInvoker) {
    methodMap_["validateLibraryLoaded"] = MethodMetadata {.argCount = 0, .invoker = __validateLibraryLoaded};
    methodMap_["testOnnxIntegration"] = MethodMetadata {.argCount = 0, .invoker = __testOnnxIntegration};
    methodMap_["getArchitectureInfo"] = MethodMetadata {.argCount = 0, .invoker = __getArchitectureInfo};
    methodMap_["getSystemInfo"] = MethodMetadata {.argCount = 0, .invoker = __getSystemInfo};
    methodMap_["initTts"] = MethodMetadata {.argCount = 1, .invoker = __initTts};
    methodMap_["generateTts"] = MethodMetadata {.argCount = 1, .invoker = __generateTts};
    methodMap_["stopTts"] = MethodMetadata {.argCount = 0, .invoker = __stopTts};
    methodMap_["releaseTts"] = MethodMetadata {.argCount = 0, .invoker = __releaseTts};
    methodMap_["initAsr"] = MethodMetadata {.argCount = 1, .invoker = __initAsr};
    methodMap_["recognizeFromSamples"] = MethodMetadata {.argCount = 2, .invoker = __recognizeFromSamples};
    methodMap_["recognizeFromFile"] = MethodMetadata {.argCount = 1, .invoker = __recognizeFromFile};
    methodMap_["releaseAsr"] = MethodMetadata {.argCount = 0, .invoker = __releaseAsr};
    methodMap_["createAsrOnlineStream"] = MethodMetadata {.argCount = 0, .invoker = __createAsrOnlineStream};
    methodMap_["acceptAsrOnlineWaveform"] = MethodMetadata {.argCount = 2, .invoker = __acceptAsrOnlineWaveform};
    methodMap_["isAsrOnlineEndpoint"] = MethodMetadata {.argCount = 0, .invoker = __isAsrOnlineEndpoint};
    methodMap_["getAsrOnlineResult"] = MethodMetadata {.argCount = 0, .invoker = __getAsrOnlineResult};
    methodMap_["finishAsrOnlineInput"] = MethodMetadata {.argCount = 0, .invoker = __finishAsrOnlineInput};
    methodMap_["resetAsrOnlineStream"] = MethodMetadata {.argCount = 0, .invoker = __resetAsrOnlineStream};
    methodMap_["initAudioTagging"] = MethodMetadata {.argCount = 1, .invoker = __initAudioTagging};
    methodMap_["processAndComputeAudioTagging"] = MethodMetadata {.argCount = 1, .invoker = __processAndComputeAudioTagging};
    methodMap_["processAndComputeAudioSamples"] = MethodMetadata {.argCount = 2, .invoker = __processAndComputeAudioSamples};
    methodMap_["releaseAudioTagging"] = MethodMetadata {.argCount = 0, .invoker = __releaseAudioTagging};
    methodMap_["initSpeakerId"] = MethodMetadata {.argCount = 1, .invoker = __initSpeakerId};
    methodMap_["processSpeakerIdSamples"] = MethodMetadata {.argCount = 2, .invoker = __processSpeakerIdSamples};
    methodMap_["computeSpeakerEmbedding"] = MethodMetadata {.argCount = 0, .invoker = __computeSpeakerEmbedding};
    methodMap_["resetSpeakerIdStream"] = MethodMetadata {.argCount = 0, .invoker = __resetSpeakerIdStream};
    methodMap_["registerSpeaker"] = MethodMetadata {.argCount = 2, .invoker = __registerSpeaker};
    methodMap_["removeSpeaker"] = MethodMetadata {.argCount = 1, .invoker = __removeSpeaker};
    methodMap_["getSpeakers"] = MethodMetadata {.argCount = 0, .invoker = __getSpeakers};
    methodMap_["identifySpeaker"] = MethodMetadata {.argCount = 2, .invoker = __identifySpeaker};
    methodMap_["verifySpeaker"] = MethodMetadata {.argCount = 3, .invoker = __verifySpeaker};
    methodMap_["processSpeakerIdFile"] = MethodMetadata {.argCount = 1, .invoker = __processSpeakerIdFile};
    methodMap_["processSpeakerIdFileWindow"] = MethodMetadata {.argCount = 3, .invoker = __processSpeakerIdFileWindow};
    methodMap_["releaseSpeakerId"] = MethodMetadata {.argCount = 0, .invoker = __releaseSpeakerId};
    methodMap_["initDiarization"] = MethodMetadata {.argCount = 1, .invoker = __initDiarization};
    methodMap_["processDiarizationFile"] = MethodMetadata {.argCount = 3, .invoker = __processDiarizationFile};
    methodMap_["processDiarizationFileWindow"] = MethodMetadata {.argCount = 5, .invoker = __processDiarizationFileWindow};
    methodMap_["releaseDiarization"] = MethodMetadata {.argCount = 0, .invoker = __releaseDiarization};
    methodMap_["initKws"] = MethodMetadata {.argCount = 1, .invoker = __initKws};
    methodMap_["acceptKwsWaveform"] = MethodMetadata {.argCount = 2, .invoker = __acceptKwsWaveform};
    methodMap_["resetKwsStream"] = MethodMetadata {.argCount = 0, .invoker = __resetKwsStream};
    methodMap_["releaseKws"] = MethodMetadata {.argCount = 0, .invoker = __releaseKws};
    methodMap_["initVad"] = MethodMetadata {.argCount = 1, .invoker = __initVad};
    methodMap_["acceptVadWaveform"] = MethodMetadata {.argCount = 2, .invoker = __acceptVadWaveform};
    methodMap_["resetVad"] = MethodMetadata {.argCount = 0, .invoker = __resetVad};
    methodMap_["releaseVad"] = MethodMetadata {.argCount = 0, .invoker = __releaseVad};
    methodMap_["initLanguageId"] = MethodMetadata {.argCount = 1, .invoker = __initLanguageId};
    methodMap_["detectLanguage"] = MethodMetadata {.argCount = 2, .invoker = __detectLanguage};
    methodMap_["detectLanguageFromFile"] = MethodMetadata {.argCount = 1, .invoker = __detectLanguageFromFile};
    methodMap_["releaseLanguageId"] = MethodMetadata {.argCount = 0, .invoker = __releaseLanguageId};
    methodMap_["initPunctuation"] = MethodMetadata {.argCount = 1, .invoker = __initPunctuation};
    methodMap_["addPunctuation"] = MethodMetadata {.argCount = 1, .invoker = __addPunctuation};
    methodMap_["releasePunctuation"] = MethodMetadata {.argCount = 0, .invoker = __releasePunctuation};
    methodMap_["initDenoiser"] = MethodMetadata {.argCount = 1, .invoker = __initDenoiser};
    methodMap_["denoiseFile"] = MethodMetadata {.argCount = 1, .invoker = __denoiseFile};
    methodMap_["releaseDenoiser"] = MethodMetadata {.argCount = 0, .invoker = __releaseDenoiser};
    methodMap_["createOnnxSession"] = MethodMetadata {.argCount = 1, .invoker = __createOnnxSession};
    methodMap_["runOnnxSession"] = MethodMetadata {.argCount = 5, .invoker = __runOnnxSession};
    methodMap_["releaseOnnxSession"] = MethodMetadata {.argCount = 1, .invoker = __releaseOnnxSession};
    methodMap_["extractTarBz2"] = MethodMetadata {.argCount = 2, .invoker = __extractTarBz2};
  }
  
private:
  static jsi::Value __validateLibraryLoaded(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::validateLibraryLoaded) == 1,
      "Expected validateLibraryLoaded(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::validateLibraryLoaded,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __testOnnxIntegration(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::testOnnxIntegration) == 1,
      "Expected testOnnxIntegration(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::testOnnxIntegration,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __getArchitectureInfo(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::getArchitectureInfo) == 1,
      "Expected getArchitectureInfo(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::getArchitectureInfo,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __getSystemInfo(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::getSystemInfo) == 1,
      "Expected getSystemInfo(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::getSystemInfo,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initTts(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initTts) == 2,
      "Expected initTts(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initTts,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __generateTts(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::generateTts) == 2,
      "Expected generateTts(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::generateTts,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __stopTts(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::stopTts) == 1,
      "Expected stopTts(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::stopTts,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __releaseTts(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseTts) == 1,
      "Expected releaseTts(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseTts,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initAsr(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initAsr) == 2,
      "Expected initAsr(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initAsr,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __recognizeFromSamples(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::recognizeFromSamples) == 3,
      "Expected recognizeFromSamples(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::recognizeFromSamples,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __recognizeFromFile(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::recognizeFromFile) == 2,
      "Expected recognizeFromFile(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::recognizeFromFile,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __releaseAsr(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseAsr) == 1,
      "Expected releaseAsr(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseAsr,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __createAsrOnlineStream(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::createAsrOnlineStream) == 1,
      "Expected createAsrOnlineStream(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::createAsrOnlineStream,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __acceptAsrOnlineWaveform(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::acceptAsrOnlineWaveform) == 3,
      "Expected acceptAsrOnlineWaveform(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::acceptAsrOnlineWaveform,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __isAsrOnlineEndpoint(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::isAsrOnlineEndpoint) == 1,
      "Expected isAsrOnlineEndpoint(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::isAsrOnlineEndpoint,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __getAsrOnlineResult(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::getAsrOnlineResult) == 1,
      "Expected getAsrOnlineResult(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::getAsrOnlineResult,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __finishAsrOnlineInput(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::finishAsrOnlineInput) == 1,
      "Expected finishAsrOnlineInput(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::finishAsrOnlineInput,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __resetAsrOnlineStream(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::resetAsrOnlineStream) == 1,
      "Expected resetAsrOnlineStream(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::resetAsrOnlineStream,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initAudioTagging(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initAudioTagging) == 2,
      "Expected initAudioTagging(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initAudioTagging,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __processAndComputeAudioTagging(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::processAndComputeAudioTagging) == 2,
      "Expected processAndComputeAudioTagging(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::processAndComputeAudioTagging,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __processAndComputeAudioSamples(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::processAndComputeAudioSamples) == 3,
      "Expected processAndComputeAudioSamples(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::processAndComputeAudioSamples,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __releaseAudioTagging(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseAudioTagging) == 1,
      "Expected releaseAudioTagging(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseAudioTagging,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initSpeakerId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initSpeakerId) == 2,
      "Expected initSpeakerId(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initSpeakerId,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __processSpeakerIdSamples(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::processSpeakerIdSamples) == 3,
      "Expected processSpeakerIdSamples(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::processSpeakerIdSamples,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __computeSpeakerEmbedding(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::computeSpeakerEmbedding) == 1,
      "Expected computeSpeakerEmbedding(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::computeSpeakerEmbedding,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __resetSpeakerIdStream(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::resetSpeakerIdStream) == 1,
      "Expected resetSpeakerIdStream(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::resetSpeakerIdStream,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __registerSpeaker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::registerSpeaker) == 3,
      "Expected registerSpeaker(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::registerSpeaker,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __removeSpeaker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::removeSpeaker) == 2,
      "Expected removeSpeaker(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::removeSpeaker,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __getSpeakers(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::getSpeakers) == 1,
      "Expected getSpeakers(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::getSpeakers,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __identifySpeaker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::identifySpeaker) == 3,
      "Expected identifySpeaker(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::identifySpeaker,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt).asArray(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber());
  }

  static jsi::Value __verifySpeaker(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::verifySpeaker) == 4,
      "Expected verifySpeaker(...) to have 4 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::verifySpeaker,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt),
      count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asNumber());
  }

  static jsi::Value __processSpeakerIdFile(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::processSpeakerIdFile) == 2,
      "Expected processSpeakerIdFile(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::processSpeakerIdFile,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __processSpeakerIdFileWindow(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::processSpeakerIdFileWindow) == 4,
      "Expected processSpeakerIdFileWindow(...) to have 4 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::processSpeakerIdFileWindow,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber(),
      count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asNumber());
  }

  static jsi::Value __releaseSpeakerId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseSpeakerId) == 1,
      "Expected releaseSpeakerId(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseSpeakerId,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initDiarization(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initDiarization) == 2,
      "Expected initDiarization(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initDiarization,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __processDiarizationFile(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::processDiarizationFile) == 4,
      "Expected processDiarizationFile(...) to have 4 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::processDiarizationFile,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber(),
      count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asNumber());
  }

  static jsi::Value __processDiarizationFileWindow(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::processDiarizationFileWindow) == 6,
      "Expected processDiarizationFileWindow(...) to have 6 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::processDiarizationFileWindow,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber(),
      count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asNumber(),
      count <= 3 ? throw jsi::JSError(rt, "Expected argument in position 3 to be passed") : args[3].asNumber(),
      count <= 4 ? throw jsi::JSError(rt, "Expected argument in position 4 to be passed") : args[4].asNumber());
  }

  static jsi::Value __releaseDiarization(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseDiarization) == 1,
      "Expected releaseDiarization(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseDiarization,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initKws(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initKws) == 2,
      "Expected initKws(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initKws,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __acceptKwsWaveform(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::acceptKwsWaveform) == 3,
      "Expected acceptKwsWaveform(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::acceptKwsWaveform,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __resetKwsStream(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::resetKwsStream) == 1,
      "Expected resetKwsStream(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::resetKwsStream,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __releaseKws(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseKws) == 1,
      "Expected releaseKws(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseKws,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initVad(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initVad) == 2,
      "Expected initVad(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initVad,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __acceptVadWaveform(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::acceptVadWaveform) == 3,
      "Expected acceptVadWaveform(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::acceptVadWaveform,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __resetVad(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::resetVad) == 1,
      "Expected resetVad(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::resetVad,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __releaseVad(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseVad) == 1,
      "Expected releaseVad(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseVad,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initLanguageId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initLanguageId) == 2,
      "Expected initLanguageId(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initLanguageId,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __detectLanguage(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::detectLanguage) == 3,
      "Expected detectLanguage(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::detectLanguage,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt));
  }

  static jsi::Value __detectLanguageFromFile(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::detectLanguageFromFile) == 2,
      "Expected detectLanguageFromFile(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::detectLanguageFromFile,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __releaseLanguageId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseLanguageId) == 1,
      "Expected releaseLanguageId(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseLanguageId,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initPunctuation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initPunctuation) == 2,
      "Expected initPunctuation(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initPunctuation,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __addPunctuation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::addPunctuation) == 2,
      "Expected addPunctuation(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::addPunctuation,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __releasePunctuation(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releasePunctuation) == 1,
      "Expected releasePunctuation(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releasePunctuation,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __initDenoiser(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::initDenoiser) == 2,
      "Expected initDenoiser(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::initDenoiser,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __denoiseFile(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::denoiseFile) == 2,
      "Expected denoiseFile(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::denoiseFile,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __releaseDenoiser(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
    static_assert(
      bridging::getParameterCount(&T::releaseDenoiser) == 1,
      "Expected releaseDenoiser(...) to have 1 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseDenoiser,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
  }

  static jsi::Value __createOnnxSession(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::createOnnxSession) == 2,
      "Expected createOnnxSession(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::createOnnxSession,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt));
  }

  static jsi::Value __runOnnxSession(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::runOnnxSession) == 6,
      "Expected runOnnxSession(...) to have 6 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::runOnnxSession,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt).asArray(rt),
      count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asObject(rt).asArray(rt),
      count <= 3 ? throw jsi::JSError(rt, "Expected argument in position 3 to be passed") : args[3].asObject(rt).asArray(rt),
      count <= 4 ? throw jsi::JSError(rt, "Expected argument in position 4 to be passed") : args[4].asObject(rt).asArray(rt));
  }

  static jsi::Value __releaseOnnxSession(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::releaseOnnxSession) == 2,
      "Expected releaseOnnxSession(...) to have 2 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::releaseOnnxSession,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
  }

  static jsi::Value __extractTarBz2(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
    static_assert(
      bridging::getParameterCount(&T::extractTarBz2) == 3,
      "Expected extractTarBz2(...) to have 3 parameters");
    return bridging::callFromJs<jsi::Value>(rt, &T::extractTarBz2,  static_cast<NativeSherpaOnnxSpecCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
      count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
      count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt));
  }
};

} // namespace facebook::react
