cactus-react-native 1.1.0 → 1.2.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.
package/README.md CHANGED
@@ -460,7 +460,7 @@ const App = () => {
460
460
  return (
461
461
  <>
462
462
  <Button onPress={handleTranscribe} title="Transcribe" />
463
- <Text>{cactusSTT.response}</Text>
463
+ <Text>{cactusSTT.transcription}</Text>
464
464
  </>
465
465
  );
466
466
  };
@@ -672,7 +672,7 @@ The `useCactusSTT` hook manages a `CactusSTT` instance with reactive state. When
672
672
 
673
673
  #### State
674
674
 
675
- - `response: string` - Current transcription text. Automatically accumulated during streaming. Cleared before each new transcription and when calling `reset()` or `destroy()`.
675
+ - `transcription: string` - Current transcription text. Automatically accumulated during streaming. Cleared before each new transcription and when calling `reset()` or `destroy()`.
676
676
  - `isGenerating: boolean` - Whether the model is currently generating (transcription or embedding). Both operations share this flag.
677
677
  - `isInitializing: boolean` - Whether the model is initializing.
678
678
  - `isDownloaded: boolean` - Whether the model is downloaded locally. Automatically checked when the hook mounts or model changes.
@@ -684,11 +684,11 @@ The `useCactusSTT` hook manages a `CactusSTT` instance with reactive state. When
684
684
 
685
685
  - `download(params?: CactusSTTDownloadParams): Promise<void>` - Downloads the model. Updates `isDownloading` and `downloadProgress` state during download. Sets `isDownloaded` to `true` on success.
686
686
  - `init(): Promise<void>` - Initializes the model for inference. Sets `isInitializing` to `true` during initialization.
687
- - `transcribe(params: CactusSTTTranscribeParams): Promise<CactusSTTTranscribeResult>` - Transcribes audio to text. Automatically accumulates tokens in the `response` state during streaming. Sets `isGenerating` to `true` while generating. Clears `response` before starting.
687
+ - `transcribe(params: CactusSTTTranscribeParams): Promise<CactusSTTTranscribeResult>` - Transcribes audio to text. Automatically accumulates tokens in the `transcription` state during streaming. Sets `isGenerating` to `true` while generating. Clears `transcription` before starting.
688
688
  - `audioEmbed(params: CactusSTTAudioEmbedParams): Promise<CactusSTTAudioEmbedResult>` - Generates embeddings for the given audio. Sets `isGenerating` to `true` during operation.
689
689
  - `stop(): Promise<void>` - Stops ongoing generation. Clears any errors.
690
- - `reset(): Promise<void>` - Resets the model's internal state. Also clears the `response` state.
691
- - `destroy(): Promise<void>` - Releases all resources associated with the model. Clears the `response` state. Automatically called when the component unmounts.
690
+ - `reset(): Promise<void>` - Resets the model's internal state. Also clears the `transcription` state.
691
+ - `destroy(): Promise<void>` - Releases all resources associated with the model. Clears the `transcription` state. Automatically called when the component unmounts.
692
692
  - `getModels(): Promise<CactusModel[]>` - Fetches available models from the database and checks their download status. Results are cached in memory and reused on subsequent calls.
693
693
 
694
694
  ## Type Definitions
@@ -319,7 +319,7 @@ private:
319
319
  };
320
320
 
321
321
  struct KVCache {
322
- static constexpr size_t DEFAULT_WINDOW_SIZE = 512;
322
+ static constexpr size_t DEFAULT_WINDOW_SIZE = 1024;
323
323
  static constexpr size_t DEFAULT_SINK_SIZE = 4;
324
324
 
325
325
  struct LayerCache {
@@ -387,7 +387,7 @@ public:
387
387
  const std::string& system_prompt = "", bool do_warmup = true);
388
388
 
389
389
  virtual uint32_t generate(const std::vector<uint32_t>& tokens, float temperature = -1.0f, float top_p = -1.0f,
390
- size_t top_k = 0, const std::string& profile_file = "");
390
+ size_t top_k = 0, const std::string& profile_file = "", bool prefill_only = false);
391
391
 
