ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Sleep Hacking: Build a Local Sleep Apnea & Snore Monitor with Whisper and FFT ๐ŸŒ™๐Ÿ’ค
Dev.toDev.to
AI/ML

๋ฐ์ดํ„ฐ ์œ ์ถœ ์—†๋Š” Local-First ์ˆ˜๋ฉด ๋ฌดํ˜ธํก์ฆ ๋ชจ๋‹ˆํ„ฐ๋ง ์„ค๊ณ„

Sleep Hacking: Build a Local Sleep Apnea & Snore Monitor with Whisper and FFT ๐ŸŒ™๐Ÿ’ค

wellallyTech2026๋…„ 4์›” 3์ผ4๋ถ„intermediate

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์™€ ๊ฐ™์€ ์ „ํ†ต์  ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๋ฅผ ์ „์ฒ˜๋ฆฌ ํ•„ํ„ฐ๋กœ ๋ฐฐ์น˜ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ถ”๋ก  ๋น„์šฉ์„ ์ œ๊ฑฐํ•  ๊ฒƒ

์›๋ฌธ ์ฝ๊ธฐ