๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿ—จ๏ธ Kokoro-FastAPI Using Docker

๊ฒฝ๊ณ 

์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ๋กœ ์ œ๊ณต๋˜๋ฉฐ Open WebUI ํŒ€์—์„œ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠน์ • ์šฉ๋„์— ๋งž๊ฒŒ Open WebUI๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๊ธฐ์—ฌ ํŠœํ† ๋ฆฌ์–ผ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”.

Kokoro-FastAPI๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?โ€‹

Kokoro-FastAPI๋Š” OpenAI API ์—”๋“œํฌ์ธํŠธ ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•œ Kokoro-82M ํ…์ŠคํŠธ-์Œ์„ฑ ๋ณ€ํ™˜ ๋ชจ๋ธ์„ ์œ„ํ•œ Docker ๊ธฐ๋ฐ˜ FastAPI ๋ž˜ํผ์ž…๋‹ˆ๋‹ค. ๊ณ ์† ์ƒ์„ฑ ์†๋„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๊ณ ์„ฑ๋Šฅ ํ…์ŠคํŠธ-์Œ์„ฑ ๋ณ€ํ™˜ ๊ธฐ๋Šฅ์„ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅโ€‹

  • OpenAI ํ˜ธํ™˜ ์Œ์„ฑ ์—”๋“œํฌ์ธํŠธ์™€ ์ธ๋ผ์ธ ์Œ์„ฑ ๊ฒฐํ•ฉ
  • NVIDIA GPU ๊ฐ€์† ๋˜๋Š” CPU Onnx ์ถ”๋ก 
  • ๊ฐ€๋ณ€ ์ฒญํฌ ์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์›
  • ์—ฌ๋Ÿฌ ์˜ค๋””์˜ค ํฌ๋งท ์ง€์› (.mp3, .wav, .opus, .flac, .aac, .pcm)
  • localhost:8880/web์—์„œ ํ†ตํ•ฉ ์›น ์ธํ„ฐํŽ˜์ด์Šค (๋˜๋Š” ์ €์žฅ์†Œ์˜ ์ถ”๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์—๋Š” gradio ํฌํ•จ)
  • ๋ณ€ํ™˜ ๋ฐ ์ƒ์„ฑ์šฉ ์Œ์†Œ ์—”๋“œํฌ์ธํŠธ

์Œ์„ฑโ€‹

  • af
  • af_bella
  • af_irulan
  • af_nicole
  • af_sarah
  • af_sky
  • am_adam
  • am_michael
  • am_gurney
  • bf_emma
  • bf_isabella
  • bm_george
  • bm_lewis

์–ธ์–ดโ€‹

  • en_us
  • en_uk

์š”๊ตฌ ์‚ฌํ•ญโ€‹

  • ์‹œ์Šคํ…œ์— Docker ์„ค์น˜ ํ•„์š”
  • Open WebUI ์‹คํ–‰ ์ค‘
  • GPU ์ง€์›์˜ ๊ฒฝ์šฐ: CUDA 12.3์ด ํฌํ•จ๋œ NVIDIA GPU
  • CPU ์ „์šฉ์˜ ๊ฒฝ์šฐ: ํŠน๋ณ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ์—†์Œ

โšก๏ธ ๋น ๋ฅธ ์‹œ์ž‘โ€‹

GPU ๋˜๋Š” CPU ๋ฒ„์ „ ์ค‘ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คโ€‹

GPU ๋ฒ„์ „ (CUDA 12.8์ด ํ•„์š”ํ•œ NVIDIA GPU)โ€‹

docker run์„ ์‚ฌ์šฉ:

docker run --gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu

๋˜๋Š” docker compose๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ docker-compose.yml ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  docker compose up์„ ์‹คํ–‰: ์˜ˆ:

name: kokoro
services:
kokoro-fastapi-gpu:
ports:
- 8880:8880
image: ghcr.io/remsky/kokoro-fastapi-gpu:v0.2.1
restart: always
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
์ •๋ณด

NVIDIA Container Toolkit์„ ์„ค์น˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

CPU ๋ฒ„์ „ (ONNX ์ตœ์ ํ™” ์ถ”๋ก )โ€‹

docker run์„ ์‚ฌ์šฉ:

docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu

docker compose๋ฅผ ์‚ฌ์šฉ:

name: kokoro
services:
kokoro-fastapi-cpu:
ports:
- 8880:8880
image: ghcr.io/remsky/kokoro-fastapi-cpu
restart: always

Open WebUI์—์„œ Kokoro-FastAPI ์„ค์ •ํ•˜๊ธฐโ€‹

Open WebUI์—์„œ Kokoro-FastAPI๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”:

  • ๊ด€๋ฆฌ์ž ํŒจ๋„์„ ์—ด๊ณ  Settings -> Audio๋กœ ์ด๋™
  • TTS ์„ค์ •์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ •:
    • ํ…์ŠคํŠธ-์Œ์„ฑ ๋ณ€ํ™˜ ์—”์ง„: OpenAI
    • API ๊ธฐ๋ณธ URL: http://localhost:8880/v1 # ํ•„์š”์— ๋”ฐ๋ผ localhost ๋Œ€์‹  host.docker.internal ์‚ฌ์šฉ
    • API ํ‚ค: not-needed
    • TTS ๋ชจ๋ธ: kokoro
    • TTS ์Œ์„ฑ: af_bella # ๊ธฐ์กด OAI ์Œ์„ฑ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•œ ๋งคํ•‘๋„ ํ—ˆ์šฉ
์ •๋ณด

๊ธฐ๋ณธ API ํ‚ค๋Š” not-needed ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋ณด์•ˆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Docker ์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œํ•˜๊ธฐโ€‹

git clone https://github.com/remsky/Kokoro-FastAPI.git
cd Kokoro-FastAPI
cd docker/cpu # ๋˜๋Š” docker/gpu
docker compose up --build

๋๋‚ฌ์Šต๋‹ˆ๋‹ค!

Docker ์ปจํ…Œ์ด๋„ˆ ๋นŒ๋“œ์— ๊ด€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด, ํฌํŠธ ๋ณ€๊ฒฝ ํฌํ•จํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ Kokoro-FastAPI ์ €์žฅ์†Œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”