whisper.rn 0.4.3 → 0.5.0-rc.1
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 +1 -3
- package/android/build.gradle +71 -11
- package/android/src/main/CMakeLists.txt +28 -1
- package/android/src/main/java/com/rnwhisper/JSCallInvokerResolver.java +40 -0
- package/android/src/main/java/com/rnwhisper/RNWhisper.java +59 -11
- package/android/src/main/java/com/rnwhisper/WhisperContext.java +21 -9
- package/android/src/main/java/com/rnwhisper/WhisperVadContext.java +1 -1
- package/android/src/main/jni.cpp +79 -2
- package/android/src/newarch/java/com/rnwhisper/RNWhisperModule.java +5 -0
- package/android/src/oldarch/java/com/rnwhisper/RNWhisperModule.java +5 -0
- package/cpp/jsi/RNWhisperJSI.cpp +681 -0
- package/cpp/jsi/RNWhisperJSI.h +44 -0
- package/cpp/jsi/ThreadPool.h +100 -0
- package/ios/RNWhisper.h +3 -0
- package/ios/RNWhisper.mm +38 -0
- package/jest/mock.js +1 -0
- package/lib/commonjs/NativeRNWhisper.js.map +1 -1
- package/lib/commonjs/index.js +83 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeRNWhisper.js.map +1 -1
- package/lib/module/index.js +83 -2
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/NativeRNWhisper.d.ts +4 -0
- package/lib/typescript/NativeRNWhisper.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +18 -6
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +7 -8
- package/src/NativeRNWhisper.ts +2 -0
- package/src/index.ts +162 -33
- package/whisper-rn.podspec +6 -3
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <jsi/jsi.h>
|
|
4
|
+
#include <memory>
|
|
5
|
+
#include <mutex>
|
|
6
|
+
#include <unordered_map>
|
|
7
|
+
#include <vector>
|
|
8
|
+
#include <atomic>
|
|
9
|
+
#include <ReactCommon/CallInvoker.h>
|
|
10
|
+
|
|
11
|
+
#if defined(__ANDROID__)
|
|
12
|
+
#include <android/log.h>
|
|
13
|
+
#include "whisper.h"
|
|
14
|
+
#include "rn-whisper.h"
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
#if defined(__APPLE__)
|
|
18
|
+
#if RNWHISPER_BUILD_FROM_SOURCE
|
|
19
|
+
#include "whisper.h"
|
|
20
|
+
#include "rn-whisper.h"
|
|
21
|
+
#else
|
|
22
|
+
#include <rnwhisper/whisper.h>
|
|
23
|
+
#include <rnwhisper/rn-whisper.h>
|
|
24
|
+
#endif
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
namespace rnwhisper_jsi {
|
|
28
|
+
|
|
29
|
+
// Context management functions
|
|
30
|
+
void addContext(int contextId, long contextPtr);
|
|
31
|
+
void removeContext(int contextId);
|
|
32
|
+
void addVadContext(int contextId, long vadContextPtr);
|
|
33
|
+
void removeVadContext(int contextId);
|
|
34
|
+
|
|
35
|
+
// Main JSI installation function
|
|
36
|
+
void installJSIBindings(
|
|
37
|
+
facebook::jsi::Runtime& runtime,
|
|
38
|
+
std::shared_ptr<facebook::react::CallInvoker> callInvoker
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
// Cleanup function to dispose of ThreadPool
|
|
42
|
+
void cleanupJSIBindings();
|
|
43
|
+
|
|
44
|
+
} // namespace rnwhisper_jsi
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// From https://github.com/progschj/ThreadPool
|
|
2
|
+
|
|
3
|
+
#ifndef THREAD_POOL_H
|
|
4
|
+
#define THREAD_POOL_H
|
|
5
|
+
|
|
6
|
+
#include <vector>
|
|
7
|
+
#include <queue>
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <thread>
|
|
10
|
+
#include <mutex>
|
|
11
|
+
#include <condition_variable>
|
|
12
|
+
#include <future>
|
|
13
|
+
#include <functional>
|
|
14
|
+
#include <stdexcept>
|
|
15
|
+
|
|
16
|
+
class ThreadPool {
|
|
17
|
+
public:
|
|
18
|
+
ThreadPool(size_t);
|
|
19
|
+
template<class F, class... Args>
|
|
20
|
+
auto enqueue(F&& f, Args&&... args)
|
|
21
|
+
-> std::future<typename std::result_of<F(Args...)>::type>;
|
|
22
|
+
~ThreadPool();
|
|
23
|
+
private:
|
|
24
|
+
// need to keep track of threads so we can join them
|
|
25
|
+
std::vector< std::thread > workers;
|
|
26
|
+
// the task queue
|
|
27
|
+
std::queue< std::function<void()> > tasks;
|
|
28
|
+
|
|
29
|
+
// synchronization
|
|
30
|
+
std::mutex queue_mutex;
|
|
31
|
+
std::condition_variable condition;
|
|
32
|
+
bool stop;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// the constructor just launches some amount of workers
|
|
36
|
+
inline ThreadPool::ThreadPool(size_t threads)
|
|
37
|
+
: stop(false)
|
|
38
|
+
{
|
|
39
|
+
for(size_t i = 0;i<threads;++i)
|
|
40
|
+
workers.emplace_back(
|
|
41
|
+
[this]
|
|
42
|
+
{
|
|
43
|
+
for(;;)
|
|
44
|
+
{
|
|
45
|
+
std::function<void()> task;
|
|
46
|
+
|
|
47
|
+
{
|
|
48
|
+
std::unique_lock<std::mutex> lock(this->queue_mutex);
|
|
49
|
+
this->condition.wait(lock,
|
|
50
|
+
[this]{ return this->stop || !this->tasks.empty(); });
|
|
51
|
+
if(this->stop && this->tasks.empty())
|
|
52
|
+
return;
|
|
53
|
+
task = std::move(this->tasks.front());
|
|
54
|
+
this->tasks.pop();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
task();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// add new work item to the pool
|
|
64
|
+
template<class F, class... Args>
|
|
65
|
+
auto ThreadPool::enqueue(F&& f, Args&&... args)
|
|
66
|
+
-> std::future<typename std::result_of<F(Args...)>::type>
|
|
67
|
+
{
|
|
68
|
+
using return_type = typename std::result_of<F(Args...)>::type;
|
|
69
|
+
|
|
70
|
+
auto task = std::make_shared< std::packaged_task<return_type()> >(
|
|
71
|
+
std::bind(std::forward<F>(f), std::forward<Args>(args)...)
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
std::future<return_type> res = task->get_future();
|
|
75
|
+
{
|
|
76
|
+
std::unique_lock<std::mutex> lock(queue_mutex);
|
|
77
|
+
|
|
78
|
+
// don't allow enqueueing after stopping the pool
|
|
79
|
+
if(stop)
|
|
80
|
+
throw std::runtime_error("enqueue on stopped ThreadPool");
|
|
81
|
+
|
|
82
|
+
tasks.emplace([task](){ (*task)(); });
|
|
83
|
+
}
|
|
84
|
+
condition.notify_one();
|
|
85
|
+
return res;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// the destructor joins all threads
|
|
89
|
+
inline ThreadPool::~ThreadPool()
|
|
90
|
+
{
|
|
91
|
+
{
|
|
92
|
+
std::unique_lock<std::mutex> lock(queue_mutex);
|
|
93
|
+
stop = true;
|
|
94
|
+
}
|
|
95
|
+
condition.notify_all();
|
|
96
|
+
for(std::thread &worker: workers)
|
|
97
|
+
worker.join();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
#endif
|
package/ios/RNWhisper.h
CHANGED
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
#endif
|
|
9
9
|
#endif
|
|
10
10
|
|
|
11
|
+
#import <Foundation/Foundation.h>
|
|
11
12
|
#import <React/RCTBridgeModule.h>
|
|
13
|
+
#import <React/RCTBridge+Private.h>
|
|
12
14
|
#import <React/RCTEventEmitter.h>
|
|
15
|
+
#import <ReactCommon/RCTTurboModule.h>
|
|
13
16
|
|
|
14
17
|
@interface RNWhisper : RCTEventEmitter <RCTBridgeModule>
|
|
15
18
|
|
package/ios/RNWhisper.mm
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
#import "RNWhisperDownloader.h"
|
|
5
5
|
#import "RNWhisperAudioUtils.h"
|
|
6
6
|
#import "RNWhisperAudioSessionUtils.h"
|
|
7
|
+
#import "RNWhisperJSI.h"
|
|
7
8
|
#include <stdlib.h>
|
|
8
9
|
#include <string>
|
|
9
10
|
|
|
@@ -90,6 +91,8 @@ RCT_REMAP_METHOD(initContext,
|
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
[contexts setObject:context forKey:[NSNumber numberWithInt:contextId]];
|
|
94
|
+
// Also add to unified context management - store raw context pointer like Android
|
|
95
|
+
rnwhisper_jsi::addContext(contextId, reinterpret_cast<long>([context getContext]));
|
|
93
96
|
|
|
94
97
|
resolve(@{
|
|
95
98
|
@"contextId": @(contextId),
|
|
@@ -345,6 +348,8 @@ RCT_REMAP_METHOD(releaseContext,
|
|
|
345
348
|
}
|
|
346
349
|
[context invalidate];
|
|
347
350
|
[contexts removeObjectForKey:[NSNumber numberWithInt:contextId]];
|
|
351
|
+
// Also remove from unified context management
|
|
352
|
+
rnwhisper_jsi::removeContext(contextId);
|
|
348
353
|
resolve(nil);
|
|
349
354
|
}
|
|
350
355
|
|
|
@@ -455,6 +460,8 @@ RCT_REMAP_METHOD(initVadContext,
|
|
|
455
460
|
}
|
|
456
461
|
|
|
457
462
|
[vadContexts setObject:vadContext forKey:[NSNumber numberWithInt:contextId]];
|
|
463
|
+
// Also add to unified context management - store raw VAD context pointer like Android
|
|
464
|
+
rnwhisper_jsi::addVadContext(contextId, reinterpret_cast<long>([vadContext getVadContext]));
|
|
458
465
|
|
|
459
466
|
resolve(@{
|
|
460
467
|
@"contextId": @(contextId),
|
|
@@ -539,6 +546,8 @@ RCT_REMAP_METHOD(releaseVadContext,
|
|
|
539
546
|
}
|
|
540
547
|
[vadContext invalidate];
|
|
541
548
|
[vadContexts removeObjectForKey:[NSNumber numberWithInt:contextId]];
|
|
549
|
+
// Also remove from unified context management
|
|
550
|
+
rnwhisper_jsi::removeVadContext(contextId);
|
|
542
551
|
resolve(nil);
|
|
543
552
|
}
|
|
544
553
|
|
|
@@ -572,6 +581,35 @@ RCT_EXPORT_METHOD(releaseAllVadContexts:(RCTPromiseResolveBlock)resolve
|
|
|
572
581
|
}
|
|
573
582
|
}
|
|
574
583
|
|
|
584
|
+
RCT_EXPORT_METHOD(installJSIBindings:(RCTPromiseResolveBlock)resolve
|
|
585
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
586
|
+
{
|
|
587
|
+
RCTBridge *bridge = [RCTBridge currentBridge];
|
|
588
|
+
if (bridge == nil) {
|
|
589
|
+
reject(@"whisper_jsi_error", @"Bridge not available", nil);
|
|
590
|
+
return;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
RCTCxxBridge *cxxBridge = (RCTCxxBridge *)bridge;
|
|
594
|
+
auto callInvoker = bridge.jsCallInvoker;
|
|
595
|
+
if (cxxBridge.runtime) {
|
|
596
|
+
facebook::jsi::Runtime *runtime = static_cast<facebook::jsi::Runtime *>(cxxBridge.runtime);
|
|
597
|
+
|
|
598
|
+
if (callInvoker) {
|
|
599
|
+
callInvoker->invokeAsync([runtime, callInvoker]() {
|
|
600
|
+
rnwhisper_jsi::installJSIBindings(*runtime, callInvoker);
|
|
601
|
+
});
|
|
602
|
+
} else {
|
|
603
|
+
reject(@"whisper_jsi_error", @"CallInvoker not available", nil);
|
|
604
|
+
return;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
resolve(@{});
|
|
608
|
+
} else {
|
|
609
|
+
reject(@"whisper_jsi_error", @"Runtime not available", nil);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
|
|
575
613
|
- (void)invalidate {
|
|
576
614
|
[super invalidate];
|
|
577
615
|
|
package/jest/mock.js
CHANGED
|
@@ -2,6 +2,7 @@ const { NativeModules, DeviceEventEmitter } = require('react-native')
|
|
|
2
2
|
|
|
3
3
|
if (!NativeModules.RNWhisper) {
|
|
4
4
|
NativeModules.RNWhisper = {
|
|
5
|
+
installJSIBindings: jest.fn(() => Promise.resolve()),
|
|
5
6
|
initContext: jest.fn(() => Promise.resolve({ contextId: 1 })),
|
|
6
7
|
transcribeFile: jest.fn(() => Promise.resolve({
|
|
7
8
|
result: ' Test',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","get","exports","default"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAkD,IAAAC,QAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","get","exports","default"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAkD,IAAAC,QAAA,GA4JnCC,gCAAmB,CAACC,GAAG,CAAO,WAAW,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -21,6 +21,16 @@ var _AudioSessionIos = _interopRequireDefault(require("./AudioSessionIos"));
|
|
|
21
21
|
var _version = require("./version.json");
|
|
22
22
|
var _RNWhisper$getConstan;
|
|
23
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
let jsiWhisperTranscribeData;
|
|
25
|
+
let jsiWhisperVadDetectSpeech;
|
|
26
|
+
_NativeRNWhisper.default.installJSIBindings().then(() => {
|
|
27
|
+
jsiWhisperTranscribeData = global.whisperTranscribeData;
|
|
28
|
+
delete global.whisperTranscribeData;
|
|
29
|
+
jsiWhisperVadDetectSpeech = global.whisperVadDetectSpeech;
|
|
30
|
+
delete global.whisperVadDetectSpeech;
|
|
31
|
+
}).catch(e => {
|
|
32
|
+
console.warn('Failed to install JSI bindings', e);
|
|
33
|
+
});
|
|
24
34
|
let EventEmitter;
|
|
25
35
|
if (_reactNative.Platform.OS === 'ios') {
|
|
26
36
|
// @ts-ignore
|
|
@@ -45,10 +55,12 @@ class WhisperContext {
|
|
|
45
55
|
reasonNoGPU = '';
|
|
46
56
|
constructor(_ref) {
|
|
47
57
|
let {
|
|
58
|
+
contextPtr,
|
|
48
59
|
contextId,
|
|
49
60
|
gpu,
|
|
50
61
|
reasonNoGPU
|
|
51
62
|
} = _ref;
|
|
63
|
+
this.ptr = contextPtr;
|
|
52
64
|
this.id = contextId;
|
|
53
65
|
this.gpu = gpu;
|
|
54
66
|
this.reasonNoGPU = reasonNoGPU;
|
|
@@ -146,13 +158,72 @@ class WhisperContext {
|
|
|
146
158
|
}
|
|
147
159
|
|
|
148
160
|
/**
|
|
149
|
-
* Transcribe audio data (base64 encoded float32 PCM data)
|
|
161
|
+
* Transcribe audio data (base64 encoded float32 PCM data or ArrayBuffer)
|
|
150
162
|
*/
|
|
151
163
|
transcribeData(data) {
|
|
152
164
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
165
|
+
if (data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {
|
|
166
|
+
// Use JSI function for ArrayBuffer
|
|
167
|
+
if (!jsiWhisperTranscribeData) {
|
|
168
|
+
throw new Error('JSI binding `whisperTranscribeData` not installed');
|
|
169
|
+
}
|
|
170
|
+
return this.transcribeDataArrayBuffer(data, options);
|
|
171
|
+
}
|
|
153
172
|
return this.transcribeWithNativeMethod('transcribeData', data, options);
|
|
154
173
|
}
|
|
155
174
|
|
|
175
|
+
/**
|
|
176
|
+
* Transcribe audio data from ArrayBuffer (16-bit PCM, mono, 16kHz)
|
|
177
|
+
*/
|
|
178
|
+
transcribeDataArrayBuffer(data) {
|
|
179
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
180
|
+
const {
|
|
181
|
+
onProgress,
|
|
182
|
+
onNewSegments,
|
|
183
|
+
...rest
|
|
184
|
+
} = options;
|
|
185
|
+
|
|
186
|
+
// Generate a unique jobId for this transcription
|
|
187
|
+
const jobId = Math.floor(Math.random() * 10000);
|
|
188
|
+
const jsiOptions = {
|
|
189
|
+
...rest,
|
|
190
|
+
onProgress: onProgress || undefined,
|
|
191
|
+
onNewSegments: onNewSegments || undefined,
|
|
192
|
+
jobId // Pass jobId to native implementation
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
let isAborted = false;
|
|
196
|
+
const promise = jsiWhisperTranscribeData(this.id, jsiOptions, data).then(result => {
|
|
197
|
+
if (isAborted) {
|
|
198
|
+
return {
|
|
199
|
+
...result,
|
|
200
|
+
isAborted: true
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
return result;
|
|
204
|
+
}).catch(error => {
|
|
205
|
+
if (isAborted) {
|
|
206
|
+
return {
|
|
207
|
+
isAborted: true,
|
|
208
|
+
error: 'Transcription aborted'
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
throw error;
|
|
212
|
+
});
|
|
213
|
+
return {
|
|
214
|
+
stop: async () => {
|
|
215
|
+
isAborted = true;
|
|
216
|
+
try {
|
|
217
|
+
// Use the existing native abort method
|
|
218
|
+
await _NativeRNWhisper.default.abortTranscribe(this.id, jobId);
|
|
219
|
+
} catch (error) {
|
|
220
|
+
// Ignore errors if context is already released or job doesn't exist
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
promise
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
|
|
156
227
|
/** Transcribe the microphone audio stream, the microphone user permission is required */
|
|
157
228
|
async transcribeRealtime() {
|
|
158
229
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -350,6 +421,7 @@ async function initWhisper(_ref2) {
|
|
|
350
421
|
}
|
|
351
422
|
if (path.startsWith('file://')) path = path.slice(7);
|
|
352
423
|
const {
|
|
424
|
+
contextPtr,
|
|
353
425
|
contextId,
|
|
354
426
|
gpu,
|
|
355
427
|
reasonNoGPU
|
|
@@ -364,6 +436,7 @@ async function initWhisper(_ref2) {
|
|
|
364
436
|
coreMLAssets
|
|
365
437
|
});
|
|
366
438
|
return new WhisperContext({
|
|
439
|
+
contextPtr,
|
|
367
440
|
contextId,
|
|
368
441
|
gpu,
|
|
369
442
|
reasonNoGPU
|
|
@@ -433,10 +506,18 @@ class WhisperVadContext {
|
|
|
433
506
|
}
|
|
434
507
|
|
|
435
508
|
/**
|
|
436
|
-
* Detect speech segments in raw audio data (base64 encoded float32 PCM data)
|
|
509
|
+
* Detect speech segments in raw audio data (base64 encoded float32 PCM data or ArrayBuffer)
|
|
437
510
|
*/
|
|
438
511
|
async detectSpeechData(audioData) {
|
|
439
512
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
513
|
+
if (audioData instanceof ArrayBuffer || audioData instanceof SharedArrayBuffer) {
|
|
514
|
+
// Use JSI function for ArrayBuffer
|
|
515
|
+
if (!jsiWhisperVadDetectSpeech) {
|
|
516
|
+
throw new Error('JSI binding `whisperVadDetectSpeech` not installed');
|
|
517
|
+
}
|
|
518
|
+
const result = await jsiWhisperVadDetectSpeech(this.id, options, audioData);
|
|
519
|
+
return result.segments || [];
|
|
520
|
+
}
|
|
440
521
|
return _NativeRNWhisper.default.vadDetectSpeech(this.id, audioData, options);
|
|
441
522
|
}
|
|
442
523
|
async release() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_AudioSessionIos","_version","_RNWhisper$getConstan","obj","__esModule","default","EventEmitter","Platform","OS","NativeEventEmitter","RNWhisper","DeviceEventEmitter","EVENT_ON_TRANSCRIBE_PROGRESS","EVENT_ON_TRANSCRIBE_NEW_SEGMENTS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","updateAudioSession","setting","AudioSessionIos","setCategory","category","options","mode","setMode","setActive","active","WhisperContext","gpu","reasonNoGPU","constructor","_ref","contextId","id","transcribeWithNativeMethod","method","data","arguments","length","undefined","jobId","Math","floor","random","onProgress","onNewSegments","rest","progressListener","lastProgress","addListener","evt","progress","removeProgressListener","remove","newSegmentsListener","result","removeNewSegmenetsListener","stop","abortTranscribe","promise","then","isAborted","catch","e","transcribe","filePathOrBase64","path","source","Image","resolveAssetSource","uri","Error","startsWith","slice","transcribeData","transcribeRealtime","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","processTime","recordingTime","prevAudioSession","audioSessionOnStartIos","audioSessionOnStopIos","categoryResult","getCurrentCategory","getCurrentMode","startRealtimeTranscribe","subscribe","callback","transcribeListener","endListener","lastPayload","isCapturing","bench","maxThreads","config","nThreads","encodeMs","decodeMs","batchMs","promptMs","JSON","parse","release","releaseContext","exports","coreMLModelAssetPaths","initWhisper","_ref2","filePath","coreMLModelAsset","isBundleAsset","useGpu","useCoreMLIos","useFlashAttn","coreMLAssets","filename","assets","asset","filepath","find","p","includes","filter","initContext","downloadCoreMLAssets","__DEV__","releaseAllWhisper","releaseAllContexts","libVersion","version","useCoreML","coreMLAllowFallback","getConstants","call","isUseCoreML","isCoreMLAllowFallback","WhisperVadContext","_ref3","detectSpeech","vadDetectSpeech","vadDetectSpeechFile","detectSpeechData","audioData","releaseVadContext","initWhisperVad","_ref4","initVadContext","releaseAllWhisperVad","releaseAllVadContexts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_AudioSessionIos","_version","_RNWhisper$getConstan","obj","__esModule","default","jsiWhisperTranscribeData","jsiWhisperVadDetectSpeech","RNWhisper","installJSIBindings","then","global","whisperTranscribeData","whisperVadDetectSpeech","catch","e","console","warn","EventEmitter","Platform","OS","NativeEventEmitter","DeviceEventEmitter","EVENT_ON_TRANSCRIBE_PROGRESS","EVENT_ON_TRANSCRIBE_NEW_SEGMENTS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","updateAudioSession","setting","AudioSessionIos","setCategory","category","options","mode","setMode","setActive","active","WhisperContext","gpu","reasonNoGPU","constructor","_ref","contextPtr","contextId","ptr","id","transcribeWithNativeMethod","method","data","arguments","length","undefined","jobId","Math","floor","random","onProgress","onNewSegments","rest","progressListener","lastProgress","addListener","evt","progress","removeProgressListener","remove","newSegmentsListener","result","removeNewSegmenetsListener","stop","abortTranscribe","promise","isAborted","transcribe","filePathOrBase64","path","source","Image","resolveAssetSource","uri","Error","startsWith","slice","transcribeData","ArrayBuffer","SharedArrayBuffer","transcribeDataArrayBuffer","jsiOptions","error","transcribeRealtime","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","processTime","recordingTime","prevAudioSession","audioSessionOnStartIos","audioSessionOnStopIos","categoryResult","getCurrentCategory","getCurrentMode","startRealtimeTranscribe","subscribe","callback","transcribeListener","endListener","lastPayload","isCapturing","bench","maxThreads","config","nThreads","encodeMs","decodeMs","batchMs","promptMs","JSON","parse","release","releaseContext","exports","coreMLModelAssetPaths","initWhisper","_ref2","filePath","coreMLModelAsset","isBundleAsset","useGpu","useCoreMLIos","useFlashAttn","coreMLAssets","filename","assets","asset","filepath","find","p","includes","filter","initContext","downloadCoreMLAssets","__DEV__","releaseAllWhisper","releaseAllContexts","libVersion","version","useCoreML","coreMLAllowFallback","getConstants","call","isUseCoreML","isCoreMLAllowFallback","WhisperVadContext","_ref3","detectSpeech","vadDetectSpeech","vadDetectSpeechFile","detectSpeechData","audioData","releaseVadContext","initWhisperVad","_ref4","initVadContext","releaseAllWhisperVad","releaseAllVadContexts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;;AA0JA,eAAeA,mBAAmB,CAACC,GAAG,CAAO,WAAW,CAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -3,6 +3,16 @@ import { NativeEventEmitter, DeviceEventEmitter, Platform, Image } from 'react-n
|
|
|
3
3
|
import RNWhisper from './NativeRNWhisper';
|
|
4
4
|
import AudioSessionIos from './AudioSessionIos';
|
|
5
5
|
import { version } from './version.json';
|
|
6
|
+
let jsiWhisperTranscribeData;
|
|
7
|
+
let jsiWhisperVadDetectSpeech;
|
|
8
|
+
RNWhisper.installJSIBindings().then(() => {
|
|
9
|
+
jsiWhisperTranscribeData = global.whisperTranscribeData;
|
|
10
|
+
delete global.whisperTranscribeData;
|
|
11
|
+
jsiWhisperVadDetectSpeech = global.whisperVadDetectSpeech;
|
|
12
|
+
delete global.whisperVadDetectSpeech;
|
|
13
|
+
}).catch(e => {
|
|
14
|
+
console.warn('Failed to install JSI bindings', e);
|
|
15
|
+
});
|
|
6
16
|
let EventEmitter;
|
|
7
17
|
if (Platform.OS === 'ios') {
|
|
8
18
|
// @ts-ignore
|
|
@@ -27,10 +37,12 @@ export class WhisperContext {
|
|
|
27
37
|
reasonNoGPU = '';
|
|
28
38
|
constructor(_ref) {
|
|
29
39
|
let {
|
|
40
|
+
contextPtr,
|
|
30
41
|
contextId,
|
|
31
42
|
gpu,
|
|
32
43
|
reasonNoGPU
|
|
33
44
|
} = _ref;
|
|
45
|
+
this.ptr = contextPtr;
|
|
34
46
|
this.id = contextId;
|
|
35
47
|
this.gpu = gpu;
|
|
36
48
|
this.reasonNoGPU = reasonNoGPU;
|
|
@@ -128,13 +140,72 @@ export class WhisperContext {
|
|
|
128
140
|
}
|
|
129
141
|
|
|
130
142
|
/**
|
|
131
|
-
* Transcribe audio data (base64 encoded float32 PCM data)
|
|
143
|
+
* Transcribe audio data (base64 encoded float32 PCM data or ArrayBuffer)
|
|
132
144
|
*/
|
|
133
145
|
transcribeData(data) {
|
|
134
146
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
147
|
+
if (data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {
|
|
148
|
+
// Use JSI function for ArrayBuffer
|
|
149
|
+
if (!jsiWhisperTranscribeData) {
|
|
150
|
+
throw new Error('JSI binding `whisperTranscribeData` not installed');
|
|
151
|
+
}
|
|
152
|
+
return this.transcribeDataArrayBuffer(data, options);
|
|
153
|
+
}
|
|
135
154
|
return this.transcribeWithNativeMethod('transcribeData', data, options);
|
|
136
155
|
}
|
|
137
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Transcribe audio data from ArrayBuffer (16-bit PCM, mono, 16kHz)
|
|
159
|
+
*/
|
|
160
|
+
transcribeDataArrayBuffer(data) {
|
|
161
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
162
|
+
const {
|
|
163
|
+
onProgress,
|
|
164
|
+
onNewSegments,
|
|
165
|
+
...rest
|
|
166
|
+
} = options;
|
|
167
|
+
|
|
168
|
+
// Generate a unique jobId for this transcription
|
|
169
|
+
const jobId = Math.floor(Math.random() * 10000);
|
|
170
|
+
const jsiOptions = {
|
|
171
|
+
...rest,
|
|
172
|
+
onProgress: onProgress || undefined,
|
|
173
|
+
onNewSegments: onNewSegments || undefined,
|
|
174
|
+
jobId // Pass jobId to native implementation
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
let isAborted = false;
|
|
178
|
+
const promise = jsiWhisperTranscribeData(this.id, jsiOptions, data).then(result => {
|
|
179
|
+
if (isAborted) {
|
|
180
|
+
return {
|
|
181
|
+
...result,
|
|
182
|
+
isAborted: true
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
return result;
|
|
186
|
+
}).catch(error => {
|
|
187
|
+
if (isAborted) {
|
|
188
|
+
return {
|
|
189
|
+
isAborted: true,
|
|
190
|
+
error: 'Transcription aborted'
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
throw error;
|
|
194
|
+
});
|
|
195
|
+
return {
|
|
196
|
+
stop: async () => {
|
|
197
|
+
isAborted = true;
|
|
198
|
+
try {
|
|
199
|
+
// Use the existing native abort method
|
|
200
|
+
await RNWhisper.abortTranscribe(this.id, jobId);
|
|
201
|
+
} catch (error) {
|
|
202
|
+
// Ignore errors if context is already released or job doesn't exist
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
promise
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
|
|
138
209
|
/** Transcribe the microphone audio stream, the microphone user permission is required */
|
|
139
210
|
async transcribeRealtime() {
|
|
140
211
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -331,6 +402,7 @@ export async function initWhisper(_ref2) {
|
|
|
331
402
|
}
|
|
332
403
|
if (path.startsWith('file://')) path = path.slice(7);
|
|
333
404
|
const {
|
|
405
|
+
contextPtr,
|
|
334
406
|
contextId,
|
|
335
407
|
gpu,
|
|
336
408
|
reasonNoGPU
|
|
@@ -345,6 +417,7 @@ export async function initWhisper(_ref2) {
|
|
|
345
417
|
coreMLAssets
|
|
346
418
|
});
|
|
347
419
|
return new WhisperContext({
|
|
420
|
+
contextPtr,
|
|
348
421
|
contextId,
|
|
349
422
|
gpu,
|
|
350
423
|
reasonNoGPU
|
|
@@ -417,10 +490,18 @@ export class WhisperVadContext {
|
|
|
417
490
|
}
|
|
418
491
|
|
|
419
492
|
/**
|
|
420
|
-
* Detect speech segments in raw audio data (base64 encoded float32 PCM data)
|
|
493
|
+
* Detect speech segments in raw audio data (base64 encoded float32 PCM data or ArrayBuffer)
|
|
421
494
|
*/
|
|
422
495
|
async detectSpeechData(audioData) {
|
|
423
496
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
497
|
+
if (audioData instanceof ArrayBuffer || audioData instanceof SharedArrayBuffer) {
|
|
498
|
+
// Use JSI function for ArrayBuffer
|
|
499
|
+
if (!jsiWhisperVadDetectSpeech) {
|
|
500
|
+
throw new Error('JSI binding `whisperVadDetectSpeech` not installed');
|
|
501
|
+
}
|
|
502
|
+
const result = await jsiWhisperVadDetectSpeech(this.id, options, audioData);
|
|
503
|
+
return result.segments || [];
|
|
504
|
+
}
|
|
424
505
|
return RNWhisper.vadDetectSpeech(this.id, audioData, options);
|
|
425
506
|
}
|
|
426
507
|
async release() {
|