Skip to content

πŸ€DEPth 4th 해컀톀 미녀와 μ•Όμˆ˜λ“€ νŒ€μ˜ πŸŽ‰λ„€, 그게 μΉ­μ°¬μž…λ‹ˆλ‹€.πŸŽ‰ ν”„λ‘ νŠΈ λ ˆν¬μ§€ν† λ¦¬

Notifications You must be signed in to change notification settings

DEPthes/4th-Hackathon-BeautyAndTheBeasts-Web

Repository files navigation

일기 뢄석 및 TTS μ•±

일기 ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•˜λ©΄ Gemini AIκ°€ λΆ„μ„ν•˜κ³ , κ·Έ κ²°κ³Όλ₯Ό Zonos TTS둜 μŒμ„± λ³€ν™˜ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€.

πŸš€ μ£Όμš” κΈ°λŠ₯

  • 일기 ν…μŠ€νŠΈ μž…λ ₯: 였늘 ν•˜λ£¨ μžˆμ—ˆλ˜ 일을 자유둭게 μž…λ ₯
  • AI 뢄석: Gemini APIλ₯Ό ν†΅ν•œ 일기 λ‚΄μš© 뢄석 및 ν”Όλ“œλ°±
  • μŒμ„± λ³€ν™˜: Zonos TTSλ₯Ό μ‚¬μš©ν•œ κ³ ν’ˆμ§ˆ ν•œκ΅­μ–΄ μŒμ„± λ³€ν™˜
  • μ˜€λ””μ˜€ μž¬μƒ: λΈŒλΌμš°μ €μ—μ„œ λ°”λ‘œ 뢄석 κ²°κ³Ό μŒμ„± λ“£κΈ°
  • 파일 λ‹€μš΄λ‘œλ“œ: MP3 ν˜•νƒœλ‘œ μŒμ„± 파일 μ €μž₯

πŸ› οΈ 기술 μŠ€νƒ

  • Frontend: React 19 + TypeScript + Vite
  • Styling: Tailwind CSS 4.0
  • State Management: TanStack React Query
  • API Integration: Gemini API + Zonos TTS API

πŸ“‹ 사전 μš”κ΅¬μ‚¬ν•­

  1. Node.js 18+ 및 npm/yarn
  2. Zonos TTS μ„œλ²„ (localhost:8000μ—μ„œ μ‹€ν–‰ 쀑이어야 함)
  3. Gemini API λ°±μ—”λ“œ (/api/gemini μ—”λ“œν¬μΈνŠΈ ν•„μš”)

πŸ”§ μ„€μΉ˜ 및 μ‹€ν–‰

1. ν”„λ‘œμ νŠΈ 클둠 및 μ˜μ‘΄μ„± μ„€μΉ˜

git clone <repository-url>
cd 4th-hackathon-beautyandthebeasts-web
npm install

2. Zonos TTS μ„œλ²„ μ„€μ •

μžμ„Έν•œ μ„€μ • 방법은 ZONOS_SETUP.mdλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

# Zonos TTS μ €μž₯μ†Œ 클둠
git clone https://github.com/Zyphra/Zonos.git
cd Zonos

# Docker둜 μ‹€ν–‰ (ꢌμž₯)
docker compose up

# λ˜λŠ” μˆ˜λ™ μ„€μΉ˜
sudo apt install -y espeak-ng
pip install -U uv
uv sync
uv pip install -e .
python api.py

3. 개발 μ„œλ²„ μ‹€ν–‰

npm run dev

λΈŒλΌμš°μ €μ—μ„œ http://localhost:5173으둜 μ ‘μ†ν•˜μ„Έμš”.

🎯 μ‚¬μš© 방법

  1. ν…μŠ€νŠΈ μž…λ ₯: 였늘 ν•˜λ£¨ μžˆμ—ˆλ˜ 일을 ν…μŠ€νŠΈ μ˜μ—­μ— μž…λ ₯ν•©λ‹ˆλ‹€.
  2. 뢄석 μš”μ²­: "일기 λΆ„μ„ν•˜κ³  μŒμ„±μœΌλ‘œ λ“£κΈ°" λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€.
  3. κ²°κ³Ό 확인: AIκ°€ λΆ„μ„ν•œ κ²°κ³Όλ₯Ό ν…μŠ€νŠΈλ‘œ ν™•μΈν•©λ‹ˆλ‹€.
  4. μŒμ„± λ“£κΈ°: "μŒμ„± μž¬μƒ" λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ κ²°κ³Όλ₯Ό μŒμ„±μœΌλ‘œ λ“€μ–΄λ΄…λ‹ˆλ‹€.
  5. 파일 μ €μž₯: ν•„μš”μ‹œ "μŒμ„± λ‹€μš΄λ‘œλ“œ" λ²„νŠΌμœΌλ‘œ MP3 νŒŒμΌμ„ μ €μž₯ν•©λ‹ˆλ‹€.

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

