add: absorb soprano_to_rvc as regular subdirectory

Voice conversion pipeline (Soprano TTS → RVC) with Docker support.
Previously tracked as bare gitlink; removed .git/ directories and
absorbed into main repo for unified tracking.

Includes: Soprano TTS, RVC WebUI integration, Docker configs,
WebSocket API, and benchmark scripts.
Updated .gitignore to exclude large model weights (*.pth, *.pt, *.onnx, *.index).
287 files (3.1GB of ML weights properly excluded via gitignore).
This commit is contained in:
2026-03-04 00:24:53 +02:00
parent 34b184a05a
commit 8ca716029e
287 changed files with 47102 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
# Dockerfile.soprano
# Soprano TTS Server running on NVIDIA CUDA (GTX 1660)
# Python: 3.11.14 | pip: 25.3
FROM nvidia/cuda:11.8.0-runtime-ubuntu22.04
# Set timezone non-interactively
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
# Install Python 3.11.14 and dependencies
RUN apt-get update && apt-get install -y \
software-properties-common \
&& add-apt-repository ppa:deadsnakes/ppa \
&& apt-get update && apt-get install -y \
python3.11=3.11.14-* \
python3.11-venv \
python3.11-dev \
python3-pip \
git \
wget \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Set Python 3.11 as default
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 && \
update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
# Create app directory
WORKDIR /app
# Copy soprano source and server
COPY soprano/ /app/soprano/
COPY soprano_server.py /app/
COPY requirements-soprano.txt /app/
# Install Python dependencies - pin pip to 25.3
RUN pip3 install --no-cache-dir --upgrade pip==25.3
# Install PyTorch with CUDA 11.8 support
RUN pip3 install --no-cache-dir \
torch==2.7.1+cu118 \
torchvision==0.22.1+cu118 \
torchaudio==2.7.1+cu118 \
--index-url https://download.pytorch.org/whl/cu118
# Install requirements
RUN pip3 install --no-cache-dir -r /app/requirements-soprano.txt
# Install soprano from source with lmdeploy
WORKDIR /app/soprano
RUN pip3 install --no-cache-dir -e '.[lmdeploy]'
WORKDIR /app
# Expose ZMQ port (internal)
EXPOSE 5555
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD python3 -c "import zmq; ctx = zmq.Context(); s = ctx.socket(zmq.REQ); s.connect('tcp://localhost:5555'); s.close()" || exit 1
# Run soprano server
CMD ["python3", "soprano_server.py"]