whisper.rn 0.3.0-rc.5 → 0.3.0-rc.6
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 +72 -9
- package/android/src/main/java/com/rnwhisper/Downloader.java +83 -0
- package/android/src/main/java/com/rnwhisper/WhisperContext.java +9 -9
- package/android/src/main/jni/whisper/jni.cpp +102 -0
- package/android/src/newarch/java/com/rnwhisper/RNWhisperModule.java +59 -5
- package/android/src/oldarch/java/com/rnwhisper/RNWhisperModule.java +59 -5
- package/ios/RNWhisper.mm +32 -7
- package/ios/RNWhisperDownloader.h +8 -0
- package/ios/RNWhisperDownloader.m +39 -0
- package/lib/commonjs/NativeRNWhisper.js.map +1 -1
- package/lib/commonjs/index.js +61 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeRNWhisper.js.map +1 -1
- package/lib/module/index.js +62 -3
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/NativeRNWhisper.d.ts +11 -1
- package/lib/typescript/NativeRNWhisper.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +15 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeRNWhisper.ts +13 -1
- package/src/index.ts +156 -64
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#import "RNWhisperDownloader.h"
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* NOTE: This is simple downloader,
|
|
5
|
+
* the main purpose is supported load assets on RN Debug mode,
|
|
6
|
+
* so it's a very crude implementation.
|
|
7
|
+
*
|
|
8
|
+
* If you want to use file download in production to load model / audio files,
|
|
9
|
+
* I would recommend using react-native-fs or expo-file-system to manage the files.
|
|
10
|
+
*/
|
|
11
|
+
@implementation RNWhisperDownloader
|
|
12
|
+
|
|
13
|
+
+ (NSString *)downloadFile:(NSString *)urlString toFile:(NSString *)path {
|
|
14
|
+
NSURL *url = [NSURL URLWithString:urlString];
|
|
15
|
+
NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"rnwhisper_debug_assets/"];
|
|
16
|
+
if (path) {
|
|
17
|
+
filePath = [filePath stringByAppendingPathComponent:path];
|
|
18
|
+
} else {
|
|
19
|
+
filePath = [filePath stringByAppendingPathComponent:[url lastPathComponent]];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
NSString *folderPath = [filePath stringByDeletingLastPathComponent];
|
|
23
|
+
if (![[NSFileManager defaultManager] fileExistsAtPath:folderPath]) {
|
|
24
|
+
[[NSFileManager defaultManager] createDirectoryAtPath:folderPath withIntermediateDirectories:YES attributes:nil error:nil];
|
|
25
|
+
}
|
|
26
|
+
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
|
|
27
|
+
return filePath;
|
|
28
|
+
}
|
|
29
|
+
NSData *urlData = [NSData dataWithContentsOfURL:url];
|
|
30
|
+
[urlData writeToFile:filePath atomically:YES];
|
|
31
|
+
return filePath;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
+ (void)clearCache {
|
|
35
|
+
NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"rnwhisper_debug_assets/"];
|
|
36
|
+
[[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@end
|
|
@@ -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,GA6EnCC,gCAAmB,CAACC,GAAG,CAAO,WAAW,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -28,8 +28,21 @@ class WhisperContext {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
/** Transcribe audio file */
|
|
31
|
-
transcribe(
|
|
31
|
+
transcribe(filePath) {
|
|
32
32
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
33
|
+
let path = '';
|
|
34
|
+
if (typeof filePath === 'number') {
|
|
35
|
+
try {
|
|
36
|
+
const source = _reactNative.Image.resolveAssetSource(filePath);
|
|
37
|
+
if (source) path = source.uri;
|
|
38
|
+
} catch (e) {
|
|
39
|
+
throw new Error(`Invalid asset: ${filePath}`);
|
|
40
|
+
}
|
|
41
|
+
} else {
|
|
42
|
+
if (filePath.startsWith('http')) throw new Error('Transcribe remote file is not supported, please download it first');
|
|
43
|
+
path = filePath;
|
|
44
|
+
}
|
|
45
|
+
if (path.startsWith('file://')) path = path.slice(7);
|
|
33
46
|
const jobId = Math.floor(Math.random() * 10000);
|
|
34
47
|
return {
|
|
35
48
|
stop: () => _NativeRNWhisper.default.abortTranscribe(this.id, jobId),
|
|
@@ -55,6 +68,7 @@ class WhisperContext {
|
|
|
55
68
|
} = ((_slices$sliceIndex = slices[sliceIndex]) === null || _slices$sliceIndex === void 0 ? void 0 : _slices$sliceIndex.data) || {};
|
|
56
69
|
tOffset = ((_segments = segments[segments.length - 1]) === null || _segments === void 0 ? void 0 : _segments.t1) || 0;
|
|
57
70
|
}
|
|
71
|
+
;
|
|
58
72
|
({
|
|
59
73
|
sliceIndex
|
|
60
74
|
} = payload);
|
|
@@ -139,12 +153,57 @@ class WhisperContext {
|
|
|
139
153
|
}
|
|
140
154
|
}
|
|
141
155
|
exports.WhisperContext = WhisperContext;
|
|
156
|
+
const coreMLModelAssetPaths = ['analytics/coremldata.bin', 'weights/weight.bin', 'model.mil', 'coremldata.bin'];
|
|
142
157
|
async function initWhisper(_ref) {
|
|
143
158
|
let {
|
|
144
159
|
filePath,
|
|
160
|
+
coreMLModelAsset,
|
|
145
161
|
isBundleAsset
|
|
146
162
|
} = _ref;
|
|
147
|
-
|
|
163
|
+
let path = '';
|
|
164
|
+
let coreMLAssets;
|
|
165
|
+
if (coreMLModelAsset) {
|
|
166
|
+
const {
|
|
167
|
+
filename,
|
|
168
|
+
assets
|
|
169
|
+
} = coreMLModelAsset;
|
|
170
|
+
if (filename && assets) {
|
|
171
|
+
coreMLAssets = assets === null || assets === void 0 ? void 0 : assets.map(asset => {
|
|
172
|
+
const {
|
|
173
|
+
uri
|
|
174
|
+
} = _reactNative.Image.resolveAssetSource(asset);
|
|
175
|
+
const filepath = coreMLModelAssetPaths.find(p => uri.includes(p));
|
|
176
|
+
if (filepath) {
|
|
177
|
+
return {
|
|
178
|
+
uri,
|
|
179
|
+
filepath: `${filename}/${filepath}`
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return undefined;
|
|
183
|
+
}).filter(asset => asset !== undefined);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (typeof filePath === 'number') {
|
|
187
|
+
try {
|
|
188
|
+
const source = _reactNative.Image.resolveAssetSource(filePath);
|
|
189
|
+
if (source) {
|
|
190
|
+
path = source.uri;
|
|
191
|
+
}
|
|
192
|
+
} catch (e) {
|
|
193
|
+
throw new Error(`Invalid asset: ${filePath}`);
|
|
194
|
+
}
|
|
195
|
+
} else {
|
|
196
|
+
if (!isBundleAsset && filePath.startsWith('http')) throw new Error('Transcribe remote file is not supported, please download it first');
|
|
197
|
+
path = filePath;
|
|
198
|
+
}
|
|
199
|
+
if (path.startsWith('file://')) path = path.slice(7);
|
|
200
|
+
const id = await _NativeRNWhisper.default.initContext({
|
|
201
|
+
filePath: path,
|
|
202
|
+
isBundleAsset: !!isBundleAsset,
|
|
203
|
+
// Only development mode need download Core ML model assets (from packager server)
|
|
204
|
+
downloadCoreMLAssets: __DEV__ && !!coreMLAssets,
|
|
205
|
+
coreMLAssets
|
|
206
|
+
});
|
|
148
207
|
return new WhisperContext(id);
|
|
149
208
|
}
|
|
150
209
|
async function releaseAllWhisper() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_version","_RNWhisper$getConstan","obj","__esModule","default","EventEmitter","Platform","OS","NativeEventEmitter","RNWhisper","DeviceEventEmitter","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_version","_RNWhisper$getConstan","obj","__esModule","default","EventEmitter","Platform","OS","NativeEventEmitter","RNWhisper","DeviceEventEmitter","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","filePath","options","arguments","length","undefined","path","source","Image","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","stop","abortTranscribe","promise","transcribeFile","transcribeRealtime","startRealtimeTranscribe","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","data","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","result","processTime","recordingTime","subscribe","callback","transcribeListener","addListener","evt","contextId","endListener","lastPayload","isCapturing","remove","release","releaseContext","exports","coreMLModelAssetPaths","initWhisper","_ref","coreMLModelAsset","isBundleAsset","coreMLAssets","filename","assets","asset","filepath","find","p","includes","filter","initContext","downloadCoreMLAssets","__DEV__","releaseAllWhisper","releaseAllContexts","libVersion","version","useCoreML","coreMLAllowFallback","getConstants","call","isUseCoreML","isCoreMLAllowFallback"],"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;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AA6ElD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,WAAW,CAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var _RNWhisper$getConstan;
|
|
2
|
-
import { NativeEventEmitter, DeviceEventEmitter, Platform } from 'react-native';
|
|
2
|
+
import { NativeEventEmitter, DeviceEventEmitter, Platform, Image } from 'react-native';
|
|
3
3
|
import RNWhisper from './NativeRNWhisper';
|
|
4
4
|
import { version } from './version.json';
|
|
5
5
|
let EventEmitter;
|
|
@@ -18,8 +18,21 @@ export class WhisperContext {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/** Transcribe audio file */
|
|
21
|
-
transcribe(
|
|
21
|
+
transcribe(filePath) {
|
|
22
22
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
23
|
+
let path = '';
|
|
24
|
+
if (typeof filePath === 'number') {
|
|
25
|
+
try {
|
|
26
|
+
const source = Image.resolveAssetSource(filePath);
|
|
27
|
+
if (source) path = source.uri;
|
|
28
|
+
} catch (e) {
|
|
29
|
+
throw new Error(`Invalid asset: ${filePath}`);
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
if (filePath.startsWith('http')) throw new Error('Transcribe remote file is not supported, please download it first');
|
|
33
|
+
path = filePath;
|
|
34
|
+
}
|
|
35
|
+
if (path.startsWith('file://')) path = path.slice(7);
|
|
23
36
|
const jobId = Math.floor(Math.random() * 10000);
|
|
24
37
|
return {
|
|
25
38
|
stop: () => RNWhisper.abortTranscribe(this.id, jobId),
|
|
@@ -45,6 +58,7 @@ export class WhisperContext {
|
|
|
45
58
|
} = ((_slices$sliceIndex = slices[sliceIndex]) === null || _slices$sliceIndex === void 0 ? void 0 : _slices$sliceIndex.data) || {};
|
|
46
59
|
tOffset = ((_segments = segments[segments.length - 1]) === null || _segments === void 0 ? void 0 : _segments.t1) || 0;
|
|
47
60
|
}
|
|
61
|
+
;
|
|
48
62
|
({
|
|
49
63
|
sliceIndex
|
|
50
64
|
} = payload);
|
|
@@ -128,12 +142,57 @@ export class WhisperContext {
|
|
|
128
142
|
return RNWhisper.releaseContext(this.id);
|
|
129
143
|
}
|
|
130
144
|
}
|
|
145
|
+
const coreMLModelAssetPaths = ['analytics/coremldata.bin', 'weights/weight.bin', 'model.mil', 'coremldata.bin'];
|
|
131
146
|
export async function initWhisper(_ref) {
|
|
132
147
|
let {
|
|
133
148
|
filePath,
|
|
149
|
+
coreMLModelAsset,
|
|
134
150
|
isBundleAsset
|
|
135
151
|
} = _ref;
|
|
136
|
-
|
|
152
|
+
let path = '';
|
|
153
|
+
let coreMLAssets;
|
|
154
|
+
if (coreMLModelAsset) {
|
|
155
|
+
const {
|
|
156
|
+
filename,
|
|
157
|
+
assets
|
|
158
|
+
} = coreMLModelAsset;
|
|
159
|
+
if (filename && assets) {
|
|
160
|
+
coreMLAssets = assets === null || assets === void 0 ? void 0 : assets.map(asset => {
|
|
161
|
+
const {
|
|
162
|
+
uri
|
|
163
|
+
} = Image.resolveAssetSource(asset);
|
|
164
|
+
const filepath = coreMLModelAssetPaths.find(p => uri.includes(p));
|
|
165
|
+
if (filepath) {
|
|
166
|
+
return {
|
|
167
|
+
uri,
|
|
168
|
+
filepath: `${filename}/${filepath}`
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
return undefined;
|
|
172
|
+
}).filter(asset => asset !== undefined);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (typeof filePath === 'number') {
|
|
176
|
+
try {
|
|
177
|
+
const source = Image.resolveAssetSource(filePath);
|
|
178
|
+
if (source) {
|
|
179
|
+
path = source.uri;
|
|
180
|
+
}
|
|
181
|
+
} catch (e) {
|
|
182
|
+
throw new Error(`Invalid asset: ${filePath}`);
|
|
183
|
+
}
|
|
184
|
+
} else {
|
|
185
|
+
if (!isBundleAsset && filePath.startsWith('http')) throw new Error('Transcribe remote file is not supported, please download it first');
|
|
186
|
+
path = filePath;
|
|
187
|
+
}
|
|
188
|
+
if (path.startsWith('file://')) path = path.slice(7);
|
|
189
|
+
const id = await RNWhisper.initContext({
|
|
190
|
+
filePath: path,
|
|
191
|
+
isBundleAsset: !!isBundleAsset,
|
|
192
|
+
// Only development mode need download Core ML model assets (from packager server)
|
|
193
|
+
downloadCoreMLAssets: __DEV__ && !!coreMLAssets,
|
|
194
|
+
coreMLAssets
|
|
195
|
+
});
|
|
137
196
|
return new WhisperContext(id);
|
|
138
197
|
}
|
|
139
198
|
export async function releaseAllWhisper() {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","RNWhisper","version","EventEmitter","OS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","Image","RNWhisper","version","EventEmitter","OS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","filePath","options","arguments","length","undefined","path","source","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","stop","abortTranscribe","promise","transcribeFile","transcribeRealtime","startRealtimeTranscribe","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","data","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","result","processTime","recordingTime","subscribe","callback","transcribeListener","addListener","evt","contextId","endListener","lastPayload","isCapturing","remove","release","releaseContext","coreMLModelAssetPaths","initWhisper","_ref","coreMLModelAsset","isBundleAsset","coreMLAssets","filename","assets","asset","filepath","find","p","includes","filter","initContext","downloadCoreMLAssets","__DEV__","releaseAllWhisper","releaseAllContexts","libVersion","useCoreML","coreMLAllowFallback","_RNWhisper$getConstan","getConstants","call","isUseCoreML","isCoreMLAllowFallback"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
|
|
@@ -38,12 +38,22 @@ export type TranscribeResult = {
|
|
|
38
38
|
t1: number;
|
|
39
39
|
}>;
|
|
40
40
|
};
|
|
41
|
+
export type CoreMLAsset = {
|
|
42
|
+
uri: string;
|
|
43
|
+
filepath: string;
|
|
44
|
+
};
|
|
45
|
+
type NativeContextOptions = {
|
|
46
|
+
filePath: string;
|
|
47
|
+
isBundleAsset: boolean;
|
|
48
|
+
downloadCoreMLAssets?: boolean;
|
|
49
|
+
coreMLAssets?: CoreMLAsset[];
|
|
50
|
+
};
|
|
41
51
|
export interface Spec extends TurboModule {
|
|
42
52
|
getConstants(): {
|
|
43
53
|
useCoreML: boolean;
|
|
44
54
|
coreMLAllowFallback: boolean;
|
|
45
55
|
};
|
|
46
|
-
initContext(
|
|
56
|
+
initContext(options: NativeContextOptions): Promise<number>;
|
|
47
57
|
releaseContext(contextId: number): Promise<void>;
|
|
48
58
|
releaseAllContexts(): Promise<void>;
|
|
49
59
|
transcribeFile(contextId: number, jobId: number, path: string, options: TranscribeOptions): Promise<TranscribeResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeRNWhisper.d.ts","sourceRoot":"","sources":["../../src/NativeRNWhisper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAA;AAG/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;CACJ,CAAA;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,YAAY,IAAI;QACd,SAAS,EAAE,OAAO,CAAA;QAClB,mBAAmB,EAAE,OAAO,CAAA;KAC7B,CAAC;IACF,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"NativeRNWhisper.d.ts","sourceRoot":"","sources":["../../src/NativeRNWhisper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAA;AAG/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;CACJ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B,CAAA;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,YAAY,IAAI;QACd,SAAS,EAAE,OAAO,CAAA;QAClB,mBAAmB,EAAE,OAAO,CAAA;KAC7B,CAAC;IACF,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,uBAAuB,CACrB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;;AAED,wBAAiE"}
|
|
@@ -54,7 +54,7 @@ export declare class WhisperContext {
|
|
|
54
54
|
id: number;
|
|
55
55
|
constructor(id: number);
|
|
56
56
|
/** Transcribe audio file */
|
|
57
|
-
transcribe(
|
|
57
|
+
transcribe(filePath: string | number, options?: TranscribeOptions): {
|
|
58
58
|
/** Stop the transcribe */
|
|
59
59
|
stop: () => void;
|
|
60
60
|
/** Transcribe result promise */
|
|
@@ -69,10 +69,21 @@ export declare class WhisperContext {
|
|
|
69
69
|
}>;
|
|
70
70
|
release(): Promise<void>;
|
|
71
71
|
}
|
|
72
|
-
export
|
|
73
|
-
filePath: string;
|
|
72
|
+
export type ContextOptions = {
|
|
73
|
+
filePath: string | number;
|
|
74
|
+
/**
|
|
75
|
+
* CoreML model assets, if you're using `require` on filePath,
|
|
76
|
+
* use this option is required if you want to enable Core ML,
|
|
77
|
+
* you will need bundle weights/weight.bin, model.mil, coremldata.bin into app by `require`
|
|
78
|
+
*/
|
|
79
|
+
coreMLModelAsset?: {
|
|
80
|
+
filename: string;
|
|
81
|
+
assets: number[];
|
|
82
|
+
};
|
|
83
|
+
/** Is the file path a bundle asset for pure string filePath */
|
|
74
84
|
isBundleAsset?: boolean;
|
|
75
|
-
}
|
|
85
|
+
};
|
|
86
|
+
export declare function initWhisper({ filePath, coreMLModelAsset, isBundleAsset, }: ContextOptions): Promise<WhisperContext>;
|
|
76
87
|
export declare function releaseAllWhisper(): Promise<void>;
|
|
77
88
|
/** Current version of whisper.cpp */
|
|
78
89
|
export declare const libVersion: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAY1B,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;AAKnD,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IAC1D;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,gBAAgB,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAC,CAAA;CACH,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAA;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,+BAA+B,CAAA;CACzC,CAAA;AAED,qBAAa,cAAc;IACzB,EAAE,EAAE,MAAM,CAAA;gBAEE,EAAE,EAAE,MAAM;IAItB,4BAA4B;IAC5B,UAAU,CACR,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,OAAO,GAAE,iBAAsB,GAC9B;QACD,0BAA0B;QAC1B,IAAI,EAAE,MAAM,IAAI,CAAA;QAChB,gCAAgC;QAChC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;KACnC;IAsBD,yFAAyF;IACnF,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC;QACzE,mCAAmC;QACnC,IAAI,EAAE,MAAM,IAAI,CAAA;QAChB,8CAA8C;QAC9C,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,KAAK,IAAI,CAAA;KACxE,CAAC;IAqGI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;IACD,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AASD,wBAAsB,WAAW,CAAC,EAChC,QAAQ,EACR,gBAAgB,EAChB,aAAa,GACd,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA4C1C;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED,qCAAqC;AACrC,eAAO,MAAM,UAAU,EAAE,MAAgB,CAAA;AAIzC,kCAAkC;AAClC,eAAO,MAAM,WAAW,EAAE,OAAqB,CAAA;AAE/C,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,EAAE,OAA+B,CAAA"}
|
package/package.json
CHANGED
package/src/NativeRNWhisper.ts
CHANGED
|
@@ -42,12 +42,24 @@ export type TranscribeResult = {
|
|
|
42
42
|
}>,
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
export type CoreMLAsset = {
|
|
46
|
+
uri: string,
|
|
47
|
+
filepath: string,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
type NativeContextOptions = {
|
|
51
|
+
filePath: string,
|
|
52
|
+
isBundleAsset: boolean,
|
|
53
|
+
downloadCoreMLAssets?: boolean,
|
|
54
|
+
coreMLAssets?: CoreMLAsset[],
|
|
55
|
+
}
|
|
56
|
+
|
|
45
57
|
export interface Spec extends TurboModule {
|
|
46
58
|
getConstants(): {
|
|
47
59
|
useCoreML: boolean
|
|
48
60
|
coreMLAllowFallback: boolean
|
|
49
61
|
};
|
|
50
|
-
initContext(
|
|
62
|
+
initContext(options: NativeContextOptions): Promise<number>;
|
|
51
63
|
releaseContext(contextId: number): Promise<void>;
|
|
52
64
|
releaseAllContexts(): Promise<void>;
|
|
53
65
|
transcribeFile(
|