react-native-executorch
Version:
An easy way to run AI models in react native with ExecuTorch
52 lines • 2.33 kB
TypeScript
import { MODES, STREAMING_ACTION } from '../constants/sttDefaults';
import { AvailableModels } from '../types/stt';
import { ResourceSource } from '../types/common';
import { SpeechToTextLanguage } from '../types/stt';
export declare class SpeechToTextController {
private speechToTextNativeModule;
sequence: number[];
isReady: boolean;
isGenerating: boolean;
private overlapSeconds;
private windowSize;
private chunks;
private seqs;
private prevSeq;
private waveform;
private numOfChunks;
private streaming;
private decodedTranscribeCallback;
private modelDownloadProgressCallback;
private isReadyCallback;
private isGeneratingCallback;
private onErrorCallback;
private config;
constructor({ transcribeCallback, modelDownloadProgressCallback, isReadyCallback, isGeneratingCallback, onErrorCallback, overlapSeconds, windowSize, streamingConfig, }: {
transcribeCallback: (sequence: string) => void;
modelDownloadProgressCallback?: (downloadProgress: number) => void;
isReadyCallback?: (isReady: boolean) => void;
isGeneratingCallback?: (isGenerating: boolean) => void;
onErrorCallback?: (error: Error | undefined) => void;
overlapSeconds?: number;
windowSize?: number;
streamingConfig?: keyof typeof MODES;
});
loadModel(modelName: AvailableModels, encoderSource?: ResourceSource, decoderSource?: ResourceSource, tokenizerSource?: ResourceSource): Promise<void>;
configureStreaming(overlapSeconds?: number, windowSize?: number, streamingConfig?: keyof typeof MODES): void;
private chunkWaveform;
private resetState;
private expectedChunkLength;
private getStartingTokenIds;
private decodeChunk;
private handleOverlaps;
private trimLeft;
private trimRight;
private trimSequences;
private validateAndFixLastChunk;
private tokenIdsToText;
transcribe(waveform: number[], audioLanguage?: SpeechToTextLanguage): Promise<string>;
streamingTranscribe(streamAction: STREAMING_ACTION, waveform?: number[], audioLanguage?: SpeechToTextLanguage): Promise<string>;
encode(waveform: number[]): Promise<number[]>;
decode(seq: number[], encodings?: number[]): Promise<number>;
}
//# sourceMappingURL=SpeechToTextController.d.ts.map