ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toAI/ML
์๋ฌธ ์ฝ๊ธฐ
๋ฐ์ดํฐ ์ ์ถ ์๋ Local-First ์๋ฉด ๋ฌดํธํก์ฆ ๋ชจ๋ํฐ๋ง ์ค๊ณ
Sleep Hacking: Build a Local Sleep Apnea & Snore Monitor with Whisper and FFT ๐๐ค
AI ์์ฝ
Context
์๋ฉด ๋ถ์ ์ฑ์ ๋๋ค์๊ฐ ์ค๋์ค ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ฐ๋๋ก ์ ์กํ๋ ๊ตฌ์กฐ. ๊ฐ์ธ ์นจ์ค์ ๋ฏผ๊ฐํ ์์ฑ ์ ๋ณด ์ ์ถ ์ํ ์์กด. ๋ก์ปฌ ํ๊ฒฝ์์ ์๋ํ๋ ํ๋ผ์ด๋ฒ์ ์ค์ฌ์ ๋ถ์ ์์คํ ํ์.
Technical Solution
- Librosa ๊ธฐ๋ฐ์ FFT(Fast Fourier Transform) ๋ถ์์ ํตํ ์ค๋์ค ์ด๋ฒคํธ ํํฐ๋ง ๊ตฌ์กฐ
- ๋ฐฐ๊ฒฝ ์์๊ณผ ์ ์๋ฏธํ ์๋ฆฌ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด -30dB ์๊ณ๊ฐ(Threshold)์ ์ ์ฉํ ์๋์ง ์ฒดํฌ ๋ก์ง
- 60-500Hz ์ ์ฃผํ ๋์ญ์ ์ฝ๊ณจ์ด ๋ฐ ๋ฌดํธํก ์ฆ์ ํน์ ์ Spectral Signature ์๋ณ ๋ฐฉ์
- CPU ๋ถํ ์ต์ํ๋ฅผ ์ํด 'tiny' ๋๋ 'base' ํฌ๊ธฐ์ Faster-Whisper ๋ชจ๋ธ์ int8 ์์ํ ์ค์ ์ผ๋ก ๊ตฌ๋
- FFT๋ก ๊ฐ์ง๋ ์ ์๋ฏธํ ์ธ๊ทธ๋จผํธ๋ง Faster-Whisper์ ์ ๋ฌํ์ฌ Non-Speech Sound๋ฅผ ๋ถ๋ฅํ๋ ํจ์จ์ ํ์ดํ๋ผ์ธ
- ๋ถ์๋ ํธํก ํจํด๊ณผ ์ ๋ขฐ๋๋ฅผ SQLite ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๋ฐ์ดํฐ ์์์ฑ ์ค๊ณ
Key Takeaway
๊ณ ๋น์ฉ AI ๋ชจ๋ธ์ ์์ ๊ตฌ๋ํ๋ ๋์ ๊ฒฝ๋ ์ ํธ ์ฒ๋ฆฌ(FFT)๋ฅผ ํธ๋ฆฌ๊ฑฐ๋ก ์ฌ์ฉํ๋ ๊ณ์ธต์ ๋ถ์ ์ํคํ ์ฒ๋ฅผ ํตํด ๋ก์ปฌ ๋ฆฌ์์ค ํจ์จ์ฑ๊ณผ ํ๋ผ์ด๋ฒ์๋ฅผ ๋์์ ํ๋ณด.
์ค์ฒ ํฌ์ธํธ
์ฃ์ง ๋๋ฐ์ด์ค์์ AI ๋ชจ๋ธ ๊ตฌ๋ ์, FFT์ ๊ฐ์ ์ ํต์ ์ ํธ ์ฒ๋ฆฌ๋ฅผ ์ ์ฒ๋ฆฌ ํํฐ๋ก ๋ฐฐ์นํ์ฌ ๋ถํ์ํ ์ถ๋ก ๋น์ฉ์ ์ ๊ฑฐํ ๊ฒ