Feat: dockerfiles
This commit is contained in:
46
Makefile
46
Makefile
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: setconfig run lint
|
.PHONY: setconfig run lint setup-whisper build-whisper download-whisper-model docker-up docker-down docker-logs
|
||||||
|
|
||||||
run: setconfig
|
run: setconfig
|
||||||
go build -o gf-lt && ./gf-lt
|
go build -o gf-lt && ./gf-lt
|
||||||
@@ -11,3 +11,47 @@ setconfig:
|
|||||||
|
|
||||||
lint: ## Run linters. Use make install-linters first.
|
lint: ## Run linters. Use make install-linters first.
|
||||||
golangci-lint run -c .golangci.yml ./...
|
golangci-lint run -c .golangci.yml ./...
|
||||||
|
|
||||||
|
# Whisper STT Setup
|
||||||
|
setup-whisper: build-whisper download-whisper-model
|
||||||
|
|
||||||
|
build-whisper: ## Build whisper.cpp from source
|
||||||
|
@echo "Building whisper.cpp from source..."
|
||||||
|
@if [ ! -d "whisper.cpp" ]; then \
|
||||||
|
echo "Cloning whisper.cpp repository..."; \
|
||||||
|
git clone https://github.com/ggml-org/whisper.cpp.git; \
|
||||||
|
fi
|
||||||
|
cd whisper.cpp && make build
|
||||||
|
@echo "Creating symlink to whisper-cli binary..."
|
||||||
|
@ln -sf whisper.cpp/build/bin/whisper-cli ./whisper-cli
|
||||||
|
@echo "Whisper binary built successfully!"
|
||||||
|
|
||||||
|
download-whisper-model: ## Download Whisper model for STT
|
||||||
|
@echo "Downloading Whisper model for STT..."
|
||||||
|
@if [ ! -d "whisper.cpp" ]; then \
|
||||||
|
echo "Please run 'make setup-whisper' first to clone the repository."; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
@cd whisper.cpp && make tiny.en
|
||||||
|
@echo "Creating symlink to Whisper model..."
|
||||||
|
@ln -sf whisper.cpp/models/ggml-tiny.en.bin ./ggml-model.bin
|
||||||
|
@echo "Whisper model downloaded successfully!"
|
||||||
|
|
||||||
|
# Docker targets for STT/TTS services
|
||||||
|
docker-up: ## Start Docker Compose services for STT and TTS
|
||||||
|
@echo "Starting Docker services for STT (whisper) and TTS (kokoro)..."
|
||||||
|
docker-compose up -d
|
||||||
|
@echo "Docker services started. STT available at http://localhost:8081, TTS available at http://localhost:8880"
|
||||||
|
|
||||||
|
docker-down: ## Stop Docker Compose services
|
||||||
|
@echo "Stopping Docker services..."
|
||||||
|
docker-compose down
|
||||||
|
@echo "Docker services stopped"
|
||||||
|
|
||||||
|
docker-logs: ## View logs from Docker services
|
||||||
|
@echo "Displaying logs from Docker services..."
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# Convenience target to setup everything
|
||||||
|
setup-complete: setup-whisper docker-up
|
||||||
|
@echo "Complete setup finished! STT and TTS services are running."
|
||||||
|
|||||||
41
docker-compose.yml
Normal file
41
docker-compose.yml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
services:
|
||||||
|
# Whisper.cpp STT service
|
||||||
|
whisper:
|
||||||
|
image: ghcr.io/ggml-org/whisper.cpp:main
|
||||||
|
container_name: whisper-stt
|
||||||
|
ports:
|
||||||
|
- "8081:8081"
|
||||||
|
volumes:
|
||||||
|
- ./models:/app/models
|
||||||
|
- ./audio:/app/audio
|
||||||
|
working_dir: /app
|
||||||
|
entrypoint: ""
|
||||||
|
command: ["./build/bin/whisper-server", "-m", "/app/models/ggml-tiny.en.bin", "-t", "4", "-p", "1", "--port", "8081", "--host", "0.0.0.0"]
|
||||||
|
environment:
|
||||||
|
- WHISPER_LOG_LEVEL=3
|
||||||
|
# Restart policy in case the service fails
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# Kokoro-FastAPI TTS service
|
||||||
|
kokoro-tts:
|
||||||
|
image: ghcr.io/remsky/kokoro-fastapi-cpu:latest
|
||||||
|
container_name: kokoro-tts
|
||||||
|
ports:
|
||||||
|
- "8880:8880"
|
||||||
|
environment:
|
||||||
|
- API_LOG_LEVEL=INFO
|
||||||
|
# For GPU support, uncomment the following lines:
|
||||||
|
# deploy:
|
||||||
|
# resources:
|
||||||
|
# reservations:
|
||||||
|
# devices:
|
||||||
|
# - driver: nvidia
|
||||||
|
# count: 1
|
||||||
|
# capabilities: [gpu]
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
models:
|
||||||
|
driver: local
|
||||||
|
audio:
|
||||||
|
driver: local
|
||||||
Reference in New Issue
Block a user