update voice

This commit is contained in:
sijinhui 2024-04-12 10:50:45 +08:00
parent 2aa14df26e
commit f1c0f5b734

View File

@ -31,21 +31,27 @@ export default function VoiceInput({
// const recognition = useRef(null); // const recognition = useRef(null);
const recognizer = useRef<ms_audio_sdk.SpeechRecognizer | undefined>(); const recognizer = useRef<ms_audio_sdk.SpeechRecognizer | undefined>();
const [tempUserInput, setTempUserInput] = useState(""); const [tempUserInput, setTempUserInput] = useState("");
const [accessToken, setAccessToken] = useState(""); const [accessToken, setAccessToken] = useState("unknown");
const get_access_token = async () => {
if (accessToken === "" || accessToken === "unknown") {
try {
const response = await fetch("/api/get_voice_token");
const result = await response.json();
setAccessToken(result.result);
return result.result;
} catch (e) {
setAccessToken("");
return "";
}
} else return accessToken;
};
useEffect(() => { useEffect(() => {
const get_access_token = async () => {
const response = await fetch("/api/get_voice_token");
const result = await response.json();
setAccessToken(result.result);
};
if (accessToken === "") { if (accessToken === "") {
try { get_access_token();
get_access_token();
} catch (e) {
console.log("[get_access_token]", e);
}
} }
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [accessToken]); }, [accessToken]);
useEffect(() => { useEffect(() => {
@ -95,7 +101,9 @@ export default function VoiceInput({
); );
} }
const startRecognition = () => { const startRecognition = async () => {
let token = await get_access_token();
if (voiceInputLoading) { if (voiceInputLoading) {
recognizer.current?.close(); recognizer.current?.close();
setVoiceInputLoading(false); setVoiceInputLoading(false);
@ -109,7 +117,7 @@ export default function VoiceInput({
setVoiceInputText(""); setVoiceInputText("");
const speechConfig = ms_audio_sdk.SpeechConfig.fromAuthorizationToken( const speechConfig = ms_audio_sdk.SpeechConfig.fromAuthorizationToken(
accessToken, token,
"eastasia", "eastasia",
); );
const audioConfig = ms_audio_sdk.AudioConfig.fromDefaultMicrophoneInput(); const audioConfig = ms_audio_sdk.AudioConfig.fromDefaultMicrophoneInput();