Ctrl K
ComunidadGuías…

omnivoice/README_KO.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# geny-omnivoice (한국어)

Geny 모노레포에 추가된 자체 TTS 마이크로서비스입니다.
[k2-fsa/OmniVoice](https://github.com/k2-fsa/OmniVoice) 의 추론 코드를
[`omnivoice_core/`](./omnivoice_core/) 에 *vendoring* 하고, 그 위에
[`server/`](./server/) 가 FastAPI 래퍼를 얹습니다.

이전까지는 `xxxxrt666/gpt-sovits` 도커 이미지에 의존해
[`backend/service/vtuber/tts/engines/gpt_sovits_engine.py`](../backend/service/vtuber/tts/engines/gpt_sovits_engine.py)
가 HTTP 로 호출했지만, 이미지 내부 소스를 손댈 수 없다는 제약이 컸습니다.
geny-omnivoice 는 이 문제를 정면 해결합니다.

> 본 서비스의 설계 배경과 단계별 계획은
> [`Geny/dev_docs/20260422_OmniVoice/index.md`](../dev_docs/20260422_OmniVoice/index.md)
> 에서 확인하세요.

## 핵심 차이점

- **소스 소유.** `omnivoice_core/` 가 우리 레포에 들어 있으므로 자유롭게
  패치/디버깅 가능합니다.
- **600+ 언어, voice cloning + voice design** 을 같은 `POST /tts` 로 호출.
- **FastAPI** — `/tts`, `/voices`, `/health`, `/languages` 표준 엔드포인트.

## 레이아웃

`README.md` 의 "Layout" 절을 참고해 주세요. 디렉터리 구조 / 환경변수 /
HTTP API 명세는 영문판과 동일합니다.

## docker-compose 로 실행

```bash
# Geny/ 루트에서
docker compose --profile tts-local up --build              # 풀스택
docker compose -f docker-compose.dev.yml --profile tts-local up --build  # 개발 모드 (server/ hot-reload)
```

backend 컨테이너에서는 `http://omnivoice:9881` 로 접근합니다.

## Voice profile

[`Geny/backend/static/voices/`](../backend/static/voices) 의 기존 GPT-SoVITS
형식과 100% 호환됩니다. 컨테이너에 `/voices` 로 read-only 바인드 마운트됩니다.

## 업스트림 동기화

`omnivoice_core/` 는 [k2-fsa/OmniVoice](https://github.com/k2-fsa/OmniVoice)
의 *고정 시점 스냅샷* 입니다. 갱신 절차는
[`docs/upstream_sync.md`](./docs/upstream_sync.md) 참조.

## 라이선스

`omnivoice_core/` 는 업스트림 라이선스인 **Apache-2.0** 을 그대로 따릅니다.
`server/` 도 Apache-2.0.