cactus-react-native 1.7.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
  2. package/cpp/HybridCactus.cpp +49 -1
  3. package/cpp/HybridCactus.hpp +5 -0
  4. package/cpp/cactus_ffi.h +14 -1
  5. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_cloud.h +48 -0
  6. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +14 -1
  7. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_utils.h +304 -66
  8. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +32 -4
  9. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +75 -11
  10. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +123 -4
  11. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel_utils.h +37 -3
  12. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Info.plist +0 -0
  13. package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
  14. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_cloud.h +48 -0
  15. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_ffi.h +14 -1
  16. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_utils.h +304 -66
  17. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +32 -4
  18. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +75 -11
  19. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +123 -4
  20. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel_utils.h +37 -3
  21. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Info.plist +0 -0
  22. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/_CodeSignature/CodeResources +1 -1
  23. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
  24. package/lib/module/classes/CactusSTT.js +15 -0
  25. package/lib/module/classes/CactusSTT.js.map +1 -1
  26. package/lib/module/native/Cactus.js +18 -0
  27. package/lib/module/native/Cactus.js.map +1 -1
  28. package/lib/typescript/src/classes/CactusSTT.d.ts +2 -1
  29. package/lib/typescript/src/classes/CactusSTT.d.ts.map +1 -1
  30. package/lib/typescript/src/index.d.ts +1 -1
  31. package/lib/typescript/src/index.d.ts.map +1 -1
  32. package/lib/typescript/src/native/Cactus.d.ts +2 -1
  33. package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
  34. package/lib/typescript/src/specs/Cactus.nitro.d.ts +1 -0
  35. package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -1
  36. package/lib/typescript/src/types/CactusSTT.d.ts +11 -0
  37. package/lib/typescript/src/types/CactusSTT.d.ts.map +1 -1
  38. package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +1 -0
  39. package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +1 -0
  40. package/package.json +1 -1
  41. package/src/classes/CactusSTT.ts +20 -0
  42. package/src/index.tsx +3 -0
  43. package/src/native/Cactus.ts +32 -0
  44. package/src/specs/Cactus.nitro.ts +5 -0
  45. package/src/types/CactusSTT.ts +14 -0
@@ -1,5 +1,5 @@
1
1
  import type { CactusLMCompleteResult, CactusLMMessage, CactusLMCompleteOptions, CactusLMTool } from '../types/CactusLM';
2
- import type { CactusSTTTranscribeResult, CactusSTTTranscribeOptions, CactusSTTStreamTranscribeStartOptions, CactusSTTStreamTranscribeProcessResult, CactusSTTStreamTranscribeStopResult } from '../types/CactusSTT';
2
+ import type { CactusSTTTranscribeResult, CactusSTTTranscribeOptions, CactusSTTStreamTranscribeStartOptions, CactusSTTStreamTranscribeProcessResult, CactusSTTStreamTranscribeStopResult, CactusSTTDetectLanguageOptions, CactusSTTDetectLanguageResult } from '../types/CactusSTT';
3
3
  import type { CactusVADOptions, CactusVADResult } from '../types/CactusVAD';
