๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธํ”„๋ก ํŠธ์—”๋“œ/React.js

๋ฆฌ์•กํŠธ - ์Œ์„ฑ ๋๋‚˜๊ณ  ๋‚˜์„œ ํ…์ŠคํŠธ ์ƒˆ๋กœ ๊ธฐ๋กํ•˜๊ธฐ(react-speech-recognition)

by Janger 2022. 11. 6.
728x90
๋ฐ˜์‘ํ˜•

์›๋ž˜์ฒ˜๋Ÿผ transcript๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ์—ฌํƒœ๊ป ๋งํ–ˆ๋˜ ํ…์ŠคํŠธ๋“ค์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ,

๋ง์„ ๋๋‚œ ๋’ค์— ๋‹ค์‹œ ๋ง์„ ํ•˜๋ฉด ์ด์ „ ํ…์ŠคํŠธ๋ฅผ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹

 

const [subtitle, setSubtitle] = useState('');

  const {
    transcript,
    interimTranscript,
    resetTranscript,
    browserSupportsSpeechRecognition,
    finalTranscript,
  } = useSpeechRecognition();

  useEffect( ()=>{
    console.log('๋งˆ์ดํฌ ๋…นํ™” ์‹œ์ž‘');
    SpeechRecognition.startListening({continuous: true});
  }, [] );

  useEffect( ()=>{
    if(interimTranscript.length > 0)
      setSubtitle( interimTranscript );
  }, [interimTranscript] );

  useEffect( ()=>{
    if( finalTranscript.length > 0 )
      setSubtitle( finalTranscript );
    resetTranscript();
  }, [finalTranscript] );
  
  
    return (
    <div>
      <div id='box'>
        <p id='transcript'>{subtitle}</p>
      </div>
    </div>
  );

 

"if(interimTranscript.length > 0)"์™€ "if( finalTranscript.length > 0 )"๋ฅผ ์•ˆ ์ฃผ๋ฉด ๋นˆ ํ…์ŠคํŠธ๊ฐ€ ์ถœ๋ ฅ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์จ์ค€ ๊ฒƒ

728x90
๋ฐ˜์‘ํ˜•