UNPKG

react-native-executorch

Version:

An easy way to run AI models in react native with ExecuTorch

45 lines (44 loc) 1.42 kB
"use strict"; import { useEffect, useState } from 'react'; import { SpeechToTextController } from '../../controllers/SpeechToTextController'; export const useSpeechToText = ({ modelName, encoderSource, decoderSource, tokenizerSource, overlapSeconds, windowSize, streamingConfig }) => { const [sequence, setSequence] = useState(''); const [isReady, setIsReady] = useState(false); const [downloadProgress, setDownloadProgress] = useState(0); const [isGenerating, setIsGenerating] = useState(false); const [error, setError] = useState(); const [model, _] = useState(() => new SpeechToTextController({ transcribeCallback: setSequence, isReadyCallback: setIsReady, isGeneratingCallback: setIsGenerating, onErrorCallback: setError, modelDownloadProgessCallback: setDownloadProgress, overlapSeconds: overlapSeconds, windowSize: windowSize, streamingConfig: streamingConfig })); useEffect(() => { const loadModel = async () => { await model.loadModel(modelName, encoderSource, decoderSource, tokenizerSource); }; loadModel(); }, [model, modelName, encoderSource, decoderSource, tokenizerSource]); return { isReady, isGenerating, downloadProgress, configureStreaming: model.configureStreaming, sequence, error, transcribe: waveform => model.transcribe(waveform) }; }; //# sourceMappingURL=useSpeechToText.js.map