UNPKG

@lobehub/tts

Version:

A high-quality & reliable TTS React Hooks library

40 lines (38 loc) 1.16 kB
import { useAudioRecorder } from "../useAudioRecorder/index.mjs"; import { useSpeechRecognitionCore } from "./useSpeechRecognitionCore.mjs"; import { useCallback } from "react"; //#region src/react/useSpeechRecognition/useSpeechRecognitionAutoStop.ts const useSpeechRecognitionAutoStop = (locale, { onStart, onStop, onBlobAvailable, onRecognitionFinish, ...rest } = {}) => { const { time, formattedTime, start: startRecord, stop: stopRecord, blob, url } = useAudioRecorder(onBlobAvailable); const { isLoading, start, stop, text } = useSpeechRecognitionCore(locale, { onRecognitionFinish: (data) => { onRecognitionFinish?.(data); stopRecord(); }, ...rest }); const handleStart = useCallback(() => { onStart?.(); start(); startRecord(); }, [start, startRecord]); const handleStop = useCallback(() => { onStop?.(); stop(); stopRecord(); }, [stop, stopRecord]); return { blob, formattedTime, isLoading, isRecording: isLoading, response: new Response(JSON.stringify({ text }), { status: 200 }), start: handleStart, stop: handleStop, text, time, url }; }; //#endregion export { useSpeechRecognitionAutoStop };