whisper.rn 0.5.0-rc.1 → 0.5.0-rc.3
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 +119 -50
- package/android/src/main/java/com/rnwhisper/RNWhisper.java +26 -0
- package/android/src/main/java/com/rnwhisper/WhisperContext.java +25 -0
- package/android/src/main/jni.cpp +81 -0
- package/android/src/newarch/java/com/rnwhisper/RNWhisperModule.java +5 -0
- package/android/src/oldarch/java/com/rnwhisper/RNWhisperModule.java +5 -0
- package/ios/RNWhisper.mm +11 -0
- package/ios/RNWhisperContext.h +1 -0
- package/ios/RNWhisperContext.mm +46 -0
- package/lib/commonjs/AudioSessionIos.js +2 -1
- package/lib/commonjs/AudioSessionIos.js.map +1 -1
- package/lib/commonjs/NativeRNWhisper.js.map +1 -1
- package/lib/commonjs/index.js +26 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/jest-mock.js +126 -0
- package/lib/commonjs/jest-mock.js.map +1 -0
- package/lib/commonjs/realtime-transcription/RealtimeTranscriber.js +831 -0
- package/lib/commonjs/realtime-transcription/RealtimeTranscriber.js.map +1 -0
- package/lib/commonjs/realtime-transcription/SliceManager.js +233 -0
- package/lib/commonjs/realtime-transcription/SliceManager.js.map +1 -0
- package/lib/commonjs/realtime-transcription/adapters/AudioPcmStreamAdapter.js +133 -0
- package/lib/commonjs/realtime-transcription/adapters/AudioPcmStreamAdapter.js.map +1 -0
- package/lib/commonjs/realtime-transcription/adapters/JestAudioStreamAdapter.js +201 -0
- package/lib/commonjs/realtime-transcription/adapters/JestAudioStreamAdapter.js.map +1 -0
- package/lib/commonjs/realtime-transcription/adapters/SimulateFileAudioStreamAdapter.js +309 -0
- package/lib/commonjs/realtime-transcription/adapters/SimulateFileAudioStreamAdapter.js.map +1 -0
- package/lib/commonjs/realtime-transcription/index.js +27 -0
- package/lib/commonjs/realtime-transcription/index.js.map +1 -0
- package/lib/commonjs/realtime-transcription/types.js +114 -0
- package/lib/commonjs/realtime-transcription/types.js.map +1 -0
- package/lib/commonjs/utils/WavFileReader.js +158 -0
- package/lib/commonjs/utils/WavFileReader.js.map +1 -0
- package/lib/commonjs/utils/WavFileWriter.js +181 -0
- package/lib/commonjs/utils/WavFileWriter.js.map +1 -0
- package/lib/commonjs/utils/common.js +25 -0
- package/lib/commonjs/utils/common.js.map +1 -0
- package/lib/module/AudioSessionIos.js +2 -1
- package/lib/module/AudioSessionIos.js.map +1 -1
- package/lib/module/NativeRNWhisper.js.map +1 -1
- package/lib/module/index.js +24 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/jest-mock.js +124 -0
- package/lib/module/jest-mock.js.map +1 -0
- package/lib/module/realtime-transcription/RealtimeTranscriber.js +825 -0
- package/lib/module/realtime-transcription/RealtimeTranscriber.js.map +1 -0
- package/lib/module/realtime-transcription/SliceManager.js +226 -0
- package/lib/module/realtime-transcription/SliceManager.js.map +1 -0
- package/lib/module/realtime-transcription/adapters/AudioPcmStreamAdapter.js +124 -0
- package/lib/module/realtime-transcription/adapters/AudioPcmStreamAdapter.js.map +1 -0
- package/lib/module/realtime-transcription/adapters/JestAudioStreamAdapter.js +194 -0
- package/lib/module/realtime-transcription/adapters/JestAudioStreamAdapter.js.map +1 -0
- package/lib/module/realtime-transcription/adapters/SimulateFileAudioStreamAdapter.js +302 -0
- package/lib/module/realtime-transcription/adapters/SimulateFileAudioStreamAdapter.js.map +1 -0
- package/lib/module/realtime-transcription/index.js +8 -0
- package/lib/module/realtime-transcription/index.js.map +1 -0
- package/lib/module/realtime-transcription/types.js +107 -0
- package/lib/module/realtime-transcription/types.js.map +1 -0
- package/lib/module/utils/WavFileReader.js +151 -0
- package/lib/module/utils/WavFileReader.js.map +1 -0
- package/lib/module/utils/WavFileWriter.js +174 -0
- package/lib/module/utils/WavFileWriter.js.map +1 -0
- package/lib/module/utils/common.js +18 -0
- package/lib/module/utils/common.js.map +1 -0
- package/lib/typescript/AudioSessionIos.d.ts +1 -1
- package/lib/typescript/AudioSessionIos.d.ts.map +1 -1
- package/lib/typescript/NativeRNWhisper.d.ts +1 -0
- package/lib/typescript/NativeRNWhisper.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/jest-mock.d.ts +2 -0
- package/lib/typescript/jest-mock.d.ts.map +1 -0
- package/lib/typescript/realtime-transcription/RealtimeTranscriber.d.ts +165 -0
- package/lib/typescript/realtime-transcription/RealtimeTranscriber.d.ts.map +1 -0
- package/lib/typescript/realtime-transcription/SliceManager.d.ts +72 -0
- package/lib/typescript/realtime-transcription/SliceManager.d.ts.map +1 -0
- package/lib/typescript/realtime-transcription/adapters/AudioPcmStreamAdapter.d.ts +22 -0
- package/lib/typescript/realtime-transcription/adapters/AudioPcmStreamAdapter.d.ts.map +1 -0
- package/lib/typescript/realtime-transcription/adapters/JestAudioStreamAdapter.d.ts +44 -0
- package/lib/typescript/realtime-transcription/adapters/JestAudioStreamAdapter.d.ts.map +1 -0
- package/lib/typescript/realtime-transcription/adapters/SimulateFileAudioStreamAdapter.d.ts +75 -0
- package/lib/typescript/realtime-transcription/adapters/SimulateFileAudioStreamAdapter.d.ts.map +1 -0
- package/lib/typescript/realtime-transcription/index.d.ts +6 -0
- package/lib/typescript/realtime-transcription/index.d.ts.map +1 -0
- package/lib/typescript/realtime-transcription/types.d.ts +216 -0
- package/lib/typescript/realtime-transcription/types.d.ts.map +1 -0
- package/lib/typescript/utils/WavFileReader.d.ts +61 -0
- package/lib/typescript/utils/WavFileReader.d.ts.map +1 -0
- package/lib/typescript/utils/WavFileWriter.d.ts +57 -0
- package/lib/typescript/utils/WavFileWriter.d.ts.map +1 -0
- package/lib/typescript/utils/common.d.ts +9 -0
- package/lib/typescript/utils/common.d.ts.map +1 -0
- package/package.json +18 -6
- package/src/AudioSessionIos.ts +3 -2
- package/src/NativeRNWhisper.ts +2 -0
- package/src/index.ts +34 -0
- package/{jest/mock.js → src/jest-mock.ts} +2 -2
- package/src/realtime-transcription/RealtimeTranscriber.ts +983 -0
- package/src/realtime-transcription/SliceManager.ts +252 -0
- package/src/realtime-transcription/adapters/AudioPcmStreamAdapter.ts +143 -0
- package/src/realtime-transcription/adapters/JestAudioStreamAdapter.ts +251 -0
- package/src/realtime-transcription/adapters/SimulateFileAudioStreamAdapter.ts +378 -0
- package/src/realtime-transcription/index.ts +34 -0
- package/src/realtime-transcription/types.ts +277 -0
- package/src/utils/WavFileReader.ts +202 -0
- package/src/utils/WavFileWriter.ts +206 -0
- package/src/utils/common.ts +17 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { base64ToUint8Array, uint8ArrayToBase64 } from './common';
|
|
2
|
+
export class WavFileWriter {
|
|
3
|
+
dataSize = 0;
|
|
4
|
+
isWriting = false;
|
|
5
|
+
writeQueue = [];
|
|
6
|
+
constructor(fs, filePath, config) {
|
|
7
|
+
this.fs = fs;
|
|
8
|
+
this.filePath = filePath;
|
|
9
|
+
this.config = config;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Initialize the WAV file with headers
|
|
14
|
+
*/
|
|
15
|
+
async initialize() {
|
|
16
|
+
if (this.isWriting) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
// Create the initial WAV header (we'll update the size later)
|
|
21
|
+
const header = this.createWavHeader(0);
|
|
22
|
+
await this.fs.writeFile(this.filePath, uint8ArrayToBase64(header), 'base64');
|
|
23
|
+
this.dataSize = 0;
|
|
24
|
+
this.isWriting = true;
|
|
25
|
+
this.writeQueue = [];
|
|
26
|
+
} catch (error) {
|
|
27
|
+
throw new Error(`Failed to initialize WAV file: ${error}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Append PCM audio data to the WAV file
|
|
33
|
+
*/
|
|
34
|
+
async appendAudioData(audioData) {
|
|
35
|
+
if (!this.isWriting) {
|
|
36
|
+
throw new Error('WAV file not initialized');
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
// Queue the data for writing
|
|
40
|
+
this.writeQueue.push(audioData);
|
|
41
|
+
|
|
42
|
+
// Process the write queue
|
|
43
|
+
await this.processWriteQueue();
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.warn(`Failed to append audio data to WAV file: ${error}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Process the write queue to avoid blocking
|
|
51
|
+
*/
|
|
52
|
+
async processWriteQueue() {
|
|
53
|
+
if (this.writeQueue.length === 0) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
// Combine all queued data
|
|
58
|
+
const totalLength = this.writeQueue.reduce((sum, data) => sum + data.length, 0);
|
|
59
|
+
const combinedData = new Uint8Array(totalLength);
|
|
60
|
+
let offset = 0;
|
|
61
|
+
this.writeQueue.forEach(data => {
|
|
62
|
+
combinedData.set(new Uint8Array(data), offset);
|
|
63
|
+
offset += data.length;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// Append to file
|
|
67
|
+
const base64Data = uint8ArrayToBase64(combinedData);
|
|
68
|
+
await this.fs.appendFile(this.filePath, base64Data, 'base64');
|
|
69
|
+
|
|
70
|
+
// Update data size
|
|
71
|
+
this.dataSize += combinedData.length;
|
|
72
|
+
|
|
73
|
+
// Clear the queue
|
|
74
|
+
this.writeQueue = [];
|
|
75
|
+
} catch (error) {
|
|
76
|
+
console.warn(`Failed to process WAV write queue: ${error}`);
|
|
77
|
+
// Don't throw here to avoid breaking the recording
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Finalize the WAV file by updating the header with correct sizes
|
|
83
|
+
*/
|
|
84
|
+
async finalize() {
|
|
85
|
+
if (!this.isWriting) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
// Process any remaining queued data
|
|
90
|
+
await this.processWriteQueue();
|
|
91
|
+
|
|
92
|
+
// Read the current file
|
|
93
|
+
const currentData = await this.fs.readFile(this.filePath, 'base64');
|
|
94
|
+
const currentBytes = base64ToUint8Array(currentData);
|
|
95
|
+
|
|
96
|
+
// Create the correct header with final data size
|
|
97
|
+
const correctHeader = this.createWavHeader(this.dataSize);
|
|
98
|
+
|
|
99
|
+
// Replace the header (first 44 bytes)
|
|
100
|
+
const finalData = new Uint8Array(correctHeader.length + this.dataSize);
|
|
101
|
+
finalData.set(correctHeader, 0);
|
|
102
|
+
finalData.set(currentBytes.slice(44), 44); // Skip old header
|
|
103
|
+
|
|
104
|
+
// Write the final file
|
|
105
|
+
const finalBase64 = uint8ArrayToBase64(finalData);
|
|
106
|
+
await this.fs.writeFile(this.filePath, finalBase64, 'base64');
|
|
107
|
+
this.isWriting = false;
|
|
108
|
+
} catch (error) {
|
|
109
|
+
console.warn(`Failed to finalize WAV file: ${error}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Create WAV file header
|
|
115
|
+
*/
|
|
116
|
+
createWavHeader(dataSize) {
|
|
117
|
+
const header = new ArrayBuffer(44);
|
|
118
|
+
const view = new DataView(header);
|
|
119
|
+
|
|
120
|
+
// RIFF header
|
|
121
|
+
view.setUint32(0, 0x52494646, false); // "RIFF"
|
|
122
|
+
view.setUint32(4, 36 + dataSize, true); // File size - 8
|
|
123
|
+
view.setUint32(8, 0x57415645, false); // "WAVE"
|
|
124
|
+
|
|
125
|
+
// Format chunk
|
|
126
|
+
view.setUint32(12, 0x666d7420, false); // "fmt "
|
|
127
|
+
view.setUint32(16, 16, true); // Chunk size
|
|
128
|
+
view.setUint16(20, 1, true); // Audio format (PCM)
|
|
129
|
+
view.setUint16(22, this.config.channels, true); // Number of channels
|
|
130
|
+
view.setUint32(24, this.config.sampleRate, true); // Sample rate
|
|
131
|
+
view.setUint32(28, this.config.sampleRate * this.config.channels * (this.config.bitsPerSample / 8), true); // Byte rate
|
|
132
|
+
view.setUint16(32, this.config.channels * (this.config.bitsPerSample / 8), true); // Block align
|
|
133
|
+
view.setUint16(34, this.config.bitsPerSample, true); // Bits per sample
|
|
134
|
+
|
|
135
|
+
// Data chunk
|
|
136
|
+
view.setUint32(36, 0x64617461, false); // "data"
|
|
137
|
+
view.setUint32(40, dataSize, true); // Data size
|
|
138
|
+
|
|
139
|
+
return new Uint8Array(header);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Cancel writing and cleanup
|
|
144
|
+
*/
|
|
145
|
+
async cancel() {
|
|
146
|
+
this.isWriting = false;
|
|
147
|
+
this.writeQueue = [];
|
|
148
|
+
try {
|
|
149
|
+
// Delete the incomplete file
|
|
150
|
+
const exists = await this.fs.exists(this.filePath);
|
|
151
|
+
if (exists) {
|
|
152
|
+
await this.fs.unlink(this.filePath);
|
|
153
|
+
}
|
|
154
|
+
} catch (error) {
|
|
155
|
+
console.warn(`Failed to cleanup WAV file: ${error}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Get current file statistics
|
|
161
|
+
*/
|
|
162
|
+
getStatistics() {
|
|
163
|
+
const durationSec = this.dataSize / (this.config.sampleRate * this.config.channels * (this.config.bitsPerSample / 8));
|
|
164
|
+
return {
|
|
165
|
+
filePath: this.filePath,
|
|
166
|
+
dataSize: this.dataSize,
|
|
167
|
+
durationSec,
|
|
168
|
+
isWriting: this.isWriting,
|
|
169
|
+
queuedChunks: this.writeQueue.length,
|
|
170
|
+
estimatedFileSizeMB: (44 + this.dataSize) / (1024 * 1024)
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=WavFileWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["base64ToUint8Array","uint8ArrayToBase64","WavFileWriter","dataSize","isWriting","writeQueue","constructor","fs","filePath","config","initialize","header","createWavHeader","writeFile","error","Error","appendAudioData","audioData","push","processWriteQueue","console","warn","length","totalLength","reduce","sum","data","combinedData","Uint8Array","offset","forEach","set","base64Data","appendFile","finalize","currentData","readFile","currentBytes","correctHeader","finalData","slice","finalBase64","ArrayBuffer","view","DataView","setUint32","setUint16","channels","sampleRate","bitsPerSample","cancel","exists","unlink","getStatistics","durationSec","queuedChunks","estimatedFileSizeMB"],"sourceRoot":"../../../src","sources":["utils/WavFileWriter.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const Buffer = global.Buffer || require('safe-buffer').Buffer;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Convert base64 string to Uint8Array
|
|
5
|
+
*/
|
|
6
|
+
export function base64ToUint8Array(base64) {
|
|
7
|
+
const buffer = Buffer.from(base64, 'base64');
|
|
8
|
+
return new Uint8Array(buffer);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Convert Uint8Array to base64 string
|
|
13
|
+
*/
|
|
14
|
+
export function uint8ArrayToBase64(buffer) {
|
|
15
|
+
const buf = Buffer.from(buffer);
|
|
16
|
+
return buf.toString('base64');
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Buffer","global","require","base64ToUint8Array","base64","buffer","from","Uint8Array","uint8ArrayToBase64","buf","toString"],"sourceRoot":"../../../src","sources":["utils/common.ts"],"mappings":"AAAA,MAAMA,MAAW,GAAGC,MAAM,CAACD,MAAM,IAAIE,OAAO,CAAC,aAAa,CAAC,CAACF,MAAM;;AAElE;AACA;AACA;AACA,OAAO,SAASG,kBAAkBA,CAACC,MAAc,EAAc;EAC7D,MAAMC,MAAM,GAAGL,MAAM,CAACM,IAAI,CAACF,MAAM,EAAE,QAAQ,CAAC;EAC5C,OAAO,IAAIG,UAAU,CAACF,MAAM,CAAC;AAC/B;;AAEA;AACA;AACA;AACA,OAAO,SAASG,kBAAkBA,CAACH,MAAkB,EAAU;EAC7D,MAAMI,GAAG,GAAGT,MAAM,CAACM,IAAI,CAACD,MAAM,CAAC;EAC/B,OAAOI,GAAG,CAACC,QAAQ,CAAC,QAAQ,CAAC;AAC/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioSessionIos.d.ts","sourceRoot":"","sources":["../../src/AudioSessionIos.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,oBAAY,6BAA6B;IACvC,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,oCAAoC,yCAAyC;IAC7E,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;CACtC;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;CAC5B;
|
|
1
|
+
{"version":3,"file":"AudioSessionIos.d.ts","sourceRoot":"","sources":["../../src/AudioSessionIos.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,uBAAuB;IACjC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,oBAAY,6BAA6B;IACvC,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,oCAAoC,yCAAyC;IAC7E,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;CACtC;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;CAC5B;AAOD;;GAEG;;;;;8BAM6B,QAAQ;QACpC,QAAQ,EAAE,uBAAuB,CAAC;QAClC,OAAO,EAAE,6BAA6B,EAAE,CAAC;KAC1C,CAAC;0BASwB,QAAQ,mBAAmB,CAAC;4BAO1C,uBAAuB,WACxB,6BAA6B,EAAE,KACvC,QAAQ,IAAI,CAAC;oBAKM,mBAAmB,KAAG,QAAQ,IAAI,CAAC;wBAK/B,OAAO,KAAG,QAAQ,IAAI,CAAC;;AApCnD,wBAwCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeRNWhisper.d.ts","sourceRoot":"","sources":["../../src/NativeRNWhisper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NativeRNWhisper.d.ts","sourceRoot":"","sources":["../../src/NativeRNWhisper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAA;AAI/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,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,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,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;IACH,SAAS,EAAE,OAAO,CAAC;CACpB,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,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhD,YAAY,IAAI;QACd,SAAS,EAAE,OAAO,CAAA;QAClB,mBAAmB,EAAE,OAAO,CAAA;KAC7B,CAAC;IACF,kBAAkB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpD,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1E,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,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,EAAE,GACV,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,EAAE,GACV,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;IAEjE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAG9D,cAAc,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EAAE,kCAAkC;IACrD,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzB,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAGzB,8BAA8B,EAAE,MAAM,OAAO,CAAC;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACxB,CAAC,CAAC;IACH,0BAA0B,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;;AAED,wBAAiE"}
|
|
@@ -242,4 +242,8 @@ export declare function initWhisperVad({ filePath, isBundleAsset, useGpu, nThrea
|
|
|
242
242
|
* @returns Promise resolving when all contexts are released
|
|
243
243
|
*/
|
|
244
244
|
export declare function releaseAllWhisperVad(): Promise<void>;
|
|
245
|
+
export declare function toggleNativeLog(enabled: boolean): Promise<void>;
|
|
246
|
+
export declare function addNativeLogListener(listener: (level: string, text: string) => void): {
|
|
247
|
+
remove: () => void;
|
|
248
|
+
};
|
|
245
249
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,OAAkB,EAChB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEhB,UAAU,EACV,UAAU,EACX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,qBAAqB,EAAE,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,WAAW,GAAG,iBAAiB,KAClC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE9B,IAAI,sBAAsB,EAAE,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,WAAW,GAAG,iBAAiB,KACvC,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAA;CAC7D;AAiCD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,UAAU,EACV,UAAU,GACX,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jest-mock.d.ts","sourceRoot":"","sources":["../../src/jest-mock.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { VadOptions } from '../index';
|
|
2
|
+
import type { RealtimeOptions, RealtimeTranscribeEvent, RealtimeTranscriberCallbacks, RealtimeTranscriberDependencies, AudioSliceNoData } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* RealtimeTranscriber provides real-time audio transcription with VAD support.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Automatic slice management based on duration
|
|
8
|
+
* - VAD-based speech detection and auto-slicing
|
|
9
|
+
* - Configurable auto-slice mechanism that triggers on speech_end/silence events
|
|
10
|
+
* - Memory management for audio slices
|
|
11
|
+
* - Queue-based transcription processing
|
|
12
|
+
*/
|
|
13
|
+
export declare class RealtimeTranscriber {
|
|
14
|
+
private whisperContext;
|
|
15
|
+
private vadContext?;
|
|
16
|
+
private audioStream;
|
|
17
|
+
private fs?;
|
|
18
|
+
private sliceManager;
|
|
19
|
+
private callbacks;
|
|
20
|
+
private options;
|
|
21
|
+
private isActive;
|
|
22
|
+
private isTranscribing;
|
|
23
|
+
private vadEnabled;
|
|
24
|
+
private transcriptionQueue;
|
|
25
|
+
private accumulatedData;
|
|
26
|
+
private wavFileWriter;
|
|
27
|
+
private lastSpeechDetectedTime;
|
|
28
|
+
private lastVadState;
|
|
29
|
+
private lastStatsSnapshot;
|
|
30
|
+
private transcriptionResults;
|
|
31
|
+
constructor(dependencies: RealtimeTranscriberDependencies, options?: RealtimeOptions, callbacks?: RealtimeTranscriberCallbacks);
|
|
32
|
+
/**
|
|
33
|
+
* Start realtime transcription
|
|
34
|
+
*/
|
|
35
|
+
start(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Stop realtime transcription
|
|
38
|
+
*/
|
|
39
|
+
stop(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Handle incoming audio data from audio stream
|
|
42
|
+
*/
|
|
43
|
+
private handleAudioData;
|
|
44
|
+
/**
|
|
45
|
+
* Accumulate audio data for slice management
|
|
46
|
+
*/
|
|
47
|
+
private accumulateAudioData;
|
|
48
|
+
/**
|
|
49
|
+
* Process accumulated audio data through SliceManager
|
|
50
|
+
*/
|
|
51
|
+
private processAccumulatedDataForSliceManagement;
|
|
52
|
+
/**
|
|
53
|
+
* Check if auto-slice should be triggered based on VAD event and timing
|
|
54
|
+
*/
|
|
55
|
+
private checkAutoSlice;
|
|
56
|
+
/**
|
|
57
|
+
* Process VAD for a completed slice
|
|
58
|
+
*/
|
|
59
|
+
private processSliceVAD;
|
|
60
|
+
/**
|
|
61
|
+
* Queue a slice for transcription
|
|
62
|
+
*/
|
|
63
|
+
private queueSliceForTranscription;
|
|
64
|
+
/**
|
|
65
|
+
* Detect speech using VAD context
|
|
66
|
+
*/
|
|
67
|
+
private detectSpeech;
|
|
68
|
+
private isProcessingTranscriptionQueue;
|
|
69
|
+
/**
|
|
70
|
+
* Process the transcription queue
|
|
71
|
+
*/
|
|
72
|
+
private processTranscriptionQueue;
|
|
73
|
+
/**
|
|
74
|
+
* Build prompt from initial prompt and previous slices
|
|
75
|
+
*/
|
|
76
|
+
private buildPrompt;
|
|
77
|
+
/**
|
|
78
|
+
* Process a single transcription
|
|
79
|
+
*/
|
|
80
|
+
private processTranscription;
|
|
81
|
+
/**
|
|
82
|
+
* Handle audio status changes
|
|
83
|
+
*/
|
|
84
|
+
private handleAudioStatusChange;
|
|
85
|
+
/**
|
|
86
|
+
* Handle errors from components
|
|
87
|
+
*/
|
|
88
|
+
private handleError;
|
|
89
|
+
/**
|
|
90
|
+
* Update callbacks
|
|
91
|
+
*/
|
|
92
|
+
updateCallbacks(callbacks: Partial<RealtimeTranscriberCallbacks>): void;
|
|
93
|
+
/**
|
|
94
|
+
* Update VAD options dynamically
|
|
95
|
+
*/
|
|
96
|
+
updateVadOptions(options: Partial<VadOptions>): void;
|
|
97
|
+
/**
|
|
98
|
+
* Update auto-slice options dynamically
|
|
99
|
+
*/
|
|
100
|
+
updateAutoSliceOptions(options: {
|
|
101
|
+
autoSliceOnSpeechEnd?: boolean;
|
|
102
|
+
autoSliceThreshold?: number;
|
|
103
|
+
}): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get current statistics
|
|
106
|
+
*/
|
|
107
|
+
getStatistics(): {
|
|
108
|
+
isActive: boolean;
|
|
109
|
+
isTranscribing: boolean;
|
|
110
|
+
vadEnabled: boolean;
|
|
111
|
+
audioStats: {
|
|
112
|
+
isRecording: boolean;
|
|
113
|
+
accumulatedSamples: number;
|
|
114
|
+
};
|
|
115
|
+
vadStats: {
|
|
116
|
+
enabled: boolean;
|
|
117
|
+
contextAvailable: boolean;
|
|
118
|
+
lastSpeechDetectedTime: number;
|
|
119
|
+
} | null;
|
|
120
|
+
sliceStats: {
|
|
121
|
+
currentSliceIndex: number;
|
|
122
|
+
transcribeSliceIndex: number;
|
|
123
|
+
totalSlices: number;
|
|
124
|
+
memoryUsage: import("./types").MemoryUsage;
|
|
125
|
+
};
|
|
126
|
+
autoSliceConfig: {
|
|
127
|
+
enabled: boolean;
|
|
128
|
+
threshold: number;
|
|
129
|
+
targetDuration: number;
|
|
130
|
+
minDuration: number;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Get all transcription results
|
|
135
|
+
*/
|
|
136
|
+
getTranscriptionResults(): Array<{
|
|
137
|
+
slice: AudioSliceNoData;
|
|
138
|
+
transcribeEvent: RealtimeTranscribeEvent;
|
|
139
|
+
}>;
|
|
140
|
+
/**
|
|
141
|
+
* Force move to the next slice, finalizing the current one regardless of capacity
|
|
142
|
+
*/
|
|
143
|
+
nextSlice(): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Reset all components
|
|
146
|
+
*/
|
|
147
|
+
reset(): void;
|
|
148
|
+
/**
|
|
149
|
+
* Release all resources
|
|
150
|
+
*/
|
|
151
|
+
release(): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Emit stats update event if stats have changed significantly
|
|
154
|
+
*/
|
|
155
|
+
private emitStatsUpdate;
|
|
156
|
+
/**
|
|
157
|
+
* Determine if stats update should be emitted
|
|
158
|
+
*/
|
|
159
|
+
private static shouldEmitStatsUpdate;
|
|
160
|
+
/**
|
|
161
|
+
* Logger function
|
|
162
|
+
*/
|
|
163
|
+
private log;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=RealtimeTranscriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealtimeTranscriber.d.ts","sourceRoot":"","sources":["../../../src/realtime-transcription/RealtimeTranscriber.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EAEvB,4BAA4B,EAE5B,+BAA+B,EAE/B,gBAAgB,EAKjB,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,cAAc,CAAoB;IAE1C,OAAO,CAAC,UAAU,CAAC,CAAuB;IAE1C,OAAO,CAAC,WAAW,CAAsB;IAEzC,OAAO,CAAC,EAAE,CAAC,CAAiB;IAE5B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,SAAS,CAAmC;IAEpD,OAAO,CAAC,OAAO,CAcd;IAED,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,kBAAkB,CAGnB;IAEP,OAAO,CAAC,eAAe,CAAgC;IAEvD,OAAO,CAAC,aAAa,CAA6B;IAGlD,OAAO,CAAC,sBAAsB,CAAI;IAGlC,OAAO,CAAC,YAAY,CAAkC;IAGtD,OAAO,CAAC,iBAAiB,CAAY;IAGrC,OAAO,CAAC,oBAAoB,CAGf;gBAGX,YAAY,EAAE,+BAA+B,EAC7C,OAAO,GAAE,eAAoB,EAC7B,SAAS,GAAE,4BAAiC;IA+C9C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,wCAAwC;IAkChD;;OAEG;YACW,cAAc;IA2D5B;;OAEG;YACW,eAAe;IAiF7B;;OAEG;YACW,0BAA0B;IA4BxC;;OAEG;YACW,YAAY;IAkG1B,OAAO,CAAC,8BAA8B,CAAQ;IAE9C;;OAEG;YACW,yBAAyB;IAmBvC;;OAEG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;YACW,oBAAoB;IA8FlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAAG,IAAI;IAIvE;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAIpD;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE;QAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;QAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC5B,GAAG,IAAI;IAYR;;OAEG;IACH,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;IA0Bb;;OAEG;IACH,uBAAuB,IAAI,KAAK,CAAC;QAC/B,KAAK,EAAE,gBAAgB,CAAA;QACvB,eAAe,EAAE,uBAAuB,CAAA;KACzC,CAAC;IAIF;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAyBb;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAwBpC;;OAEG;IACH,OAAO,CAAC,GAAG;CAGZ"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { AudioSlice, MemoryUsage } from './types';
|
|
2
|
+
export declare class SliceManager {
|
|
3
|
+
private slices;
|
|
4
|
+
private currentSliceIndex;
|
|
5
|
+
private transcribeSliceIndex;
|
|
6
|
+
private maxSlicesInMemory;
|
|
7
|
+
private sliceDurationSec;
|
|
8
|
+
private sampleRate;
|
|
9
|
+
constructor(sliceDurationSec?: number, maxSlicesInMemory?: number, sampleRate?: number);
|
|
10
|
+
/**
|
|
11
|
+
* Add audio data to the current slice
|
|
12
|
+
*/
|
|
13
|
+
addAudioData(audioData: Uint8Array): {
|
|
14
|
+
slice?: AudioSlice;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Get the current slice being built
|
|
18
|
+
*/
|
|
19
|
+
private getCurrentSlice;
|
|
20
|
+
/**
|
|
21
|
+
* Finalize the current slice
|
|
22
|
+
*/
|
|
23
|
+
private finalizeCurrentSlice;
|
|
24
|
+
/**
|
|
25
|
+
* Get a slice for transcription
|
|
26
|
+
*/
|
|
27
|
+
getSliceForTranscription(): AudioSlice | null;
|
|
28
|
+
/**
|
|
29
|
+
* Mark a slice as processed
|
|
30
|
+
*/
|
|
31
|
+
markSliceAsProcessed(sliceIndex: number): void;
|
|
32
|
+
/**
|
|
33
|
+
* Move to the next slice for transcription
|
|
34
|
+
*/
|
|
35
|
+
moveToNextTranscribeSlice(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Get audio data for transcription (base64 encoded)
|
|
38
|
+
*/
|
|
39
|
+
getAudioDataForTranscription(sliceIndex: number): Uint8Array | null;
|
|
40
|
+
/**
|
|
41
|
+
* Get a slice by index
|
|
42
|
+
*/
|
|
43
|
+
getSliceByIndex(sliceIndex: number): AudioSlice | null;
|
|
44
|
+
/**
|
|
45
|
+
* Clean up old slices to manage memory
|
|
46
|
+
*/
|
|
47
|
+
private cleanupOldSlices;
|
|
48
|
+
/**
|
|
49
|
+
* Get memory usage statistics
|
|
50
|
+
*/
|
|
51
|
+
getMemoryUsage(): MemoryUsage;
|
|
52
|
+
/**
|
|
53
|
+
* Reset all slices and indices
|
|
54
|
+
*/
|
|
55
|
+
reset(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get current slice information
|
|
58
|
+
*/
|
|
59
|
+
getCurrentSliceInfo(): {
|
|
60
|
+
currentSliceIndex: number;
|
|
61
|
+
transcribeSliceIndex: number;
|
|
62
|
+
totalSlices: number;
|
|
63
|
+
memoryUsage: MemoryUsage;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Force move to the next slice, finalizing the current one regardless of capacity
|
|
67
|
+
*/
|
|
68
|
+
forceNextSlice(): {
|
|
69
|
+
slice?: AudioSlice;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=SliceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SliceManager.d.ts","sourceRoot":"","sources":["../../../src/realtime-transcription/SliceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEtD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAmB;IAEjC,OAAO,CAAC,iBAAiB,CAAI;IAE7B,OAAO,CAAC,oBAAoB,CAAI;IAEhC,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,CAAC,gBAAgB,CAAQ;IAEhC,OAAO,CAAC,UAAU,CAAQ;gBAGxB,gBAAgB,SAAK,EACrB,iBAAiB,SAAI,EACrB,UAAU,SAAQ;IAOpB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,UAAU,GAAG;QACnC,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB;IAkCD;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,wBAAwB,IAAI,UAAU,GAAG,IAAI;IAY7C;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAO9C;;OAEG;IACH,yBAAyB,IAAI,IAAI;IAIjC;;OAEG;IACH,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IASnE;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAItD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACH,cAAc,IAAI,WAAW;IAiB7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAcb;;OAEG;IACH,mBAAmB;;;;;;IASnB;;OAEG;IACH,cAAc,IAAI;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE;CAmBzC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AudioStreamInterface, AudioStreamConfig, AudioStreamData } from '../types';
|
|
2
|
+
export declare class AudioPcmStreamAdapter implements AudioStreamInterface {
|
|
3
|
+
private isInitialized;
|
|
4
|
+
private recording;
|
|
5
|
+
private config;
|
|
6
|
+
private dataCallback?;
|
|
7
|
+
private errorCallback?;
|
|
8
|
+
private statusCallback?;
|
|
9
|
+
initialize(config: AudioStreamConfig): Promise<void>;
|
|
10
|
+
start(): Promise<void>;
|
|
11
|
+
stop(): Promise<void>;
|
|
12
|
+
isRecording(): boolean;
|
|
13
|
+
onData(callback: (data: AudioStreamData) => void): void;
|
|
14
|
+
onError(callback: (error: string) => void): void;
|
|
15
|
+
onStatusChange(callback: (isRecording: boolean) => void): void;
|
|
16
|
+
release(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Handle incoming audio data from LiveAudioStream
|
|
19
|
+
*/
|
|
20
|
+
private handleAudioData;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=AudioPcmStreamAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioPcmStreamAdapter.d.ts","sourceRoot":"","sources":["../../../../src/realtime-transcription/adapters/AudioPcmStreamAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAGxF,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,MAAM,CAAiC;IAE/C,OAAO,CAAC,YAAY,CAAC,CAAiC;IAEtD,OAAO,CAAC,aAAa,CAAC,CAAyB;IAE/C,OAAO,CAAC,cAAc,CAAC,CAAgC;IAEjD,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,WAAW,IAAI,OAAO;IAItB,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIvD,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhD,cAAc,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B;;OAEG;IACH,OAAO,CAAC,eAAe;CAqBxB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { AudioStreamInterface, AudioStreamConfig, AudioStreamData } from '../types';
|
|
2
|
+
export interface JestAudioStreamAdapterOptions {
|
|
3
|
+
sampleRate?: number;
|
|
4
|
+
channels?: number;
|
|
5
|
+
bitsPerSample?: number;
|
|
6
|
+
simulateLatency?: number;
|
|
7
|
+
simulateErrors?: boolean;
|
|
8
|
+
simulateStartErrorOnly?: boolean;
|
|
9
|
+
chunkSize?: number;
|
|
10
|
+
chunkInterval?: number;
|
|
11
|
+
maxChunks?: number;
|
|
12
|
+
audioData?: Uint8Array;
|
|
13
|
+
generateSilence?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class JestAudioStreamAdapter implements AudioStreamInterface {
|
|
16
|
+
private config;
|
|
17
|
+
private options;
|
|
18
|
+
private isInitialized;
|
|
19
|
+
private recording;
|
|
20
|
+
private dataCallback?;
|
|
21
|
+
private errorCallback?;
|
|
22
|
+
private statusCallback?;
|
|
23
|
+
private streamInterval?;
|
|
24
|
+
private chunksSent;
|
|
25
|
+
private startTime;
|
|
26
|
+
constructor(options?: JestAudioStreamAdapterOptions);
|
|
27
|
+
initialize(config: AudioStreamConfig): Promise<void>;
|
|
28
|
+
start(): Promise<void>;
|
|
29
|
+
stop(): Promise<void>;
|
|
30
|
+
isRecording(): boolean;
|
|
31
|
+
onData(callback: (data: AudioStreamData) => void): void;
|
|
32
|
+
onError(callback: (error: string) => void): void;
|
|
33
|
+
onStatusChange(callback: (isRecording: boolean) => void): void;
|
|
34
|
+
release(): Promise<void>;
|
|
35
|
+
simulateError(error: string): void;
|
|
36
|
+
simulateDataChunk(data: Uint8Array): void;
|
|
37
|
+
getChunksSent(): number;
|
|
38
|
+
getTotalBytesStreamed(): number;
|
|
39
|
+
getStreamDuration(): number;
|
|
40
|
+
private startStreaming;
|
|
41
|
+
private generateAudioChunk;
|
|
42
|
+
private static delay;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=JestAudioStreamAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JestAudioStreamAdapter.d.ts","sourceRoot":"","sources":["../../../../src/realtime-transcription/adapters/JestAudioStreamAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAExF,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,qBAAa,sBAAuB,YAAW,oBAAoB;IACjE,OAAO,CAAC,MAAM,CAAiC;IAE/C,OAAO,CAAC,OAAO,CAA+B;IAE9C,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,YAAY,CAAC,CAAiC;IAEtD,OAAO,CAAC,aAAa,CAAC,CAAyB;IAE/C,OAAO,CAAC,cAAc,CAAC,CAAgC;IAEvD,OAAO,CAAC,cAAc,CAAC,CAA+B;IAEtD,OAAO,CAAC,UAAU,CAAI;IAEtB,OAAO,CAAC,SAAS,CAAI;gBAET,OAAO,GAAE,6BAAkC;IAejD,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B,WAAW,IAAI,OAAO;IAItB,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIvD,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhD,cAAc,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAezC,aAAa,IAAI,MAAM;IAIvB,qBAAqB,IAAI,MAAM;IAI/B,iBAAiB,IAAI,MAAM;IAIzB,OAAO,CAAC,cAAc;IAkCxB,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,MAAM,CAAC,KAAK;CAGrB"}
|