|
|
|
FROM nvidia/cuda:12.8.1-cudnn-runtime-ubuntu22.04 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive |
|
ENV PYTHONUNBUFFERED=1 |
|
|
|
WORKDIR /app |
|
|
|
ARG EXTRAS |
|
ARG HF_PRECACHE_DIR |
|
ARG HF_TKN_FILE |
|
|
|
ENV HF_HOME="/app/tmp/cache/huggingface" |
|
ENV HF_HUB_CACHE="/app/tmp/cache/huggingface/hub" |
|
ENV XDG_CACHE_HOME="/app/tmp/cache/huggingface" |
|
ENV LIBROSA_CACHE_DIR="/app/tmp/librosa_cache" |
|
ENV NUMBA_CACHE_DIR="/app/tmp/numba_cache" |
|
ENV MPLCONFIGDIR="/app/tmp/matplotlib" |
|
ENV HF_HUB_ETAG_TIMEOUT="600" |
|
ENV HF_HUB_DOWNLOAD_TIMEOUT="600" |
|
ENV LD_LIBRARY_PATH="/usr/local/cuda:/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RUN apt-get update && \ |
|
apt-get install -y --no-install-recommends \ |
|
python3 \ |
|
python3-pip \ |
|
ffmpeg \ |
|
git \ |
|
libportaudio2 && \ |
|
rm -rf /var/lib/apt/lists/* |
|
|
|
RUN apt-get update && \ |
|
apt-get install -y libaio1 libaio-dev |
|
|
|
|
|
|
|
|
|
RUN pip install diart sounddevice |
|
RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 |
|
|
|
COPY . . |
|
|
|
RUN mkdir -p $HF_HOME && \ |
|
mkdir -p $HF_HUB_CACHE && \ |
|
mkdir -p $XDG_CACHE_HOME && \ |
|
mkdir -p $LIBROSA_CACHE_DIR && \ |
|
mkdir -p $NUMBA_CACHE_DIR && \ |
|
mkdir -p $MPLCONFIGDIR && \ |
|
chmod 777 $HF_HOME && \ |
|
chmod 777 $HF_HUB_CACHE && \ |
|
chmod 777 $XDG_CACHE_HOME && \ |
|
chmod 777 $LIBROSA_CACHE_DIR && \ |
|
chmod 777 $NUMBA_CACHE_DIR && \ |
|
chmod 777 $MPLCONFIGDIR && \ |
|
chmod -R 777 /app |
|
|
|
RUN mkdir -p /.cache && chmod -R 777 /.cache |
|
|
|
|
|
|
|
|
|
RUN if [ -n "$EXTRAS" ]; then \ |
|
echo "Installing with extras: [$EXTRAS]"; \ |
|
pip install --no-cache-dir .[$EXTRAS]; \ |
|
else \ |
|
echo "Installing base package only"; \ |
|
pip install --no-cache-dir .; \ |
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VOLUME ["/root/.cache/huggingface/hub"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RUN if [ -n "$HF_PRECACHE_DIR" ]; then \ |
|
echo "Copying Hugging Face cache from $HF_PRECACHE_DIR"; \ |
|
mkdir -p /root/.cache/huggingface/hub && \ |
|
cp -r $HF_PRECACHE_DIR/* /root/.cache/huggingface/hub; \ |
|
else \ |
|
echo "No local Hugging Face cache specified, skipping copy"; \ |
|
fi |
|
|
|
|
|
|
|
RUN if [ -n "$HF_TKN_FILE" ]; then \ |
|
echo "Copying Hugging Face token from $HF_TKN_FILE"; \ |
|
mkdir -p /root/.cache/huggingface && \ |
|
cp $HF_TKN_FILE /root/.cache/huggingface/token; \ |
|
else \ |
|
echo "No Hugging Face token file specified, skipping token setup"; \ |
|
fi |
|
|
|
|
|
EXPOSE 8000 |
|
|
|
ENTRYPOINT ["whisperlivekit-server", "--host", "0.0.0.0"] |
|
|
|
|
|
|
|
CMD ["--model", "large-v2", \ |
|
"--diarization", \ |
|
"--language", "es", \ |
|
"--buffer_trimming_sec", "2"] |