| import useSpeechToTextBrowser from './useSpeechToTextBrowser'; |
| import useSpeechToTextExternal from './useSpeechToTextExternal'; |
| import useGetAudioSettings from './useGetAudioSettings'; |
|
|
| const useSpeechToText = ( |
| setText: (text: string) => void, |
| onTranscriptionComplete: (text: string) => void, |
| ): { |
| isLoading?: boolean; |
| isListening?: boolean; |
| stopRecording: () => void | (() => Promise<void>); |
| startRecording: () => void | (() => Promise<void>); |
| } => { |
| const { speechToTextEndpoint } = useGetAudioSettings(); |
| const externalSpeechToText = speechToTextEndpoint === 'external'; |
|
|
| const { |
| isListening: speechIsListeningBrowser, |
| isLoading: speechIsLoadingBrowser, |
| startRecording: startSpeechRecordingBrowser, |
| stopRecording: stopSpeechRecordingBrowser, |
| } = useSpeechToTextBrowser(setText, onTranscriptionComplete); |
|
|
| const { |
| isListening: speechIsListeningExternal, |
| isLoading: speechIsLoadingExternal, |
| externalStartRecording: startSpeechRecordingExternal, |
| externalStopRecording: stopSpeechRecordingExternal, |
| } = useSpeechToTextExternal(setText, onTranscriptionComplete); |
|
|
| const isListening = externalSpeechToText ? speechIsListeningExternal : speechIsListeningBrowser; |
| const isLoading = externalSpeechToText ? speechIsLoadingExternal : speechIsLoadingBrowser; |
|
|
| const startRecording = externalSpeechToText |
| ? startSpeechRecordingExternal |
| : startSpeechRecordingBrowser; |
| const stopRecording = externalSpeechToText |
| ? stopSpeechRecordingExternal |
| : stopSpeechRecordingBrowser; |
|
|
| return { |
| isLoading, |
| isListening, |
| stopRecording, |
| startRecording, |
| }; |
| }; |
|
|
| export default useSpeechToText; |
|
|