whisper.rn 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +1 -1
  2. package/cpp/ggml-alloc.c +11 -4
  3. package/cpp/ggml-backend-reg.cpp +8 -0
  4. package/cpp/ggml-backend.cpp +0 -2
  5. package/cpp/ggml-cpu/arch/arm/quants.c +428 -26
  6. package/cpp/ggml-cpu/ggml-cpu-impl.h +3 -1
  7. package/cpp/ggml-cpu/ggml-cpu.c +50 -21
  8. package/cpp/ggml-cpu/ops.cpp +458 -349
  9. package/cpp/ggml-cpu/ops.h +4 -4
  10. package/cpp/ggml-cpu/repack.cpp +143 -29
  11. package/cpp/ggml-cpu/simd-mappings.h +25 -25
  12. package/cpp/ggml-cpu/unary-ops.cpp +16 -0
  13. package/cpp/ggml-cpu/unary-ops.h +2 -0
  14. package/cpp/ggml-cpu/vec.cpp +17 -0
  15. package/cpp/ggml-cpu/vec.h +10 -0
  16. package/cpp/ggml-impl.h +17 -1
  17. package/cpp/ggml-metal/ggml-metal-context.m +5 -6
  18. package/cpp/ggml-metal/ggml-metal-device.cpp +101 -4
  19. package/cpp/ggml-metal/ggml-metal-device.h +8 -1
  20. package/cpp/ggml-metal/ggml-metal-device.m +216 -14
  21. package/cpp/ggml-metal/ggml-metal-impl.h +90 -2
  22. package/cpp/ggml-metal/ggml-metal-ops.cpp +346 -85
  23. package/cpp/ggml-metal/ggml-metal-ops.h +2 -0
  24. package/cpp/ggml-metal/ggml-metal.cpp +5 -0
  25. package/cpp/ggml-metal/ggml-metal.metal +12436 -0
  26. package/cpp/ggml.c +154 -5
  27. package/cpp/ggml.h +73 -0
  28. package/cpp/whisper.cpp +6 -2
  29. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml-impl.h +17 -1
  30. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Headers/ggml.h +73 -0
  31. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/Info.plist +0 -0
  32. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/ggml-metal.metal +12436 -0
  33. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/rnwhisper +0 -0
  34. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-impl.h +17 -1
  35. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml.h +73 -0
  36. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/Info.plist +0 -0
  37. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/_CodeSignature/CodeResources +1 -1
  38. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/ggml-metal.metal +12436 -0
  39. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/rnwhisper +0 -0
  40. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml-impl.h +17 -1
  41. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Headers/ggml.h +73 -0
  42. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/Info.plist +0 -0
  43. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/ggml-metal.metal +12436 -0
  44. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/rnwhisper +0 -0
  45. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml-impl.h +17 -1
  46. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Headers/ggml.h +73 -0
  47. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/Info.plist +0 -0
  48. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/_CodeSignature/CodeResources +1 -1
  49. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/ggml-metal.metal +12436 -0
  50. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/rnwhisper +0 -0
  51. package/lib/commonjs/realtime-transcription/RealtimeTranscriber.js +156 -12
  52. package/lib/commonjs/realtime-transcription/RealtimeTranscriber.js.map +1 -1
  53. package/lib/module/realtime-transcription/RealtimeTranscriber.js +155 -12
  54. package/lib/module/realtime-transcription/RealtimeTranscriber.js.map +1 -1
  55. package/lib/typescript/realtime-transcription/RealtimeTranscriber.d.ts +29 -0
  56. package/lib/typescript/realtime-transcription/RealtimeTranscriber.d.ts.map +1 -1
  57. package/lib/typescript/realtime-transcription/types.d.ts +7 -0
  58. package/lib/typescript/realtime-transcription/types.d.ts.map +1 -1
  59. package/package.json +1 -1
  60. package/src/realtime-transcription/RealtimeTranscriber.ts +179 -9
  61. package/src/realtime-transcription/types.ts +9 -0
  62. package/whisper-rn.podspec +1 -1
  63. package/cpp/ggml-metal/ggml-whisper-sim.metallib +0 -0
  64. package/cpp/ggml-metal/ggml-whisper.metallib +0 -0
  65. package/ios/rnwhisper.xcframework/ios-arm64/rnwhisper.framework/ggml-whisper.metallib +0 -0
  66. package/ios/rnwhisper.xcframework/ios-arm64_x86_64-simulator/rnwhisper.framework/ggml-whisper-sim.metallib +0 -0
  67. package/ios/rnwhisper.xcframework/tvos-arm64/rnwhisper.framework/ggml-whisper.metallib +0 -0
  68. package/ios/rnwhisper.xcframework/tvos-arm64_x86_64-simulator/rnwhisper.framework/ggml-whisper-sim.metallib +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["SliceManager","WavFileWriter","VAD_PRESETS","RealtimeTranscriber","callbacks","isActive","isTranscribing","vadEnabled","transcriptionQueue","accumulatedData","Uint8Array","wavFileWriter","lastSpeechDetectedTime","lastVadState","lastStatsSnapshot","transcriptionResults","Map","vadEvents","constructor","dependencies","options","arguments","length","undefined","whisperContext","vadContext","audioStream","fs","audioSliceSec","audioMinSec","maxSlicesInMemory","vadOptions","default","vadPreset","autoSliceOnSpeechEnd","autoSliceThreshold","transcribeOptions","initialPrompt","promptPreviousSlices","audioOutputPath","logger","sliceManager","onData","handleAudioData","bind","onError","handleError","onStatusChange","handleAudioStatusChange","start","Error","_this$callbacks$onSta","_this$callbacks","_this$options$audioSt4","_this$options$audioSt5","_this$options$audioSt6","_this$options$audioSt7","_this$options$audioSt8","call","reset","_this$options$audioSt","_this$options$audioSt2","_this$options$audioSt3","sampleRate","audioStreamConfig","channels","bitsPerSample","initialize","audioSource","bufferSize","emitStatsUpdate","log","error","_this$callbacks$onSta2","_this$callbacks2","stop","_this$callbacks$onSta3","_this$callbacks3","processAccumulatedDataForSliceManagement","processTranscriptionQueue","finalize","streamData","appendAudioData","data","catch","accumulateAudioData","errorMessage","message","newData","combined","set","minBufferSamples","result","addAudioData","slice","index","processSliceVAD","queueSliceForTranscription","checkAutoSlice","vadEvent","_slice","shouldTriggerAutoSlice","type","currentSliceInfo","getCurrentSliceInfo","currentSlice","getSliceByIndex","currentSliceIndex","currentDuration","Date","now","startTime","targetDuration","minDuration","meetsMinDuration","meetsThreshold","toFixed","nextSlice","_this$callbacks$onVad","_this$callbacks4","audioData","getAudioDataForTranscription","detectSpeech","timestamp","onVad","isSpeech","isSpeechEnd","speechDuration","onBeginTranscribe","shouldTranscribe","sliceIndex","duration","get","unshift","currentTimestamp","vadEventType","confidence","audioBuffer","buffer","vadSegments","detectSpeechData","_vadSegments","totalTime","reduce","sum","segment","t1","t0","audioDuration","Math","min","threshold","currentThreshold","isProcessingTranscriptionQueue","item","shift","processTranscription","buildPrompt","promptParts","push","previousResults","Array","from","entries","filter","_ref","sort","_ref2","_ref3","a","b","map","_ref4","_result$transcribeEve","transcribeEvent","Boolean","join","_this$callbacks$onTra","_this$callbacks5","prompt","promise","transcribeData","onProgress","endTime","isCapturing","isRecording","processTime","recordingTime","memoryUsage","getMemoryUsage","sampleCount","isProcessed","isReleased","onTranscribe","delete","_this$callbacks$onTra2","_this$callbacks6","errorEvent","_this$callbacks$onErr","_this$callbacks7","updateCallbacks","updateVadOptions","updateAutoSliceOptions","getStatistics","audioStats","accumulatedSamples","vadStats","enabled","contextAvailable","sliceStats","autoSliceConfig","getTranscriptionResults","values","_this$callbacks$onTra3","_this$callbacks8","startEvent","forceNextSlice","cancel","clear","release","_this$wavFileWriter","eventType","currentStats","shouldEmitStatsUpdate","_this$callbacks$onSta4","_this$callbacks9","statsEvent","onStatsUpdate","current","previous","_current$sliceStats","_current$sliceStats$m","_previous$sliceStats","_previous$sliceStats$","currentMemory","estimatedMB","previousMemory","memoryDiff","abs"],"sourceRoot":"../../../src","sources":["realtime-transcription/RealtimeTranscriber.ts"],"mappings":"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"}