4
4
  export declare class Cactus {
5
5
  private readonly hybridCactus;
@@ -13,6 +13,7 @@ export declare class Cactus {
13
13
  transcribe(audio: string | number[], prompt: string, responseBufferSize: number, options?: CactusSTTTranscribeOptions, callback?: (token: string, tokenId: number) => void): Promise<CactusSTTTranscribeResult>;
14
14
  streamTranscribeStart(options?: CactusSTTStreamTranscribeStartOptions): Promise<void>;
15
15
  streamTranscribeProcess(audio: number[]): Promise<CactusSTTStreamTranscribeProcessResult>;
16
+ detectLanguage(audio: string | number[], options?: CactusSTTDetectLanguageOptions): Promise<CactusSTTDetectLanguageResult>;
16
17
  streamTranscribeStop(): Promise<CactusSTTStreamTranscribeStopResult>;
17
18
  vad(audio: string | number[], options?: CactusVADOptions): Promise<CactusVADResult>;
18
19
  embed(text: string, embeddingBufferSize: number, normalize: boolean): Promise<number[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"Cactus.d.ts","sourceRoot":"","sources":["../../../../src/native/Cactus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,qCAAqC,EACrC,sCAAsC,EACtC,mCAAmC,EACpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE5E,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAC2B;IAEjD,IAAI,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAIH,QAAQ,CACnB,QAAQ,EAAE,eAAe,EAAE,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,uBAAuB,EACjC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,EAAE,EACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,sBAAsB,CAAC;IAuE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,WAAW,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAeL,UAAU,CACrB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,0BAA0B,EACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,yBAAyB,CAAC;IAkD9B,qBAAqB,CAC1B,OAAO,CAAC,EAAE,qCAAqC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAWH,uBAAuB,CAClC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,sCAAsC,CAAC;IA4BrC,oBAAoB,IAAI,OAAO,CAAC,mCAAmC,CAAC;IAUpE,GAAG,CACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC;IAkCpB,KAAK,CACV,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAIP,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUb,UAAU,CACf,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAOb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
1
+ {"version":3,"file":"Cactus.d.ts","sourceRoot":"","sources":["../../../../src/native/Cactus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,qCAAqC,EACrC,sCAAsC,EACtC,mCAAmC,EACnC,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE5E,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAC2B;IAEjD,IAAI,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAIH,QAAQ,CACnB,QAAQ,EAAE,eAAe,EAAE,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,uBAAuB,EACjC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,EAAE,EACtD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,sBAAsB,CAAC;IAuE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,WAAW,CACtB,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAeL,UAAU,CACrB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,0BAA0B,EACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,yBAAyB,CAAC;IAkD9B,qBAAqB,CAC1B,OAAO,CAAC,EAAE,qCAAqC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAWH,uBAAuB,CAClC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,sCAAsC,CAAC;IA4BrC,cAAc,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,6BAA6B,CAAC;IA2B5B,oBAAoB,IAAI,OAAO,CAAC,mCAAmC,CAAC;IAUpE,GAAG,CACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC;IAkCpB,KAAK,CACV,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC;IAIP,UAAU,CACrB,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUb,UAAU,CACf,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAOb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
@@ -8,6 +8,7 @@ export interface Cactus extends HybridObject<{
8
8
  tokenize(text: string): Promise<number[]>;
9
9
  scoreWindow(tokens: number[], start: number, end: number, context: number): Promise<string>;
10
10
  transcribe(audio: string | number[], prompt: string, responseBufferSize: number, optionsJson?: string, callback?: (token: string, tokenId: number) => void): Promise<string>;
11
+ detectLanguage(audio: string | number[], responseBufferSize: number, optionsJson?: string): Promise<string>;
11
12
  streamTranscribeStart(optionsJson?: string): Promise<void>;
12
13
  streamTranscribeProcess(audio: number[]): Promise<string>;
13
14
  streamTranscribeStop(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"Cactus.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/Cactus.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAC1E,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,WAAW,CACT,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,GAAG,CACD,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"Cactus.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/Cactus.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;IAC1E,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,WAAW,CACT,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAClD,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,cAAc,CACZ,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,GAAG,CACD,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
@@ -75,4 +75,15 @@ export interface CactusSTTStreamTranscribeStopResult {
75
75
  success: boolean;
76
76
  confirmed: string;
77
77
  }
78
+ export interface CactusSTTDetectLanguageOptions {
79
+ useVad?: boolean;
80
+ }
81
+ export interface CactusSTTDetectLanguageParams {
82
+ audio: string | number[];
83
+ options?: CactusSTTDetectLanguageOptions;
84
+ }
85
+ export interface CactusSTTDetectLanguageResult {
86
+ language: string;
87
+ confidence?: number;
88
+ }
78
89
  //# sourceMappingURL=CactusSTT.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusSTT.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/types/CactusSTT.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ namespace margelo::nitro::cactus {
19
19
  prototype.registerHybridMethod("tokenize", &HybridCactusSpec::tokenize);
20
20
  prototype.registerHybridMethod("scoreWindow", &HybridCactusSpec::scoreWindow);
21
21
  prototype.registerHybridMethod("transcribe", &HybridCactusSpec::transcribe);
22
+ prototype.registerHybridMethod("detectLanguage", &HybridCactusSpec::detectLanguage);
22
23
  prototype.registerHybridMethod("streamTranscribeStart", &HybridCactusSpec::streamTranscribeStart);
23
24
  prototype.registerHybridMethod("streamTranscribeProcess", &HybridCactusSpec::streamTranscribeProcess);
24
25
  prototype.registerHybridMethod("streamTranscribeStop", &HybridCactusSpec::streamTranscribeStop);
@@ -58,6 +58,7 @@ namespace margelo::nitro::cactus {
58
58
  virtual std::shared_ptr<Promise<std::vector<double>>> tokenize(const std::string& text) = 0;
59
59
  virtual std::shared_ptr<Promise<std::string>> scoreWindow(const std::vector<double>& tokens, double start, double end, double context) = 0;
60
60
  virtual std::shared_ptr<Promise<std::string>> transcribe(const std::variant<std::vector<double>, std::string>& audio, const std::string& prompt, double responseBufferSize, const std::optional<std::string>& optionsJson, const std::optional<std::function<void(const std::string& /* token */, double /* tokenId */)>>& callback) = 0;
61
+ virtual std::shared_ptr<Promise<std::string>> detectLanguage(const std::variant<std::vector<double>, std::string>& audio, double responseBufferSize, const std::optional<std::string>& optionsJson) = 0;
61
62
  virtual std::shared_ptr<Promise<void>> streamTranscribeStart(const std::optional<std::string>& optionsJson) = 0;
62
63
  virtual std::shared_ptr<Promise<std::string>> streamTranscribeProcess(const std::vector<double>& audio) = 0;
63
64
  virtual std::shared_ptr<Promise<std::string>> streamTranscribeStop() = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "1.7.0",
3
+ "version": "1.10.0",
4
4
  "description": "Run AI models locally on mobile devices",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -10,6 +10,8 @@ import type {
10
10
  CactusSTTStreamTranscribeProcessParams,
11
11
  CactusSTTStreamTranscribeProcessResult,
12
12
  CactusSTTStreamTranscribeStopResult,
13
+ CactusSTTDetectLanguageParams,
14
+ CactusSTTDetectLanguageResult,
13
15
  } from '../types/CactusSTT';
14
16
  import { getRegistry } from '../modelRegistry';
15
17
  import type { CactusModel } from '../types/common';
@@ -179,6 +181,24 @@ export class CactusSTT {
179
181
  }
180
182
  }
181
183
 
184
+ public async detectLanguage({
185
+ audio,
186
+ options,
187
+ }: CactusSTTDetectLanguageParams): Promise<CactusSTTDetectLanguageResult> {
188
+ if (this.isGenerating) {
189
+ throw new Error('CactusSTT is already generating');
190
+ }
191
+
192
+ await this.init();
193
+
194
+ this.isGenerating = true;
195
+ try {
196
+ return await this.cactus.detectLanguage(audio, options);
197
+ } finally {
198
+ this.isGenerating = false;
199
+ }
200
+ }
201
+
182
202
  public async audioEmbed({
183
203
  audioPath,
184
204
  }: CactusSTTAudioEmbedParams): Promise<CactusSTTAudioEmbedResult> {
package/src/index.tsx CHANGED
@@ -41,6 +41,9 @@ export type {
41
41
  CactusSTTStreamTranscribeProcessParams,
42
42
  CactusSTTStreamTranscribeProcessResult,
43
43
  CactusSTTStreamTranscribeStopResult,
44
+ CactusSTTDetectLanguageOptions,
45
+ CactusSTTDetectLanguageParams,
46
+ CactusSTTDetectLanguageResult,
44
47
  } from './types/CactusSTT';
45
48
  export type {
46
49
  CactusVADParams,
@@ -13,6 +13,8 @@ import type {
13
13
  CactusSTTStreamTranscribeStartOptions,
14
14
  CactusSTTStreamTranscribeProcessResult,
15
15
  CactusSTTStreamTranscribeStopResult,
16
+ CactusSTTDetectLanguageOptions,
17
+ CactusSTTDetectLanguageResult,
16
18
  } from '../types/CactusSTT';
17
19
  import type { CactusVADOptions, CactusVADResult } from '../types/CactusVAD';
18
20
 
@@ -228,6 +230,36 @@ export class Cactus {
228
230
  }
229
231
  }
230
232
 
233
+ public async detectLanguage(
234
+ audio: string | number[],
235
+ options?: CactusSTTDetectLanguageOptions
236
+ ): Promise<CactusSTTDetectLanguageResult> {
237
+ if (typeof audio === 'string') {
238
+ audio = audio.replace('file://', '');
239
+ }
240
+
241
+ const optionsJson = options
242
+ ? JSON.stringify({ use_vad: options.useVad })
243
+ : undefined;
244
+
245
+ const response = await this.hybridCactus.detectLanguage(
246
+ audio,
247
+ 1024,
248
+ optionsJson
249
+ );
250
+
251
+ try {
252
+ const parsed = JSON.parse(response);
253
+
254
+ return {
255
+ language: parsed.language,
256
+ confidence: parsed.confidence,
257
+ };
258
+ } catch {
259
+ throw new Error('Unable to parse detect language response');
260
+ }
261
+ }
262
+
231
263
  public async streamTranscribeStop(): Promise<CactusSTTStreamTranscribeStopResult> {
232
264
  const response = await this.hybridCactus.streamTranscribeStop();
233
265
  try {
@@ -27,6 +27,11 @@ export interface Cactus extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
27
27
  optionsJson?: string,
28
28
  callback?: (token: string, tokenId: number) => void
29
29
  ): Promise<string>;
30
+ detectLanguage(
31
+ audio: string | number[],
32
+ responseBufferSize: number,
33
+ optionsJson?: string
34
+ ): Promise<string>;
30
35
  streamTranscribeStart(optionsJson?: string): Promise<void>;
31
36
  streamTranscribeProcess(audio: number[]): Promise<string>;
32
37
  streamTranscribeStop(): Promise<string>;
@@ -86,3 +86,17 @@ export interface CactusSTTStreamTranscribeStopResult {
86
86
  success: boolean;
87
87
  confirmed: string;
88
88
  }
89
+
90
+ export interface CactusSTTDetectLanguageOptions {
91
+ useVad?: boolean;
92
+ }
93
+
94
+ export interface CactusSTTDetectLanguageParams {
95
+ audio: string | number[];
96
+ options?: CactusSTTDetectLanguageOptions;
97
+ }
98
+
99
+ export interface CactusSTTDetectLanguageResult {
100
+ language: string;
101
+ confidence?: number;
102
+ }