392
392
  virtual uint32_t generate_with_images(const std::vector<uint32_t>& tokens, const std::vector<std::string>& image_paths,
393
393
  float temperature = -1.0f, float top_p = -1.0f,
@@ -92,32 +92,44 @@ struct TensorConfig {
92
92
  struct BroadcastInfo {
93
93
  std::vector<size_t> output_shape;
94
94
  bool needs_broadcasting;
95
-
95
+
96
96
  static BroadcastInfo compute(const std::vector<size_t>& lhs, const std::vector<size_t>& rhs);
97
97
  };
98
98
 
99
+ class BufferPool;
100
+
99
101
  struct BufferDesc {
100
102
  std::vector<size_t> shape;
101
103
  size_t total_size;
102
104
  size_t byte_size;
103
105
  std::unique_ptr<char[]> data;
104
106
  void* external_data;
107
+ char* pooled_data;
105
108
  Precision precision;
106
109
  float quantization_scale;
107
-
110
+
108
111
  BufferDesc();
109
112
  BufferDesc(const std::vector<size_t>& s, Precision prec = Precision::INT8, float scale = 1.0f);
110
-
113
+ ~BufferDesc();
114
+
115
+ BufferDesc(BufferDesc&& other) noexcept;
116
+ BufferDesc& operator=(BufferDesc&& other) noexcept;
117
+
118
+ BufferDesc(const BufferDesc&) = delete;
119
+ BufferDesc& operator=(const BufferDesc&) = delete;
120
+
111
121
  void* get_data();
112
122
  const void* get_data() const;
113
-
123
+
114
124
  template<typename T>
115
125
  T* data_as() { return static_cast<T*>(get_data()); }
116
-
126
+
117
127
  template<typename T>
118
128
  const T* data_as() const { return static_cast<const T*>(get_data()); }
119
-
129
+
120
130
  void allocate();
131
+ void allocate_from_pool(BufferPool& pool);
132
+ void release_to_pool(BufferPool& pool);
121
133
  void set_external(void* ptr);
122
134
  };
123
135
 
@@ -181,6 +193,33 @@ void compute_topk_node(GraphNode& node, const std::vector<std::unique_ptr<GraphN
181
193
  void compute_layernorm_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
182
194
  void compute_index_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
183
195
 
196
+ void shrink_thread_local_buffers();
197
+
198
+ class BufferPool {
199
+ public:
200
+ BufferPool() = default;
201
+ ~BufferPool() = default;
202
+
203
+ BufferPool(const BufferPool&) = delete;
204
+ BufferPool& operator=(const BufferPool&) = delete;
205
+
206
+ char* acquire(size_t byte_size);
207
+ void release(char* ptr, size_t byte_size);
208
+ void clear();
209
+
210
+ size_t active_bytes() const { return active_bytes_; }
211
+ size_t pool_bytes() const { return pool_bytes_; }
212
+ size_t peak_bytes() const { return peak_bytes_; }
213
+
214
+ private:
215
+ std::unordered_map<size_t, std::vector<std::unique_ptr<char[]>>> free_buffers_;
216
+ size_t active_bytes_ = 0;
217
+ size_t pool_bytes_ = 0;
218
+ size_t peak_bytes_ = 0;
219
+
220
+ size_t round_up_size(size_t size) const;
221
+ };
222
+
184
223
  namespace ValidationUtils {
185
224
  void validate_tensor_dims(const std::vector<size_t>& shape, size_t required_dims, const std::string& op_name);
186
225
  void validate_precision(Precision actual, Precision required, const std::string& op_name);
@@ -286,6 +325,7 @@ private:
286
325
  std::vector<std::unique_ptr<GraphFile::MappedFile>> mapped_files_;
287
326
  std::unordered_map<std::string, size_t> weight_cache_;
288
327
  std::vector<DebugNodeEntry> debug_nodes_;
328
+ BufferPool buffer_pool_;
289
329
  };
290
330
 
291
331
 
@@ -319,7 +319,7 @@ private:
319
319
  };
320
320
 
321
321
  struct KVCache {
322
- static constexpr size_t DEFAULT_WINDOW_SIZE = 512;
322
+ static constexpr size_t DEFAULT_WINDOW_SIZE = 1024;
323
323
  static constexpr size_t DEFAULT_SINK_SIZE = 4;
324
324
 
325
325
  struct LayerCache {
@@ -387,7 +387,7 @@ public:
387
387
  const std::string& system_prompt = "", bool do_warmup = true);
388
388
 
389
389
  virtual uint32_t generate(const std::vector<uint32_t>& tokens, float temperature = -1.0f, float top_p = -1.0f,
390
- size_t top_k = 0, const std::string& profile_file = "");
390
+ size_t top_k = 0, const std::string& profile_file = "", bool prefill_only = false);
391
391
 
392
392
  virtual uint32_t generate_with_images(const std::vector<uint32_t>& tokens, const std::vector<std::string>& image_paths,
393
393
  float temperature = -1.0f, float top_p = -1.0f,
@@ -92,32 +92,44 @@ struct TensorConfig {
92
92
  struct BroadcastInfo {
93
93
  std::vector<size_t> output_shape;
94
94
  bool needs_broadcasting;
95
-
95
+
96
96
  static BroadcastInfo compute(const std::vector<size_t>& lhs, const std::vector<size_t>& rhs);
97
97
  };
98
98
 
99
+ class BufferPool;
100
+
99
101
  struct BufferDesc {
100
102
  std::vector<size_t> shape;
101
103
  size_t total_size;
102
104
  size_t byte_size;
103
105
  std::unique_ptr<char[]> data;
104
106
  void* external_data;
107
+ char* pooled_data;
105
108
  Precision precision;
106
109
  float quantization_scale;
107
-
110
+
108
111
  BufferDesc();
109
112
  BufferDesc(const std::vector<size_t>& s, Precision prec = Precision::INT8, float scale = 1.0f);
110
-
113
+ ~BufferDesc();
114
+
115
+ BufferDesc(BufferDesc&& other) noexcept;
116
+ BufferDesc& operator=(BufferDesc&& other) noexcept;
117
+
118
+ BufferDesc(const BufferDesc&) = delete;
119
+ BufferDesc& operator=(const BufferDesc&) = delete;
120
+
111
121
  void* get_data();
112
122
  const void* get_data() const;
113
-
123
+
114
124
  template<typename T>
115
125
  T* data_as() { return static_cast<T*>(get_data()); }
116
-
126
+
117
127
  template<typename T>
118
128
  const T* data_as() const { return static_cast<const T*>(get_data()); }
119
-
129
+
120
130
  void allocate();
131
+ void allocate_from_pool(BufferPool& pool);
132
+ void release_to_pool(BufferPool& pool);
121
133
  void set_external(void* ptr);
122
134
  };
123
135
 
@@ -181,6 +193,33 @@ void compute_topk_node(GraphNode& node, const std::vector<std::unique_ptr<GraphN
181
193
  void compute_layernorm_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
182
194
  void compute_index_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
183
195
 
196
+ void shrink_thread_local_buffers();
197
+
198
+ class BufferPool {
199
+ public:
200
+ BufferPool() = default;
201
+ ~BufferPool() = default;
202
+
203
+ BufferPool(const BufferPool&) = delete;
204
+ BufferPool& operator=(const BufferPool&) = delete;
205
+
206
+ char* acquire(size_t byte_size);
207
+ void release(char* ptr, size_t byte_size);
208
+ void clear();
209
+
210
+ size_t active_bytes() const { return active_bytes_; }
211
+ size_t pool_bytes() const { return pool_bytes_; }
212
+ size_t peak_bytes() const { return peak_bytes_; }
213
+
214
+ private:
215
+ std::unordered_map<size_t, std::vector<std::unique_ptr<char[]>>> free_buffers_;
216
+ size_t active_bytes_ = 0;
217
+ size_t pool_bytes_ = 0;
218
+ size_t peak_bytes_ = 0;
219
+
220
+ size_t round_up_size(size_t size) const;
221
+ };
222
+
184
223
  namespace ValidationUtils {
185
224
  void validate_tensor_dims(const std::vector<size_t>& shape, size_t required_dims, const std::string& op_name);
186
225
  void validate_precision(Precision actual, Precision required, const std::string& op_name);
@@ -286,6 +325,7 @@ private:
286
325
  std::vector<std::unique_ptr<GraphFile::MappedFile>> mapped_files_;
287
326
  std::unordered_map<std::string, size_t> weight_cache_;
288
327
  std::vector<DebugNodeEntry> debug_nodes_;
328
+ BufferPool buffer_pool_;
289
329
  };
290
330
 
291
331
 
@@ -12,10 +12,11 @@ export class CactusSTT {
12
12
  isGenerating = false;
13
13
  static defaultModel = 'whisper-small';
14
14
  static defaultContextSize = 2048;
15
+ static defaultPrompt = '<|startoftranscript|><|en|><|transcribe|><|notimestamps|>';
15
16
  static defaultTranscribeOptions = {
16
17
  maxTokens: 512
17
18
  };
18
- static defaultEmbedBufferSize = 32768;
19
+ static defaultEmbedBufferSize = 4096;
19
20
  static cactusModelsCache = null;
20
21
  constructor({
21
22
  model,
@@ -61,7 +62,7 @@ export class CactusSTT {
61
62
  }
62
63
  async transcribe({
63
64
  audioFilePath,
64
- prompt = '<|startoftranscript|><|en|><|transcribe|><|notimestamps|>',
65
+ prompt,
65
66
  options,
66
67
  onToken
67
68
  }) {
@@ -69,11 +70,12 @@ export class CactusSTT {
69
70
  throw new Error('CactusSTT is already generating');
70
71
  }
71
72
  await this.init();
73
+ prompt = prompt ?? CactusSTT.defaultPrompt;
72
74
  options = {
73
75
  ...CactusSTT.defaultTranscribeOptions,
74
76
  ...options
75
77
  };
76
- const responseBufferSize = 32768;
78
+ const responseBufferSize = 8 * (options.maxTokens ?? CactusSTT.defaultTranscribeOptions.maxTokens) + 256;
77
79
  this.isGenerating = true;
78
80
  try {
79
81
  const result = await this.cactus.transcribe(audioFilePath, prompt, responseBufferSize, options, onToken);
@@ -1 +1 @@
1
- {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusSTT","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultTranscribeOptions","maxTokens","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","init","telemetryToken","download","onProgress","Error","modelExists","downloadModel","modelPath","getModelPath","logInit","error","transcribe","audioFilePath","prompt","options","onToken","responseBufferSize","result","logTranscribe","success","undefined","response","audioEmbed","audioPath","embedding","logAudioEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusSTT.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusSTT","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultPrompt","defaultTranscribeOptions","maxTokens","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","init","telemetryToken","download","onProgress","Error","modelExists","downloadModel","modelPath","getModelPath","logInit","error","transcribe","audioFilePath","prompt","options","onToken","responseBufferSize","result","logTranscribe","success","undefined","response","audioEmbed","audioPath","embedding","logAudioEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusSTT.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const packageVersion = '1.1.0';
3
+ export const packageVersion = '1.2.0';
4
4
  //# sourceMappingURL=packageVersion.js.map
@@ -14,7 +14,7 @@ export const useCactusSTT = ({
14
14
  }));
15
15
 
16
16
  // State
17
- const [response, setResponse] = useState('');
17
+ const [transcription, setTranscription] = useState('');
18
18
  const [isGenerating, setIsGenerating] = useState(false);
19
19
  const [isInitializing, setIsInitializing] = useState(false);
20
20
  const [isDownloaded, setIsDownloaded] = useState(false);
@@ -31,7 +31,7 @@ export const useCactusSTT = ({
31
31
  model,
32
32
  contextSize
33
33
  }));
34
- setResponse('');
34
+ setTranscription('');
35
35
  setIsGenerating(false);
36
36
  setIsInitializing(false);
37
37
  setIsDownloaded(false);
@@ -133,7 +133,7 @@ export const useCactusSTT = ({
133
133
  throw new Error(message);
134
134
  }
135
135
  setError(null);
136
- setResponse('');
136
+ setTranscription('');
137
137
  setIsGenerating(true);
138
138
  try {
139
139
  return await cactusSTT.transcribe({
@@ -141,7 +141,7 @@ export const useCactusSTT = ({
141
141
  prompt,
142
142
  options,
143
143
  onToken: token => {
144
- setResponse(prev => prev + token);
144
+ setTranscription(prev => prev + token);
145
145
  onToken?.(token);
146
146
  }
147
147
  });
@@ -190,7 +190,7 @@ export const useCactusSTT = ({
190
190
  setError(getErrorMessage(e));
191
191
  throw e;
192
192
  } finally {
193
- setResponse('');
193
+ setTranscription('');
194
194
  }
195
195
  }, [cactusSTT]);
196
196
  const destroy = useCallback(async () => {
@@ -201,7 +201,7 @@ export const useCactusSTT = ({
201
201
  setError(getErrorMessage(e));
202
202
  throw e;
203
203
  } finally {
204
- setResponse('');
204
+ setTranscription('');
205
205
  }
206
206
  }, [cactusSTT]);
207
207
  const getModels = useCallback(async () => {
@@ -214,7 +214,7 @@ export const useCactusSTT = ({
214
214
  }
215
215
  }, [cactusSTT]);
216
216
  return {
217
- response,
217
+ transcription,
218
218
  isGenerating,
219
219
  isInitializing,
220
220
  isDownloaded,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","useRef","CactusSTT","CactusFileSystem","getErrorMessage","useCactusSTT","model","contextSize","cactusSTT","setCactusSTT","response","setResponse","isGenerating","setIsGenerating","isInitializing","setIsInitializing","isDownloaded","setIsDownloaded","isDownloading","setIsDownloading","downloadProgress","setDownloadProgress","error","setError","currentModelRef","currentDownloadIdRef","current","mounted","modelExists","then","exists","catch","e","destroy","download","onProgress","message","Error","thisModel","thisDownloadId","progress","init","transcribe","audioFilePath","prompt","options","onToken","token","prev","audioEmbed","audioPath","stop","reset","getModels"],"sourceRoot":"../../../src","sources":["hooks/useCactusSTT.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","useRef","CactusSTT","CactusFileSystem","getErrorMessage","useCactusSTT","model","contextSize","cactusSTT","setCactusSTT","transcription","setTranscription","isGenerating","setIsGenerating","isInitializing","setIsInitializing","isDownloaded","setIsDownloaded","isDownloading","setIsDownloading","downloadProgress","setDownloadProgress","error","setError","currentModelRef","currentDownloadIdRef","current","mounted","modelExists","then","exists","catch","e","destroy","download","onProgress","message","Error","thisModel","thisDownloadId","progress","init","transcribe","audioFilePath","prompt","options","onToken","token","prev","audioEmbed","audioPath","stop","reset","getModels"],"sourceRoot":"../../../src","sources":["hooks/useCactusSTT.ts"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ export declare class CactusSTT {
9
9
  private isGenerating;
10
10
  private static readonly defaultModel;
11
11
  private static readonly defaultContextSize;
12
+ private static readonly defaultPrompt;
12
13
  private static readonly defaultTranscribeOptions;
13
14
  private static readonly defaultEmbedBufferSize;
14
15
  private static cactusModelsCache;
@@ -1 +1 @@
1
- {"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/classes/CactusSTT.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAmB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAE9C;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAEvD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;gBAElD,EAAE,KAAK,EAAE,WAAW,EAAE,GAAE,eAAoB;IAO3C,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBrB,UAAU,CAAC,EACtB,aAAa,EACb,MAAoE,EACpE,OAAO,EACP,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAkCpD,UAAU,CAAC,EACtB,SAAS,GACV,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAuB1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAWjD"}
1
+ {"version":3,"file":"CactusSTT.d.ts","sourceRoot":"","sources":["../../../../src/classes/CactusSTT.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMxD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAmB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CACyB;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAE9C;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAEtD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;gBAElD,EAAE,KAAK,EAAE,WAAW,EAAE,GAAE,eAAoB;IAO3C,QAAQ,CAAC,EACpB,UAAU,GACX,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBrB,UAAU,CAAC,EACtB,aAAa,EACb,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAsCpD,UAAU,CAAC,EACtB,SAAS,GACV,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAuB1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAWjD"}
@@ -1,2 +1,2 @@
1
- export declare const packageVersion = "1.1.0";
1
+ export declare const packageVersion = "1.2.0";
2
2
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import type { CactusSTTParams, CactusSTTTranscribeResult, CactusSTTTranscribeParams, CactusSTTDownloadParams, CactusSTTAudioEmbedParams, CactusSTTAudioEmbedResult } from '../types/CactusSTT';
2
2
  import type { CactusModel } from '../types/CactusModel';
3
3
  export declare const useCactusSTT: ({ model, contextSize, }?: CactusSTTParams) => {
4
- response: string;
4
+ transcription: string;
5
5
  isGenerating: boolean;
6
6
  isInitializing: boolean;
7
7
  isDownloaded: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cactus-react-native",
3
- "version": "1.1.0",
3
+ "version": "1.2.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",
@@ -25,10 +25,12 @@ export class CactusSTT {
25
25
 
26
26
  private static readonly defaultModel = 'whisper-small';
27
27
  private static readonly defaultContextSize = 2048;
28
+ private static readonly defaultPrompt =
29
+ '<|startoftranscript|><|en|><|transcribe|><|notimestamps|>';
28
30
  private static readonly defaultTranscribeOptions = {
29
31
  maxTokens: 512,
30
32
  };
31
- private static readonly defaultEmbedBufferSize = 32768;
33
+ private static readonly defaultEmbedBufferSize = 4096;
32
34
 
33
35
  private static cactusModelsCache: CactusModel[] | null = null;
34
36
 
@@ -86,7 +88,7 @@ export class CactusSTT {
86
88
 
87
89
  public async transcribe({
88
90
  audioFilePath,
89
- prompt = '<|startoftranscript|><|en|><|transcribe|><|notimestamps|>',
91
+ prompt,
90
92
  options,
91
93
  onToken,
92
94
  }: CactusSTTTranscribeParams): Promise<CactusSTTTranscribeResult> {
@@ -96,8 +98,12 @@ export class CactusSTT {
96
98
 
97
99
  await this.init();
98
100
 
101
+ prompt = prompt ?? CactusSTT.defaultPrompt;
99
102
  options = { ...CactusSTT.defaultTranscribeOptions, ...options };
100
- const responseBufferSize = 32768;
103
+
104
+ const responseBufferSize =
105
+ 8 * (options.maxTokens ?? CactusSTT.defaultTranscribeOptions.maxTokens) +
106
+ 256;
101
107
 
102
108
  this.isGenerating = true;
103
109
  try {
@@ -1 +1 @@
1
- export const packageVersion = '1.1.0';
1
+ export const packageVersion = '1.2.0';
@@ -21,7 +21,7 @@ export const useCactusSTT = ({
21
21
  );
22
22
 
23
23
  // State
24
- const [response, setResponse] = useState('');
24
+ const [transcription, setTranscription] = useState('');
25
25
  const [isGenerating, setIsGenerating] = useState(false);
26
26
  const [isInitializing, setIsInitializing] = useState(false);
27
27
  const [isDownloaded, setIsDownloaded] = useState(false);
@@ -39,7 +39,7 @@ export const useCactusSTT = ({
39
39
  useEffect(() => {
40
40
  setCactusSTT(new CactusSTT({ model, contextSize }));
41
41
 
42
- setResponse('');
42
+ setTranscription('');
43
43
  setIsGenerating(false);
44
44
  setIsInitializing(false);
45
45
  setIsDownloaded(false);
@@ -174,7 +174,7 @@ export const useCactusSTT = ({
174
174
  }
175
175
 
176
176
  setError(null);
177
- setResponse('');
177
+ setTranscription('');
178
178
  setIsGenerating(true);
179
179
  try {
180
180
  return await cactusSTT.transcribe({
@@ -182,7 +182,7 @@ export const useCactusSTT = ({
182
182
  prompt,
183
183
  options,
184
184
  onToken: (token) => {
185
- setResponse((prev) => prev + token);
185
+ setTranscription((prev) => prev + token);
186
186
  onToken?.(token);
187
187
  },
188
188
  });
@@ -238,7 +238,7 @@ export const useCactusSTT = ({
238
238
  setError(getErrorMessage(e));
239
239
  throw e;
240
240
  } finally {
241
- setResponse('');
241
+ setTranscription('');
242
242
  }
243
243
  }, [cactusSTT]);
244
244
 
@@ -250,7 +250,7 @@ export const useCactusSTT = ({
250
250
  setError(getErrorMessage(e));
251
251
  throw e;
252
252
  } finally {
253
- setResponse('');
253
+ setTranscription('');
254
254
  }
255
255
  }, [cactusSTT]);
256
256
 
@@ -265,7 +265,7 @@ export const useCactusSTT = ({
265
265
  }, [cactusSTT]);
266
266
 
267
267
  return {
268
- response,
268
+ transcription,
269
269
  isGenerating,
270
270
  isInitializing,
271
271
  isDownloaded,