1
+ {"version":3,"names":["SliceManager","WavFileWriter","VAD_PRESETS","SILENCE_SEGMENT_REGEX","RealtimeTranscriber","callbacks","isActive","isTranscribing","vadEnabled","transcriptionQueue","accumulatedData","Uint8Array","wavFileWriter","lastSpeechDetectedTime","lastVadState","lastStatsSnapshot","isProcessingVAD","lastVadProcessTime","vadProcessingQueue","skippedVadCount","transcriptionResults","Map","vadEvents","constructor","dependencies","options","arguments","length","undefined","whisperContext","vadContext","audioStream","fs","audioSliceSec","audioMinSec","maxSlicesInMemory","vadOptions","default","vadPreset","autoSliceOnSpeechEnd","autoSliceThreshold","transcribeOptions","initialPrompt","promptPreviousSlices","audioOutputPath","logger","vadThrottleMs","vadSkipRatio","sliceManager","onData","handleAudioData","bind","onError","handleError","onStatusChange","handleAudioStatusChange","start","Error","_this$callbacks$onSta","_this$callbacks","_this$options$audioSt4","_this$options$audioSt5","_this$options$audioSt6","_this$options$audioSt7","_this$options$audioSt8","call","reset","_this$options$audioSt","_this$options$audioSt2","_this$options$audioSt3","sampleRate","audioStreamConfig","channels","bitsPerSample","initialize","audioSource","bufferSize","emitStatsUpdate","log","error","_this$callbacks$onSta2","_this$callbacks2","stop","_this$callbacks$onSta3","_this$callbacks3","processAccumulatedDataForSliceManagement","processTranscriptionQueue","finalize","streamData","appendAudioData","data","catch","accumulateAudioData","errorMessage","message","newData","combined","set","minBufferSamples","result","addAudioData","slice","index","queueVADProcessing","queueSliceForTranscription","checkAutoSlice","vadEvent","_slice","shouldTriggerAutoSlice","type","currentSliceInfo","getCurrentSliceInfo","currentSlice","getSliceByIndex","currentSliceIndex","currentDuration","Date","now","startTime","targetDuration","minDuration","meetsMinDuration","meetsThreshold","toFixed","nextSlice","shouldSkip","timeSinceLastVad","push","setTimeout","processVADQueue","processSliceVADThrottled","pop","processSliceVAD","_this$callbacks$onVad","_this$callbacks4","audioData","getAudioDataForTranscription","onBeginVad","duration","shouldProcessVad","sliceIndex","detectSpeech","timestamp","onVad","isSpeech","isSpeechEnd","speechDuration","onBeginTranscribe","shouldTranscribe","get","unshift","currentTimestamp","vadEventType","confidence","audioBuffer","buffer","vadSegments","detectSpeechData","_vadSegments","totalTime","reduce","sum","segment","t1","t0","audioDuration","Math","min","threshold","currentThreshold","isProcessingTranscriptionQueue","item","shift","processTranscription","buildPrompt","promptParts","previousResults","Array","from","entries","filter","_ref","sort","_ref2","_ref3","a","b","map","_ref4","_result$transcribeEve","transcribeEvent","Boolean","join","_this$transcriptionRe","_this$callbacks$onTra","_this$callbacks5","prompt","promise","transcribeData","onProgress","endTime","replace","trim","isCapturing","isRecording","processTime","recordingTime","memoryUsage","getMemoryUsage","previousTranscribe","sampleCount","isProcessed","isReleased","onTranscribe","delete","_this$callbacks$onTra2","_this$callbacks6","errorEvent","_this$callbacks$onErr","_this$callbacks7","updateCallbacks","updateVadOptions","updateAutoSliceOptions","updateVadThrottleOptions","getStatistics","audioStats","accumulatedSamples","vadStats","enabled","contextAvailable","isProcessing","queueSize","skippedCount","throttleMs","skipRatio","sliceStats","autoSliceConfig","getTranscriptionResults","values","_this$callbacks$onTra3","_this$callbacks8","startEvent","forceNextSlice","cancel","clear","release","_this$wavFileWriter","eventType","currentStats","shouldEmitStatsUpdate","_this$callbacks$onSta4","_this$callbacks9","statsEvent","onStatsUpdate","current","previous","_current$sliceStats","_current$sliceStats$m","_previous$sliceStats","_previous$sliceStats$","currentMemory","estimatedMB","previousMemory","memoryDiff","abs"],"sourceRoot":"../../../src","sources":["realtime-transcription/RealtimeTranscriber.ts"],"mappings":"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"}
@@ -27,6 +27,10 @@ export declare class RealtimeTranscriber {
27
27
  private lastSpeechDetectedTime;
28
28
  private lastVadState;
29
29
  private lastStatsSnapshot;
30
+ private isProcessingVAD;
31
+ private lastVadProcessTime;
32
+ private vadProcessingQueue;
33
+ private skippedVadCount;
30
34
  private transcriptionResults;
31
35
  private vadEvents;
32
36
  constructor(dependencies: RealtimeTranscriberDependencies, options?: RealtimeOptions, callbacks?: RealtimeTranscriberCallbacks);
@@ -54,6 +58,19 @@ export declare class RealtimeTranscriber {
54
58
  * Check if auto-slice should be triggered based on VAD event and timing
55
59
  */
56
60
  private checkAutoSlice;
61
+ /**
62
+ * Queue VAD processing with throttling for low-end CPU systems
63
+ * This prevents VAD from blocking the audio pipeline
64
+ */
65
+ private queueVADProcessing;
66
+ /**
67
+ * Process the VAD queue
68
+ */
69
+ private processVADQueue;
70
+ /**
71
+ * Throttled wrapper for processSliceVAD
72
+ */
73
+ private processSliceVADThrottled;
57
74
  /**
58
75
  * Process VAD for a completed slice
59
76
  */
@@ -102,6 +119,13 @@ export declare class RealtimeTranscriber {
102
119
  autoSliceOnSpeechEnd?: boolean;
103
120
  autoSliceThreshold?: number;
104
121
  }): void;
122
+ /**
123
+ * Update VAD throttling options dynamically for low-end CPU optimization
124
+ */
125
+ updateVadThrottleOptions(options: {
126
+ vadThrottleMs?: number;
127
+ vadSkipRatio?: number;
128
+ }): void;
105
129
  /**
106
130
  * Get current statistics
107
131
  */
@@ -117,6 +141,11 @@ export declare class RealtimeTranscriber {
117
141
  enabled: boolean;
118
142
  contextAvailable: boolean;
119
143
  lastSpeechDetectedTime: number;
144
+ isProcessing: boolean;
145
+ queueSize: number;
146
+ skippedCount: number;
147
+ throttleMs: number;
148
+ skipRatio: number;
120
149
  } | null;
121
150
  sliceStats: {
122
151
  currentSliceIndex: number;
@@ -1 +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;IAGb,OAAO,CAAC,SAAS,CAA2C;gBAG1D,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;IAoF7B;;OAEG;YACW,0BAA0B;IA6CxC;;OAEG;YACW,YAAY;IAkG1B,OAAO,CAAC,8BAA8B,CAAQ;IAE9C;;OAEG;YACW,yBAAyB;IAmBvC;;OAEG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;YACW,oBAAoB;IAoGlC;;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;IA4Bb;;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"}
1
+ {"version":3,"file":"RealtimeTranscriber.d.ts","sourceRoot":"","sources":["../../../src/realtime-transcription/RealtimeTranscriber.ts"],"names":[],"mappings":"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"}
@@ -153,6 +153,8 @@ export interface RealtimeOptions {
153
153
  vadPreset?: keyof typeof VAD_PRESETS;
154
154
  autoSliceOnSpeechEnd?: boolean;
155
155
  autoSliceThreshold?: number;
156
+ vadThrottleMs?: number;
157
+ vadSkipRatio?: number;
156
158
  transcribeOptions?: TranscribeOptions;
157
159
  initialPrompt?: string;
158
160
  promptPreviousSlices?: boolean;
@@ -196,6 +198,11 @@ export interface RealtimeTranscriberCallbacks {
196
198
  vadEvent?: RealtimeVadEvent;
197
199
  }) => Promise<boolean>;
198
200
  onTranscribe?: (event: RealtimeTranscribeEvent) => void;
201
+ onBeginVad?: (sliceInfo: {
202
+ audioData: Uint8Array;
203
+ sliceIndex: number;
204
+ duration: number;
205
+ }) => Promise<boolean>;
199
206
  onVad?: (event: RealtimeVadEvent) => void;
200
207
  onError?: (error: string) => void;
201
208
  onStatusChange?: (isActive: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/realtime-transcription/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/realtime-transcription/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whisper.rn",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "React Native binding of whisper.cpp",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -18,6 +18,8 @@ import type {
18
18
  } from './types'
19
19
  import { VAD_PRESETS } from './types'
20
20
 
21
+ const SILENCE_SEGMENT_REGEX = /\[(\s*\w+\s*)]/i
22
+
21
23
  /**
22
24
  * RealtimeTranscriber provides real-time audio transcription with VAD support.
23
25
  *
@@ -55,6 +57,9 @@ export class RealtimeTranscriber {
55
57
  audioOutputPath?: string
56
58
  audioStreamConfig?: AudioStreamConfig
57
59
  logger: (message: string) => void
60
+ // VAD optimization options for low-end CPU
61
+ vadThrottleMs: number // Minimum time between VAD calls (ms)
62
+ vadSkipRatio: number // Skip every Nth slice (0 = no skipping)
58
63
  }
59
64
 
60
65
  private isActive = false
@@ -81,6 +86,15 @@ export class RealtimeTranscriber {
81
86
  // Track last stats to emit only when changed
82
87
  private lastStatsSnapshot: any = null
83
88
 
89
+ // VAD throttling for low-end CPU optimization
90
+ private isProcessingVAD = false
91
+
92
+ private lastVadProcessTime = 0
93
+
94
+ private vadProcessingQueue: any[] = []
95
+
96
+ private skippedVadCount = 0
97
+
84
98
  // Store transcription results by slice index
85
99
  private transcriptionResults: Map<
86
100
  number,
@@ -115,6 +129,9 @@ export class RealtimeTranscriber {
115
129
  promptPreviousSlices: options.promptPreviousSlices ?? true,
116
130
  audioOutputPath: options.audioOutputPath,
117
131
  logger: options.logger || (() => {}),
132
+ // VAD optimization options for low-end CPU
133
+ vadThrottleMs: options.vadThrottleMs ?? 1500, // Minimum time between VAD calls (ms)
134
+ vadSkipRatio: options.vadSkipRatio ?? 0, // Skip every Nth slice (0 = no skipping)
118
135
  }
119
136
 
120
137
  // Apply VAD preset if specified
@@ -291,11 +308,9 @@ export class RealtimeTranscriber {
291
308
  `Slice ${result.slice.index} ready (${result.slice.data.length} bytes)`,
292
309
  )
293
310
 
294
- // Process VAD for the slice if enabled
311
+ // Process VAD for the slice if enabled (with throttling for low-end CPU)
295
312
  if (!this.isTranscribing && this.vadEnabled) {
296
- this.processSliceVAD(result.slice).catch((error: any) => {
297
- this.handleError(`VAD processing error: ${error}`)
298
- })
313
+ this.queueVADProcessing(result.slice)
299
314
  } else if (!this.isTranscribing) {
300
315
  // If VAD is disabled, transcribe slices as they become ready
301
316
  this.queueSliceForTranscription(result.slice).catch((error: any) => {
@@ -374,6 +389,106 @@ export class RealtimeTranscriber {
374
389
  }
375
390
  }
376
391
 
392
+ /**
393
+ * Queue VAD processing with throttling for low-end CPU systems
394
+ * This prevents VAD from blocking the audio pipeline
395
+ */
396
+ private queueVADProcessing(slice: any): void {
397
+ // Check if we should skip this slice based on skip ratio
398
+ if (this.options.vadSkipRatio > 0) {
399
+ const shouldSkip = slice.index % (this.options.vadSkipRatio + 1) !== 0
400
+ if (shouldSkip) {
401
+ this.skippedVadCount += 1
402
+ this.log(
403
+ `Skipping VAD for slice ${slice.index} (skip ratio: ${this.options.vadSkipRatio})`,
404
+ )
405
+ // Still queue for transcription if VAD would have approved
406
+ this.queueSliceForTranscription(slice).catch((error: any) => {
407
+ this.handleError(`Failed to queue skipped slice for transcription: ${error}`)
408
+ })
409
+ return
410
+ }
411
+ }
412
+
413
+ // Check throttling - don't process if we recently processed VAD
414
+ const now = Date.now()
415
+ const timeSinceLastVad = now - this.lastVadProcessTime
416
+
417
+ if (this.isProcessingVAD) {
418
+ // VAD is already running, queue this slice
419
+ this.vadProcessingQueue.push(slice)
420
+ this.log(
421
+ `VAD busy, queued slice ${slice.index} (queue size: ${this.vadProcessingQueue.length})`,
422
+ )
423
+ return
424
+ }
425
+
426
+ if (timeSinceLastVad < this.options.vadThrottleMs) {
427
+ // Too soon since last VAD, queue it
428
+ this.vadProcessingQueue.push(slice)
429
+ this.log(
430
+ `VAD throttled, queued slice ${slice.index} (will process in ${
431
+ this.options.vadThrottleMs - timeSinceLastVad
432
+ }ms)`,
433
+ )
434
+ // Schedule processing after throttle period
435
+ setTimeout(() => {
436
+ this.processVADQueue()
437
+ }, this.options.vadThrottleMs - timeSinceLastVad)
438
+ return
439
+ }
440
+
441
+ this.processSliceVADThrottled(slice)
442
+ }
443
+
444
+ /**
445
+ * Process the VAD queue
446
+ */
447
+ private processVADQueue(): void {
448
+ if (this.isProcessingVAD || this.vadProcessingQueue.length === 0) {
449
+ return
450
+ }
451
+
452
+ // Get the most recent slice from queue (discard older ones for real-time performance)
453
+ const slice = this.vadProcessingQueue.pop()
454
+ this.vadProcessingQueue = [] // Clear queue, we only care about latest
455
+
456
+ if (slice) {
457
+ this.log(`Processing queued VAD for slice ${slice.index}`)
458
+ this.processSliceVADThrottled(slice)
459
+ }
460
+ }
461
+
462
+ /**
463
+ * Throttled wrapper for processSliceVAD
464
+ */
465
+ private async processSliceVADThrottled(slice: any): Promise<void> {
466
+ if (this.isProcessingVAD) {
467
+ // Already processing, re-queue
468
+ this.vadProcessingQueue.push(slice)
469
+ return
470
+ }
471
+
472
+ this.isProcessingVAD = true
473
+ this.lastVadProcessTime = Date.now()
474
+
475
+ try {
476
+ await this.processSliceVAD(slice)
477
+ } catch (error) {
478
+ this.handleError(`VAD processing error: ${error}`)
479
+ } finally {
480
+ this.isProcessingVAD = false
481
+
482
+ // Process next item in queue if available
483
+ if (this.vadProcessingQueue.length > 0) {
484
+ // Schedule next processing with a small delay to yield to event loop
485
+ setTimeout(() => {
486
+ this.processVADQueue()
487
+ }, 50) // 50ms delay between VAD processings
488
+ }
489
+ }
490
+ }
491
+
377
492
  /**
378
493
  * Process VAD for a completed slice
379
494
  */
@@ -391,7 +506,25 @@ export class RealtimeTranscriber {
391
506
  return
392
507
  }
393
508
 
394
- // Convert base64 back to Uint8Array for VAD processing
509
+ // Check if user callback allows VAD processing
510
+ if (this.callbacks.onBeginVad) {
511
+ const {
512
+ sampleRate = 16000,
513
+ channels = 1,
514
+ } = this.options.audioStreamConfig || {}
515
+ const duration = audioData.length / sampleRate / channels * 1000 // Convert to milliseconds
516
+ const shouldProcessVad =
517
+ (await this.callbacks.onBeginVad({
518
+ sliceIndex: slice.index,
519
+ audioData,
520
+ duration,
521
+ })) ?? true
522
+
523
+ if (!shouldProcessVad) {
524
+ this.log(`User callback declined VAD processing for slice ${slice.index}`)
525
+ return
526
+ }
527
+ }
395
528
 
396
529
  // Detect speech in the slice
397
530
  const vadEvent = await this.detectSpeech(audioData, slice.index)
@@ -694,6 +827,9 @@ export class RealtimeTranscriber {
694
827
  const result = await promise
695
828
  const endTime = Date.now()
696
829
 
830
+ // Normalize result and segments, remove "[ silence ]" or "[BLANK]"
831
+ result.result = result.result.replace(SILENCE_SEGMENT_REGEX, '').trim()
832
+
697
833
  // Create transcribe event
698
834
  const { sampleRate = 16000 } = this.options.audioStreamConfig || {}
699
835
  const transcribeEvent: RealtimeTranscribeEvent = {
@@ -707,6 +843,13 @@ export class RealtimeTranscriber {
707
843
  vadEvent: this.vadEvents.get(item.sliceIndex),
708
844
  }
709
845
 
846
+ // if the current result is invalid, use the previous result
847
+ const previousTranscribe = this.transcriptionResults.get(item.sliceIndex)
848
+ ?.transcribeEvent
849
+ if (previousTranscribe && result.result.trim() === '.') {
850
+ transcribeEvent.data = previousTranscribe.data
851
+ }
852
+
710
853
  // Save transcription results
711
854
  const slice = this.sliceManager.getSliceByIndex(item.sliceIndex)
712
855
  if (slice) {
@@ -812,6 +955,24 @@ export class RealtimeTranscriber {
812
955
  )
813
956
  }
814
957
 
958
+ /**
959
+ * Update VAD throttling options dynamically for low-end CPU optimization
960
+ */
961
+ updateVadThrottleOptions(options: {
962
+ vadThrottleMs?: number
963
+ vadSkipRatio?: number
964
+ }): void {
965
+ if (options.vadThrottleMs !== undefined) {
966
+ this.options.vadThrottleMs = options.vadThrottleMs
967
+ }
968
+ if (options.vadSkipRatio !== undefined) {
969
+ this.options.vadSkipRatio = options.vadSkipRatio
970
+ }
971
+ this.log(
972
+ `VAD throttle options updated: throttleMs=${this.options.vadThrottleMs}, skipRatio=${this.options.vadSkipRatio}`,
973
+ )
974
+ }
975
+
815
976
  /**
816
977
  * Get current statistics
817
978
  */
@@ -829,6 +990,11 @@ export class RealtimeTranscriber {
829
990
  enabled: true,
830
991
  contextAvailable: !!this.vadContext,
831
992
  lastSpeechDetectedTime: this.lastSpeechDetectedTime,
993
+ isProcessing: this.isProcessingVAD,
994
+ queueSize: this.vadProcessingQueue.length,
995
+ skippedCount: this.skippedVadCount,
996
+ throttleMs: this.options.vadThrottleMs,
997
+ skipRatio: this.options.vadSkipRatio,
832
998
  }
833
999
  : null,
834
1000
  sliceStats: this.sliceManager.getCurrentSliceInfo(),
@@ -890,11 +1056,9 @@ export class RealtimeTranscriber {
890
1056
  `Forced slice ${result.slice.index} ready (${result.slice.data.length} bytes)`,
891
1057
  )
892
1058
 
893
- // Process VAD for the slice if enabled
1059
+ // Process VAD for the slice if enabled (with throttling for low-end CPU)
894
1060
  if (!this.isTranscribing && this.vadEnabled) {
895
- this.processSliceVAD(result.slice).catch((error: any) => {
896
- this.handleError(`VAD processing error: ${error}`)
897
- })
1061
+ this.queueVADProcessing(result.slice)
898
1062
  } else if (!this.isTranscribing) {
899
1063
  // If VAD is disabled, transcribe slices as they become ready
900
1064
  this.queueSliceForTranscription(result.slice).catch((error: any) => {
@@ -923,6 +1087,12 @@ export class RealtimeTranscriber {
923
1087
  this.lastSpeechDetectedTime = -1
924
1088
  this.lastVadState = 'silence'
925
1089
 
1090
+ // Reset VAD throttling state
1091
+ this.isProcessingVAD = false
1092
+ this.lastVadProcessTime = 0
1093
+ this.vadProcessingQueue = []
1094
+ this.skippedVadCount = 0
1095
+
926
1096
  // Reset stats snapshot for clean start
927
1097
  this.lastStatsSnapshot = null
928
1098
 
@@ -190,6 +190,10 @@ export interface RealtimeOptions {
190
190
  autoSliceOnSpeechEnd?: boolean // default: false - automatically slice when speech ends and duration thresholds are met
191
191
  autoSliceThreshold?: number // default: 0.85 - percentage of audioSliceSec to trigger auto-slice
192
192
 
193
+ // VAD optimization options for low-end CPU
194
+ vadThrottleMs?: number // default: 1500 - Minimum time between VAD calls (ms)
195
+ vadSkipRatio?: number // default: 0 - Skip every Nth slice (0 = no skipping)
196
+
193
197
  // Transcription settings
194
198
  transcribeOptions?: TranscribeOptions
195
199
 
@@ -250,6 +254,11 @@ export interface RealtimeTranscriberCallbacks {
250
254
  vadEvent?: RealtimeVadEvent
251
255
  }) => Promise<boolean>
252
256
  onTranscribe?: (event: RealtimeTranscribeEvent) => void
257
+ onBeginVad?: (sliceInfo: {
258
+ audioData: Uint8Array
259
+ sliceIndex: number
260
+ duration: number
261
+ }) => Promise<boolean>
253
262
  onVad?: (event: RealtimeVadEvent) => void
254
263
  onError?: (error: string) => void
255
264
  onStatusChange?: (isActive: boolean) => void
@@ -35,7 +35,7 @@ Pod::Spec.new do |s|
35
35
 
36
36
  if ENV["RNWHISPER_BUILD_FROM_SOURCE"] == "1"
37
37
  s.source_files = "ios/**/*.{h,m,mm}", "cpp/**/*.{h,cpp,hpp,c,m,mm}"
38
- s.resources = "cpp/**/*.{metallib}"
38
+ s.resources = "cpp/ggml-metal/ggml-metal.metal"
39
39
  base_compiler_flags += " -DRNWHISPER_BUILD_FROM_SOURCE"
40
40
 
41
41
  s.subspec "no-require-arc" do |ss|