์ด๋ฒ์ ์์ฑ์ธ์ ์๋น์ค๋ฅผ ๋ง๋ค๋ฉด์ react-speech-recognition๋ฅผ ์ด์ฉํ๋ค.
2024๋
11์ 12์ผ ์ด์ ์๋ ๋ชจ๋ OS์์ ํ๊ตญ์ด ์์ฑ์ธ์ ๊ฒฐ๊ณผ๊ฐ ์ ๋์๋ค.
ํ์ง๋ง 2024๋
11์ 12์ผ ์ดํ(์ ํํ ์์ ์ ๋ชจ๋ฅด๊ฒ ์ผ๋ ์ดํ์ธ ๊ฑด ํ์คํ๋ค) ์๋๋ก์ด๋ ํ๊ฒฝ์์ ํ๊ตญ์ด ์์ฑ์ธ์์ด ์ ๋๊ณ ์์ด๋ก ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ์ด์๊ฐ ๋ฐ์ํ๋ค ๐ฑ
"ํ
์คํธ"๋ผ๊ณ ๋งํ์ ๋ ์ด์ ์๋ "ํ
์คํธ"๊ฐ ๋์๋ค๋ฉด ์ด๋ ์์ด๋ก "test", "tested" ๋ฑ์ด ๋์๋ค..
์ด๋ฒ ์๋น์ค๋ฅผ ๋ง๋ค๋ฉด์ ํ ๋ฒ๋ ์๊ธด ์ ์๋ ์ด์๊ฐ ํน์ ์์ ์ดํ ํน์ OS์์๋ง ๋ฐ์ํ์ฌ ํด๊ฒฐ ๊ณผ์ ์ ๊ธฐ๋กํ์๋ค.
์์ง ํ๊ตญ์ด ์์ฑ์ธ์ ์ด์ ํด๊ฒฐ์ ๋ํ ์๋ฃ๊ฐ ์๋ ๊ฑฐ ๊ฐ์ ๋์ ๊ฐ์ ์ด์๊ฐ ์๋ ์ฌ๋์๊ฒ ์ด ๊ธ์ด ๋์ ๋๊ธธ ๋ฐ๋๋ค.
๐กTL;DR
react-speech-recognition ๋ฌธ์๊ฐ ์๋ชป๋์ด ์์ผ๋ language ์ค์ ์ MDN ๋ฌธ์๋๋ก BCP 47 language tag ๊ฐ(ko-KR
)์ผ๋ก ์ง์ ํด์ผ ํ๋ค.
2024๋ 11์ 12์ผ ์ดํ ํ๊ตญ์ด ์์ฑ์ธ์ ๋์ ์ฌ๋ถ๋ฅผ ์ ๋ฆฌํ๋ค.
OS | ํ๊ฒฝ | ๋์ ์ฌ๋ถ |
---|---|---|
iOS | Web | O |
iOS | App | O |
์๋๋ก์ด๋ | Web | X |
์๋๋ก์ด๋ | App | X |
MacOS | Chrome | O |
MacOS | Safari | O |
์ฑ์ ์น๋ทฐ๋ก ๋ง๋ค์ด์ ธ ์์ผ๋ฉฐ ์น๋ทฐ ์์์ ์์ฑ์ธ์ ๊ธฐ๋ฅ์ด ๋์ํ๋ค.
์๋๋ก์ด๋ ํ๊ฒฝ์์๋ง ํ๊ตญ์ด ์์ฑ์ธ์์ด ๋์ํ์ง ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๊ฐ์์ค๋ฌ์ด ์ด์์ ๋นํฉํ ๋์ ์์์ ํ๋ฆ์ ๋ด์๋ณด์๋ค.
๋๋ react-speech-recognition
์ ์ธ์ด ์ค์ ์ ์๋น์ค๋ฅผ ์ฒ์ ๋ง๋ค ๋๋ถํฐ ๊ฑด๋๋ฆฐ ์ ์ด ์๋ค๋ ์ ์ ๊ฒฐ๋ฐฑํ๋ค.
react-speech-recognition
์์ ์ธ์ด๋ฅผ ์ค์ ํ ์ ์๋ ๋ถ๋ถ์ startListening()
์ด๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ๋ณด๋ฉด startListening()
์ ํ๋ผ๋ฏธํฐ ์ค language
์ ๊ฐ์ด ๋์ด๋์ด ์๋ค.
์ด ์๋น์ค๋ฅผ ์ฒ์ ๋ง๋ค ๋๊ฐ 2๋ฌ ์ (2024๋
9์ ๊ฒฝ)์ธ๋ฐ, ์ฒ์ ๋ง๋ค ๋๋ถํฐ language: ko
๋ก ์ค์ ํ๊ณ ๋ณ๊ฒฝํ ์ ์ด ์ต๊ทผ๊น์ง ์์๋ค.
๊ทธ๋์ ์ฒ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์๋ผ๊ณ ์๊ฐํ์ง ์์๋ค.
ํ ์ํฉ์์ ๋ช
๋ฐฑํ ๊ฑด OS๋ง๋ค ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ผ OS๋ง๋ค ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง ์์๋ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ๋ค.
๋จผ์ ๋ธ๋ผ์ฐ์ ์์ง์ ์์ฌํ๋ค.
์ ํ์ ํ์์ ์ธ ์ ์ฑ
์ผ๋ก ์ธํด iOS์์ ๋์๊ฐ๋ ๋ธ๋ผ์ฐ์ ๋ ๋ชจ๋ ์ ํ์ Webkit ์์ง์ ์ฌ์ฉํ๋ค.
๊ทธ๋์ iOS์ Safari์ Chrome์์ ํ๊ตญ์ด ์์ฑ์ธ์์ ์๋ํ๋ฉด ์ ์์ ์ผ๋ก ํ๊ตญ์ด ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
๋ฐ๋ฉด MacOS๋ ๊ฐ์ ๋ ๋ธ๋ผ์ฐ์ ์์ง์ด ์๊ธฐ ๋๋ฌธ์ Safari๋ Webkit์, Chrome์ Chromium์ ์ด๋ค.
์๋๋ก์ด๋์์ ๋ธ๋ผ์ฐ์ ๋ ๋ธ๋ผ์ฐ์ ๋ง๋ค ์์ง์ด ๋ค๋ฅธ๋ฐ, Chrome๊ณผ Webview๋ Chromium์ ์ฌ์ฉํ๋ค.
OS | ๋ธ๋ผ์ฐ์ | ๋ธ๋ผ์ฐ์ ์์ง |
---|---|---|
iOS | Chrome | Webkit |
iOS | Safari | Webkit |
MacOS | Chrome | Chromium |
MacOS | Safari | Webkit |
Android | Chrome | Chromium |
Android | Webview | Chromium |
๊ทธ๋ผ Webkit์ ๋ฌธ์ ์๋๋ฐ, Chromium์์๋ง ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒ Chromium์ ๋ณํ๊ฐ ์๊ฒจ์ ๊ทธ๋ฐ ๊ฒ ์๋๊น๋ ์๊ฐ์ด ๋ค์๋ค.
(๋ธ๋ผ์ฐ์ ์์ง ์ธ OS๋ง๋ค ๋ค๋ฅธ ์ ์ด ์๋ค๋ฉด ์๋ ค์ฃผ์ธ์.. ๊ทธ ์ธ ๋ ์ค๋ฅด๋ ์ฐจ์ด์ ์ด ์๋ค์..)
Chromium์ ์
๋ฐ์ดํธ๊ฐ ์์ฌ๋๋ Chrome ํน์ Chromium์ ์ต๊ทผ ์
๋ฐ์ดํธ๊ฐ ์๋์ง ํ์ธํด๋ณด๊ณ ์ ํ๋ค.
์์ฝ๊ฒ๋ Chromium์ ๋ฆด๋ฆฌ์ฆ ๋
ธํธ๋ ์ฐพ์ง ๋ชปํ์๊ณ , Chrome์ ๋ฆด๋ฆฌ์ฆ ๋
ธํธ๋ ๋ณผ ์ ์๋ค.
๋ง์นจ Chrome 131์ ์์ ํ ๋ฒ์ ์ถ์์ผ์ด 2024๋
11์ 12์ผ์ด๋ค!
์
๋ฐ์ดํธ ๋ด์ฉ์ ๋ณด๋ฉด ์์ฑ์ธ์๊ณผ ๊ด๋ จ๋ ๋ด์ฉ์ ์๋ค..
์ธ์ด(language) ๊ด๋ จ๋ ๋ด์ฉ์ Summarization API์ Translator API๋ก ํด๋น API๋ฅผ ์ ๊ณตํ๋ค๋ ๋ด์ฉ๋ง ์์ ๋ฟ, Speech API์ ์ง์ ์ ์ผ๋ก ๊ด๋ จ์ด ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.
ํ์ง๋ง ์ถ์์ผ์ ๋ณด๋ฉด ๊ณต๊ต๋กญ๊ฒ๋ ํ๊ตญ์ด ์์ฑ์ธ์ ์ด์์ ์ผ์ถ ๋ง์๋จ์ด์ง๋ค.
The new release generally reaches all users within one to two weeks unless major issues arise that cannot be addressed quickly.
Chromium ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ์์ ํ ๋ฒ์ (Stable Release, Stable Promotion)์ ์ค๋ํ ์ด์๊ฐ ์์ผ๋ฉด 1~2์ฃผ ์์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌ๋๋ค๊ณ ํ๋ค.
์์ ํ ๋ฒ์ ์ด 11์ 12์ผ์ ๋ฐฐํฌ๋๊ณ ์ดํ ์์ ๋์ ์ ๊ด์๋ค์๊ฒ ์๋ก์ด Chrome์ด ๋ฐฐํฌ๋๋ฉด์ ์์ฑ์ธ์์ ์ธ์ด ๊ด๋ จ ๋ถ๋ถ์ ์ํฅ์ด ๊ฐ์ง ์์๋ ์ถ๋ค.
๋ธ๋ผ์ฐ์ ์ ๋ณ๊ฒฝ์ผ๋ก ํ๊ตญ์ด ์์ฑ์ธ์์ด ํน์ OS์์ ๋์ํ์ง ์๋ ๊ฒ์ผ๋ก ๊ฐํ๊ฒ ์์ฌ๋๋ค.
ํ์ง๋ง ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ณ ์น ์ ์์ผ๋ฏ๋ก ํน์ OS์์๋ ํ๊ตญ์ด๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋๋ก ์์ ํ ํ์๊ฐ ์๋ค..
๋ค์ ์์ ์ผ๋ก ๋์์ ๋ด๊ฐ ๊ฒฐ๋ฐฑํ๋ค๊ณ ์ฃผ์ฅํ ๋ถ๋ถ์ ๋ณด์.
react-speech-recognition
์ startListening()
์ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
async startListening({ continuous = false, language } = {}) {
...
if (isContinuousChanged || isLanguageChanged) {
...
this.recognition.lang = isLanguageChanged ? language : this.recognition.lang
}
...
}
this.recognition
์ SpeechRecognition
์ธํฐํ์ด์ค๋ก, SpeechRecognition
์ lang
์์ฑ์ language
ํ๋ผ๋ฏธํฐ๋ก ์ง์ ํ๋ค.
SpeechRecognition
์ lang
์์ฑ์ ๊ฐ์ด ์๋ชป๋ ๊ฑด ์๋๊น?
MDN ๋ฌธ์๋ฅผ ๋ณด๋ lang
์์ฑ์ BCP 47 language tag๋ฅผ ์ด๋ค๊ณ ๋์ด ์๋ค.
ํ์ง๋ง react-speech-recognition ๋ฌธ์์๋ BCP 47 language tag ์ธ๊ธ์ ์๊ณ 2013๋
์ ์์ฑ๋ stackoverflow ๊ธ์ ์ฐธ๊ณ ํด ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ ๋์ดํ๊ณ ์๋ค.
์๋ฌด๋๋ ๊ณผ๊ฑฐ ๊ธ์ด๋ (ํ๊ตญ์ด ๊ธฐ์ค)ko
๊ฐ ๋ ์ด์ Chrome์์ ๋์ํ์ง ์๊ณ ko-KR
๊ฐ๋ง ๋ฐ๋๋ก Chrome์ด ๋ฐ๊พผ ๊ฒ ์๋๊ฐ ์ถ๋ค.
ํ๊ตญ์ด๋ฅผ BCP 47 language tag(ko-KR
)๋ก ๋ฐ๊พธ๋ ๋ชจ๋ OS์์ ํ๊ตญ์ด ์์ฑ์ธ์์ด ์ ์์ ์ผ๋ก ๋์ํ๋ค.
๋์ผํ ๋ธ๋ผ์ฐ์ ์ฌ๋ OS๋ณ๋ก ๋ธ๋ผ์ฐ์ ์์ง์ด ๋ค๋ฅด๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ปค๋ฎค๋ํฐ๊ฐ ์์ฒญ ํ๋ฐํ ๊ฒ ์๋๋ผ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ 100% ๋ฏฟ์ผ๋ฉด ์ ๋๋ ๊ฑฐ ๊ฐ๋ค..
๊ทธ๋ฆฌ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์๊ฐ ์์ฌ๋๋ค๋ฉด ์คํ์์ค ์ฝ๋๋ฅผ ์ฐจ๋ถํ ๋ค์ฌ๋ค๋ณด๋ฉด ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋ณด์ธ๋ค.
์๋น์ค๋ฅผ ๋ง๋ค ๋๋ถํฐ ๋ฐ์ํ ์ด์๋ฉด ๋นํฉํ์ง ์์์ ํ
๋ฐ, ์ ๋์ํ๋ ๊ฒ ๊ฐ์๊ธฐ ์ ๋๋ ๋ง์ด ๋นํฉํ๊ณ ํด๊ฒฐ๋์ง ์๋ ์ด์์ผ๊น๋ด ๋ง์ด ๊ฑฑ์ ํ๋ค.
๋คํํ ๊ธ๋ฐฉ ํด๊ฒฐ๋์๊ณ , ํด๊ฒฐ ๊ณผ์ ์์ ์๋ก ์๊ฒ ๋ ๋ด์ฉ์ด ๋ง์ ์์ฐผ๋ค.
๋ฌธ์ ์
๋ฐ์ดํธ๋ฅผ PR ์์ฒญ ๋ณด๋ด๊ธด ํ์ผ๋, ํ๋ฐํ ์ปค๋ฎค๋ํฐ๊ฐ ์๋๋ค ๋ณด๋ ๊ธ๋ฐฉ ๋ต๋ณ์ด ์ค๋ ๊ฒ์ ๊ธฐ๋ํ์ง ์๋๋ค..
ํน์ ๋์ฒ๋ผ react-speech-recognition
์ ์ด์ฉํ๋ฉด์ ํ๊ตญ์ด ์์ฑ์ธ์์ด ์ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์๊น๋ด ๊ธฐ๋กํ๋ค.
react-speech-recognition
Chrome์ ๋ฆด๋ฆฌ์ฆ ๋
ธํธ
Chromium ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์ผ์
MDN SpeechRecognition: lang property