UNPKG

whisper.rn

Version:

React Native binding of whisper.cpp

81 lines (76 loc) 2.41 kB
const { NativeModules, DeviceEventEmitter } = require('react-native') if (!NativeModules.RNWhisper) { NativeModules.RNWhisper = { initContext: jest.fn(() => Promise.resolve({ contextId: 1 })), transcribeFile: jest.fn(() => Promise.resolve({ result: ' Test', segments: [{ text: ' Test', t0: 0, t1: 33 }], isAborted: false, })), transcribeData: jest.fn(() => Promise.resolve({ result: ' Test', segments: [{ text: ' Test', t0: 0, t1: 33 }], isAborted: false, })), startRealtimeTranscribe: jest.fn((contextId, jobId) => { setTimeout(() => { // Start DeviceEventEmitter.emit('@RNWhisper_onRealtimeTranscribe', { contextId, jobId, payload: { isCapturing: true, data: { result: ' Test', segments: [{ text: ' Test', t0: 0, t1: 33 }], }, processTime: 100, recordingTime: 1000, }, }) DeviceEventEmitter.emit('@RNWhisper_onRealtimeTranscribe', { contextId, jobId, payload: { isCapturing: false, data: { result: ' Test', segments: [{ text: ' Test', t0: 0, t1: 33 }], }, processTime: 100, recordingTime: 2000, }, }) // End event DeviceEventEmitter.emit('@RNWhisper_onRealtimeTranscribeEnd', { contextId, jobId, payload: {}, }) }) }), bench: jest.fn(() => Promise.resolve({ config: 'NEON', nThreads: 1, encodeMs: 1, decodeMs: 1, batchMs: 1, promptMs: 1, })), releaseContext: jest.fn(() => Promise.resolve()), releaseAllContexts: jest.fn(() => Promise.resolve()), // iOS AudioSession utils getAudioSessionCurrentCategory: jest.fn(() => Promise.resolve({ category: 'AVAudioSessionCategoryPlayAndRecord', options: [], })), getAudioSessionCurrentMode: jest.fn(() => Promise.resolve('')), setAudioSessionCategory: jest.fn(() => Promise.resolve()), setAudioSessionMode: jest.fn(() => Promise.resolve()), setAudioSessionActive: jest.fn(() => Promise.resolve()), // For NativeEventEmitter addListener: jest.fn(), removeListeners: jest.fn(), } } module.exports = jest.requireActual('whisper.rn')