src/
β”œβ”€β”€ components/          # React μ»΄ν¬λ„ŒνŠΈ
β”‚   β”œβ”€β”€ Layout.tsx      # κΈ°λ³Έ λ ˆμ΄μ•„μ›ƒ
β”‚   β”œβ”€β”€ Header.tsx      # 헀더
β”‚   └── AudioControls.tsx # μ˜€λ””μ˜€ μ œμ–΄
β”œβ”€β”€ hooks/              # μ»€μŠ€ν…€ ν›…
β”‚   └── hook.ts         # API 호좜 ν›…λ“€
β”œβ”€β”€ pages/              # νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈ
β”‚   └── HomePage.tsx    # 메인 νŽ˜μ΄μ§€
β”œβ”€β”€ utils/              # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜
β”‚   β”œβ”€β”€ api.ts          # API 호좜 ν•¨μˆ˜
β”‚   └── classname.ts    # CSS 클래슀 μœ ν‹Έ
└── Router.tsx          # λΌμš°ν„° μ„€μ •

πŸ”— API μ—”λ“œν¬μΈνŠΈ

Gemini API

POST /api/gemini
Content-Type: application/json

{
  "prompt": "일기 ν…μŠ€νŠΈ"
}

Zonos TTS API

POST http://localhost:8000/v1/audio/speech
Content-Type: application/json

{
  "model": "Zyphra/Zonos-v0.1-transformer",
  "input": "λ³€ν™˜ν•  ν…μŠ€νŠΈ",
  "voice": "default",
  "speed": 1.0,
  "language": "ko-kr",
  "emotion": {
    "happiness": 0.5
  },
  "response_format": "mp3"
}

🚨 문제 ν•΄κ²°

TTS μ„œλ²„ μ—°κ²° μ‹€νŒ¨

  • Zonos TTS μ„œλ²„κ°€ localhost:8000μ—μ„œ μ‹€ν–‰ 쀑인지 확인
  • λ°©ν™”λ²½ μ„€μ • 확인
  • Docker μ»¨ν…Œμ΄λ„ˆ μƒνƒœ 확인

μ˜€λ””μ˜€ μž¬μƒ μ‹€νŒ¨

  • λΈŒλΌμš°μ €μ˜ μžλ™ μž¬μƒ μ •μ±… 확인
  • HTTPS ν™˜κ²½μ—μ„œ Mixed Content μ •μ±… 확인

πŸ“ 개발 정보

이 ν”„λ‘œμ νŠΈλŠ” React + TypeScript + Vite 기반으둜 κ°œλ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ESLint μ„€μ • ν™•μž₯

ν”„λ‘œλ•μ…˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 μ‹œ νƒ€μž… 인식 린트 κ·œμΉ™μ„ ν™œμ„±ν™”ν•˜λŠ” 것을 ꢌμž₯ν•©λ‹ˆλ‹€:

export default tseslint.config([
  globalIgnores(["dist"]),
  {
    files: ["**/*.{ts,tsx}"],
    extends: [
      ...tseslint.configs.recommendedTypeChecked,
      ...tseslint.configs.strictTypeChecked,
      ...tseslint.configs.stylisticTypeChecked,
    ],
    languageOptions: {
      parserOptions: {
        project: ["./tsconfig.node.json", "./tsconfig.app.json"],
        tsconfigRootDir: import.meta.dirname,
      },
    },
  },
]);

πŸ“„ λΌμ΄μ„ μŠ€

이 ν”„λ‘œμ νŠΈλŠ” MIT λΌμ΄μ„ μŠ€ ν•˜μ— λ°°ν¬λ©λ‹ˆλ‹€.

About

πŸ€DEPth 4th 해컀톀 미녀와 μ•Όμˆ˜λ“€ νŒ€μ˜ πŸŽ‰λ„€, 그게 μΉ­μ°¬μž…λ‹ˆλ‹€.πŸŽ‰ ν”„λ‘ νŠΈ λ ˆν¬μ§€ν† λ¦¬

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •