์ญ๋ ๋ฐฉ์ก๋ ๋ผ๋์ค ํ๋ก๊ทธ๋จ์ ์์ฃผ ๋ฐฉ๋ํ๊ณ , ๊ฐ ๋ฐฉ์ก์ฌ๋ ๋ค์ ๋ฃ๊ธฐ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
ํ์ง๋ง ์์ฌ์ด ๊ฒ์ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด "์คํฌ๋ฆฝํธ"๋ฅผ ์ ๊ณตํ์ง ์๋๋ค๋ ์ ๊ณผ,
์ํ๋ ๋ด์ฉ์ ์ฐพ๊ธฐ ์ํด์๋ ๋ผ๋์ค ์์ฑ์ ์ฒ์๋ถํฐ ๋๊น์ง ์ง์ ๋ค์ผ๋ฉฐ ํ์
ํด์ผ ํ๋ค๋ ์ ์
๋๋ค.
์ํ๋ ๋ผ๋์ค ์ปจํ
์ธ ๋ฅผ ํ๋์ ์ฐพ์ ์ ์๋ค๋ฉด, ์ผ๋ง๋ ํธ๋ฆฌํ ๊น์?
๊ทธ๋์ ์ ํฌ ํ๋ก์ ํธ์ธ Boodio ๋ผ๋์ค ํฌํธ์ ์ ์ํฉ๋๋ค.
(Boodio๋, Book์ฒ๋ผ Radio๋ฅผ ๋ณผ ์ ์๋ค๋ ์๋ฏธ์
๋๋ค.)
- ๋ชจ๋ ๋ฐฉ์ก์ฌ์ ํ๋ก๊ทธ๋จ์ ํ๋์ ์ฌ์ดํธ์์ ์ฆ๊ธธ ์ ์๋ค.
- ๋ผ๋์ค ์คํฌ๋ฆฝํธ๊ฐ ์ ๊ณต๋๋ฏ๋ก, ๊ธฐ์กด์ "์๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์"ํ ์ ์๊ฒ ๋๋ค.
- ๋ผ๋์ค ์คํฌ๋ฆฝํธ๋ฅผ ํตํด, ์งํ ๋ด์ฉ์ ํ๋์ ํ์ ํ ์ ์๋ค.
- ์ฒญ์ทจ์ ๋ฒํธ ๊ฒ์์ ํตํด, ๋ด๊ฐ ๋ฑ์ฅํ ๋ผ๋์ค ๋ฐ ํ์ฐจ๋ฅผ ๋นจ๋ฆฌ ์ฐพ์๋ณผ ์ ์๋ค.
์ด๋ ๊ธฐ์กด์ ์๋ ์ ๊ฐ๋ ๋ผ๋์ค ์ปจํ ์ธ ์ ๋๋ค. ๋ผ๋์ค์ ์๊ฐํ๋ผ๋, ํฅ๋ฏธ๋กญ์ง ์๋์?
๋ผ๋์ค ์์ฑ ๋ฐ์ดํฐ ์ค์๊ฐ ์์ง์ผ๋ก ์์ํ์ฌ, Shazam ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ ์ค๋์ค ๋ถํ , STT(Speech To Text), ๋ผ๋์ค ํฌ๋งท(๋ฉํธ, ๋ ธ๋, ๊ด๊ณ ) ๋ถ๋ฅ, ์ต์ข ์์ฒญ๊ฐ ์ปจํ ์ธ ๊น์ง ์ผ๋ จ์ ๊ณผ์ ์ ์๋ํํ์ฌ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
์ง์ง์, ๊น์์, ์ ๊ฒฝ์ค. (2023-12-20). Boodio: ๋ผ๋์ค์ ์์ฒญ๊ฐ ์ฝํ ์ธ ์๋ ๋ณํ ๊ธฐ๋ฒ. ํ๊ตญ์ ๋ณด๊ณผํํ ํ์ ๋ฐํ๋ ผ๋ฌธ์ง, ๋ถ์ฐ. https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE11705565
https://www.youtube.com/watch?v=ODWMcz5iefM&t=3s&ab_channel=%EC%8B%A0%EA%B2%BD%EC%A4%80 ###
์ ํ ๋ฎค์ง์ด ์ธ์ํ 'Shazam' ์ฌ๋ ํด์๊ธฐ๋ฐ ๋
ธ๋์ธ์๊ธฐ์ ์ ๊ฐ๋ฐํ์ต๋๋ค.
์์
์ ์ผ๋ถ๋ฅผ ๋ค๋ ค์ฃผ๋๋ผ๋, ํด๋น ์์
์ ๊ณ ์ ํด์๊ฐ์ ํตํด ๋
ธ๋ ์ ์ฒด๋ฅผ ๋ง์ถ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค
์ ํฌ๋ ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ญ์ผ๋ก ํ์ฉํ์ฌ "๋ผ๋์ค ๊ณ ์ ํจ๊ณผ์ ๊ธฐ๋ฐ ์์ฑ ๋ถํ "์ ๊ตฌํํ์ต๋๋ค.
- ์ ํฌ DB์๋ ๊ฐ ๋ผ๋์ค ํ๋ก๊ทธ๋จ๋ณ๋ก ๊ณ ์ ์ ์ผ๋ก ์กด์ฌํ๋ ํจ๊ณผ์์ฑ(๋ผ๋์ค ์คํ๋, MBC ํจ๊ณผ์, ์ ๊ฐ ์๋ฆผ ๋ฑ)์ ์คํํธ๋ก๊ทธ๋จ ํด์๊ฐ์ ์ ์ฅํด๋ก๋๋ค. ๊ฐ ํจ๊ณผ์์ด ์ถํํ๋ ์๊ฐ์ ๋ณด(๊ตฌ๊ฐ)๋ ํจ๊ป ์ ์ฅํด๋ก๋๋ค.
- ํด๋น ํ๋ก๊ทธ๋จ์ ๋ผ๋์ค ๋ น์ํ์ผ์ด ์ธํ๋๋ฉด, ์ ์ฒด ํด์ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค.
- ์ ์ฒด ํด์ ์ ๋ณด๋ฅผ DB์ ์ ์ฅ๋์ด์๋ ๊ณ ์ ์์ฑ์ ํด์๊ฐ์ผ๋ก ์ค์บํ์ฌ, ๋ถํ ์ง์ ์ ํ์ ํฉ๋๋ค.
โจ Whisper
OpenAI์ whisper model์ ์ฌ์ฉํ์ฌ Speech To Text(STT)๋ฅผ ์งํํฉ๋๋ค. STT์ ๋์์ ์ ์ฒด ๋
น์ ์์ฑ์
๋๋ค. time, txt ์ ๋ณด๊ฐ ๋ด๊ธด ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ํฉ๋๋ค.
โจ ์ค๋ณต ๋ฌธ์ฅ ์ ๊ฑฐ
whisper๋ ํ๋ฅญํ LLM ๋ชจ๋ธ์ด์ง๋ง, STT๋ฅผ ์งํํ ๋ ์ผ๋ถ ๋์ค๊ฐ์ ๋๋ ๊ด๊ณ ์์ฑ ๊ตฌ๊ฐ์์ ๋์ผํ ํํ์ด ์ค๋ณต๋์ด ์ถ๋ ฅ๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๊ด๋ จ ๊ฐ๋
์ whisper์ temperature, beam size, entropy threshold ๊ฐ์ด๊ณ ์ด๋ค์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ก ์ด๊ธฐ ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค์ํ ์์ฑ ์ผ์ด์ค์ ๋ํด ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ ํตํ ์ค๋ณต ํํ ๋ฌธ์ ๋ฅผ ์์ ํ ํผํ ์๋ ์์์ต๋๋ค. ๋ฐ๋ผ์ ์ ํฌ๋ STT์์
์ดํ์ "์ค๋ณต ๋ฌธ์ฅ ์ ๊ฑฐ" ๊ณผ์ ์ ๊ฑฐ์ณค์ต๋๋ค. ์ด ๊ณผ์ ์ด ํ์ํ ์ด์ ๋, ๋ค์ ๊ณผ์ ์ธ ํฌ๋งท ๋ถ๋ฅ์์ ์ฌ์ฉํ BERT ๋ชจ๋ธ์ ์ธํ ๋ฐ์ดํฐ๋ก ์ ํ์ง ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ๋์ง ์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํจ์
๋๋ค.
โจ ๋ฌธ์ฅ ๋จ์ ์กฐ์
whisper๋ word-level๋ก ์๊ฐ์ ๋ณด๋ฅผ ์ป๊ธฐ ๋๋ฌธ์ STT ๊ฒฐ๊ณผ๋ ๋ฌธ์ฅ ๋จ์๊ฐ ์๋ ๊ตฌ์ ์ ํ์์ ๊ฐ์ถ์์ต๋๋ค. ๋ฐ๋ผ์ ์ข
๊ฒฐ์ด๋ฏธ๊ฐ ๋ฑ์ฅํ๋ฉด ํ๋์ ๋ฌธ์ฅ์ผ๋ก ํ๋จํ๊ณ , ๊ตฌ์ ์ ๋ฌธ์ฅ์ผ๋ก ํฉ์น๋๋ก ํ์ฒ๋ฆฌํ์์ต๋๋ค.
๋ผ๋์ค ํฌ๋งท์ ํต์ฌ์ ์ผ๋ก "๋ฉํธ / ๋
ธ๋ / ๊ด๊ณ " ๊ฐ ์กด์ฌํฉ๋๋ค.
์ด ํฌ๋งท๋ณ๋ก ์ ์ ํ ์ปจํ
์ธ ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์๋, ์ ์ฒด ์ค๋์ค์ ํฌ๋งท ํ์
๋ฐ ๋ถ๋ฅ๊ฐ ํ์ํฉ๋๋ค. ํนํ ๋ฉํธ ์ปจํ
์ธ ๋ ์์ค๋์ง ์์์ผ ํ๋ฏ๋ก, ๋ฉํธ ๋ถ๋ฅ๊ธฐ์ ์ฑ๋ฅ์ด ์ค์ํฉ๋๋ค.
๋ฉํธ ์์ค๋ฅ ์ 0%, ์ ํ๋๋ 97.1%์
๋๋ค.

โจ ๋ฉํธ ๋ถ๋ฅ๊ธฐ(ResNet18 ์ฌ์ฉ)
1์ด ์คํํธ๋ก๊ทธ๋จ ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ฉํธ๋ฅผ ๋ถ๋ฅํฉ๋๋ค.
์ ์ํ ์ ์, ์๋ณธ ์ค๋์ค ๊ทธ๋๋ก์ ์คํํธ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋ฉํธ๋ฅผ ๋ถ๋ฅํ ๋ "๋ฐฐ๊ฒฝ์์
์ด ์๋ ๋ฉํธ"์ "์์ํ ๋
ธ๋"๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ ์ด๋ ค์์ด ์์ต๋๋ค. ๋ชฉ์๋ฆฌ์ ์์ ์ ๋ฌด๋ก ๋ถ๋ฅ๋ฅผ ์งํํด์ผ ํ๋๋ฐ, ๋ฐฐ๊ฒฝ์์
์ด ํผ์ฌ๋ ์ํ์์๋ ํน์ง ์ฐจ์ด๊ฐ ๋ช
ํํ ๋ณด์ด์ง ์์์ต๋๋ค.
๋ฐ๋ผ์ Spleeter๋ฅผ ํตํด MR์ ์ ๊ฑฐํ ์์ฑ์ ์คํํธ๋ก๊ทธ๋จ ์ด๋ฏธ์ง๋ฅผ Resnet18์ ์ธํ์ผ๋ก ์ฌ์ฉํ์์ต๋๋ค.
โจ ํ๋ณด์
๋ชจ๋ธ์ด ์์ธกํ ๊ฒฐ๊ณผ๋ ์ค์ ๋ฉํธ ๊ตฌ๊ฐ์ ์ ํํ๊ฒ ํํํ์ง ๋ชปํฉ๋๋ค. 1์ด๋ง๋ค ์์ธกํ ๊ฐ์ ๋๋ถ๋ถ ์ ๋ต์ด์ง๋ง, ์ค๊ฐ์ค๊ฐ ์ค๋ต์ด ์กด์ฌํฉ๋๋ค. ๋ผ๋์ค ํฌ๋งท์ ์๊ฐ์ ์ฐ์์ฑ์ ๊ณ ๋ คํ ๋, ๋ฉํธ ๊ตฌ๊ฐ์ ํ๋ฒ ๋ ๋ณด์ ํด์ฃผ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ต์ข
์ ์ผ๋ก ๋ฉํธ ๊ตฌ๊ฐ์ ์์ค์ด ์๋ ๋ถ๋ฅ๊ณผ์ ์ ์์ฑํ ์ ์์์ต๋๋ค.
โจ ํ
์คํธ ๊ธฐ๋ฐ ๋ถ๋ฅ (BERT๋ชจ๋ธ ์ฌ์ฉ)
"๋ฉํธ๊ฐ ์๋ ๊ตฌ๊ฐ"์ ์๊ณ ์๋ ์ํ์
๋๋ค. ์ด์ "๋ฉํธ๊ฐ ์๋ ๊ตฌ๊ฐ"์์ ๋
ธ๋์ ๊ด๊ณ ํฌ๋งท์ ๋ถ๋ฅํด ๋ผ ์ฐจ๋ก์
๋๋ค. ๋ง์ฝ ๋ฉํธ ๋ถ๋ฅ๊ธฐ์ฒ๋ผ ์คํํธ๋ก๊ทธ๋จ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๋
ธ๋์ ์ ์ฌํ ๊ด๊ณ ๋ฅผ ๋ถ๋ฅํ์ง ๋ชปํ๋ ๋จ์ ์ด ์กด์ฌํฉ๋๋ค. ๋ฐ๋ผ์ "ํ
์คํธ ๊ธฐ๋ฐ ๋ถ๋ฅ"๋ฅผ ๊ณ ์ํ์ต๋๋ค. "๋
ธ๋ ๊ฐ์ฌ"์ "๊ด๊ณ ๋๋ณธ"์ ํ
์คํธ์ ํน์ฑ์ด ๋๋ ทํ๊ธฐ ๋๋ฌธ์ ๋ถ๋ฅ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
โจ ๋ฌธ๋จ ๋ถ๋ฅ
๊ฐ๋ณ ๋ฌธ์ฅ ๋จ์๋ณด๋ค ๋ฌธ๋จ ๋จ์์์์ ์ ๋ณด๋์ด ๋ ๋ง๊ธฐ ๋๋ฌธ์ ์ปจํ
์ธ ๋ฅผ ์ถ์ถํ๊ธฐ ์ฉ์ดํฉ๋๋ค. ๋ฐ๋ผ์ ์ธ์ ๋ฌธ์ฅ ๊ฐ ๋ฒกํฐ ์ ์ฌ๋์ ๋ฐ๋ผ ๋ฌธ๋จ์ ๊ตฌ์ฑํ์ต๋๋ค.
ํ์ฌ ์ฌ์ฉ์ค์ธ ๋ฒกํฐํ ๋๊ตฌ๋ tf-idf์ด๋ฉฐ ๊ฐ ํ ํฐ ๋ฌธ์ฅ ๊ฐ์ค์น ๋ฒกํฐ์ ์ ๊ณฑํฉ์ด ํญ์ 1์ด ๋๋๋ก l2 norm ์ ๊ทํ๋ฅผ ์ ์ฉํ์์ต๋๋ค. ๋ ๋ฌธ์ฅ๊ฐ ๋ฒกํฐ ๊ฑฐ๋ฆฌ๋ฅผ ํตํด ๋ฌธ์ฅ์ผ๋ก ๋ฌถ์์ง ํ๋จํ ๋ ๊ฑฐ๋ฆฌ๊ฐ์ ์ผ๊ด์ฑ์ ์ํด์์
๋๋ค.
์ธ์ ํ ๋ฌธ์ฅ์ ๋ฒกํฐ ๊ฑฐ๋ฆฌ๋ ์ต๋ โ2๊ฐ ๋๋ฉฐ, ์ด๋ ์ ์ฌ๋๊ฐ ์ ํ ์์์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ๋ฌธ์ฅ ๊ฐ ๋ฒกํฐ ๊ฑฐ๋ฆฌ๊ฐ 1.4๋ณด๋ค ์๋ค๋ฉด ํ๋์ ๋ฌธ๋จ์ผ๋ก ๊ทธ๋ฃนํํ์์ต๋๋ค. ๋ผ๋์ค ์งํ์ ์งง์ ๋ฌธ์ฅ์ ์ฐ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ฏ๋ก, ๋งฅ๋ฝ์ด ์ด์ด์ง๋ ์ํฉ์์ ๋์ผ ๋จ์ด๊ฐ ์ถํํ๋ ๊ฒฝํฅ์ด ๋๋ค๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
โจ ํค์๋ ์ถ์ถ
๋ฌธ๋จ ๋ด์์ ์๋ฏธ ์๋ ๋ช
์ฌ๋ฅผ ํค์๋๋ก ์ค์ ํฉ๋๋ค. ๊ฐ ๋ฌธ๋จ์ ๋ช
์ฌ ํ ํฐํํ ํ tf-idf๋ฅผ ์ํํ์๊ณ , ํ ํฐ์ ๊ฐ์ค์น ์์ผ๋ก ์ ๋ ฌํ์ฌ ์์ 6๊ฐ์ ๋ช
์ฌ๋ฅผ ํด๋น ๋ฌธ์ฅ์ ํค์๋๋ก ์ทจํ๊ณ ์์ต๋๋ค.
โจ ์ปจํ ์ธ ์์ฑ
- ๋ฌธ๋จ๋ณ ์ฌ์ง
๊ฐ ๋ฌธ๋จ ๋ด์ฉ์ ๊ด๋ จํ ๊ทธ๋ฆผ์ ์์ฑํ๊ณ ์ kakaobrain์ ์ด๋ฏธ์ง ์์ฑ ๋ชจ๋ธ Karlo๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. ์์ ์ป์ ๋ฌธ๋จ๋ณ ํค์๋์ ๋์ด์ ์๋ฒ์ญํ์ฌ input prompt๋ฅผ ๋ง๋ค๊ณ Karlo์ ์ ๋ ฅํ์ฌ ๊ด๋ จ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ Karlo์ negative prompt๋ฅผ ์ง์ ํ์ฌ ๋ถ์ ์ ํ ์ด๋ฏธ์ง ์์ฑ์ ๋ฐฉ์งํ์์ต๋๋ค. - ์ ํ๋ธ ์์
๋ผ๋์ค์ ๋ ธ๋ ๊ตฌ๊ฐ์์ ์ ๊ณต๋๋ ์ปจํ ์ธ ๋ ๋ฎค์ง๋น๋์ค์ ๋๋ค. ์ ๊ท ํํ์์ ํตํด ๊ฐ์์ ๋ ธ๋๋ช ์ ์ถ์ถํ ๋ค ์ ํ๋ธ API๋ก ๊ฒ์ํ์ฌ ์ป์ต๋๋ค.
๋ฐฉ์ก์ฌ๋ณ ์์ง๊ธฐ๊ฐ python ํ๋ก์ธ์ค๋ก ๋์๊ฐ๋๋ค.
์์ง๊ธฐ์ ๋ฐฉ์์๊ฐ ๋ฐ ๋
นํ์ด์๊ฐ์ ์
๋ ฅํด๋๋ฉด, ์ค์ผ์ค๋ฌ๊ฐ ๋์๊ฐ๋ฉฐ ๋ฐฉ์ก์ฌ๊ฐ ์ ๊ณตํ๋ streamlink๋ฅผ ํตํด ์๋ ๋
นํ ๋ฐ ์์งํฉ๋๋ค.
๋ฐฉ์ก์ฌ ๊ด๊ณ์๋ ์ง์ ๋ผ๋์ค ๋
น์ํ์ผ์ ์
๋ก๋ํ ์ ์์ต๋๋ค (๊ด๋ฆฌ์ ํ์ด์ง)
์
๋ก๋ ์งํ ์ค๋์ค ํ๋ก์ธ์ฑ ์์
์ด ์๋์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.









