Spaces:
Running
Running
"use client"; | |
import { useState, useEffect, useCallback } from "react"; | |
import { useTranscriber } from "./useTranscriber"; | |
const useSpeechRecognition = () => { | |
const [recognizedText, setRecognizedText] = useState(''); | |
const transcriber = useTranscriber(); | |
const startListening = useCallback((audioData: any) => { | |
if (!transcriber.isBusy && !transcriber.isModelLoading) { | |
transcriber.start(audioData); | |
} | |
}, [transcriber]); | |
const stopListening = useCallback(() => { | |
console.log("Stopped listening...", recognizedText); | |
}, [recognizedText]); // Updated dependency array | |
useEffect(() => { | |
if (transcriber.output && !transcriber.isBusy) { | |
setRecognizedText(transcriber.output.text); | |
} | |
}, [transcriber.output, transcriber.isBusy]); | |
return { startListening, stopListening, recognizedText }; | |
}; | |
export default useSpeechRecognition; | |