国内Ubuntu环境Docker部署CosyVoice

王柳  论坛元老 | 2025-3-28 03:10:24 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1889|帖子 1889|积分 5667

国内Ubuntu环境Docker部署CosyVoice


本文旨在记载在 国内 CosyVoice项目在 Ubuntu 环境下如何使用 docker+min-conda进行一键部署。
源项目地点:
https://github.com/FunAudioLLM/CosyVoice
如果想要使用 docker+python 进行部署,可以参考我另一篇博客中的dockerfile进行修改。
https://blog.csdn.net/qq_36991535/article/details/144872382?spm=1001.2014.3001.5502
你只需要将在 git clone 的项目根目次下创建 docker 文件夹,然后将本文的文件放到docker文件夹内; model_download.py 放到项目根目次下;末了进入docker文件夹,使用docker compose -f compose.yaml up 命令即可一键部署。
文件一览:


  • Dockerfile
  • compose.yaml
  • requirements.txt
  • start.sh
  • model_download.py
效果,端口8888:

Dockerfile

  1. FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
  2. ARG VENV_NAME="cosyvoice"
  3. ENV VENV=$VENV_NAME
  4. ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
  5. ENV DEBIAN_FRONTEN=noninteractive
  6. ENV PYTHONUNBUFFERED=1
  7. SHELL ["/bin/bash", "--login", "-c"]
  8. RUN apt-get update -y --fix-missing
  9. RUN apt-get install -y git build-essential curl wget ffmpeg unzip git git-lfs sox libsox-dev && \
  10.     apt-get clean && \
  11.     git lfs install
  12. # ==================================================================
  13. # conda install and conda forge channel as default
  14. # ------------------------------------------------------------------
  15. # Install miniforge
  16. RUN wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O ~/miniforge.sh && \
  17.     /bin/bash ~/miniforge.sh -b -p /opt/conda && \
  18.     rm ~/miniforge.sh && \
  19.     ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
  20.     echo "source /opt/conda/etc/profile.d/conda.sh" >> /opt/nvidia/entrypoint.d/100.conda.sh && \
  21.     echo "source /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
  22.     echo "conda activate ${VENV}" >> /opt/nvidia/entrypoint.d/110.conda_default_env.sh && \
  23.     echo "conda activate ${VENV}" >> $HOME/.bashrc
  24. ENV PATH /opt/conda/bin:$PATH
  25. RUN conda config --add channels conda-forge && \
  26.     conda config --set channel_priority strict
  27. # ------------------------------------------------------------------
  28. # ~conda
  29. # ==================================================================
  30. RUN conda create -y -n ${VENV} python=3.8
  31. ENV CONDA_DEFAULT_ENV=${VENV}
  32. ENV PATH /opt/conda/bin:/opt/conda/envs/${VENV}/bin:$PATH
  33. WORKDIR /workspace
  34. COPY ./requirements.txt ./
  35. ENV PYTHONPATH="${PYTHONPATH}:/workspace/CosyVoice:/workspace/CosyVoice/third_party/Matcha-TTS"
  36. # RUN git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
  37. RUN conda activate ${VENV} && conda install -y -c conda-forge pynini==2.1.5
  38. # RUN conda activate ${VENV} && cd CosyVoice && pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
  39. RUN conda activate ${VENV} && pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
  40. WORKDIR /workspace/CosyVoice
复制代码
compose.yaml

  1. services:
  2.   cosyvoice:
  3.     container_name: cosyvoice
  4.     image: cosyvoice:1.0
  5.     restart: always
  6.     ports:
  7.       - 8888:8888
  8.     environment:
  9.       - TZ=Asia/Tokyo
  10.       - NVIDIA_VISIBLE_DEVICES=all
  11.     volumes:
  12.       - ../../CosyVoice:/workspace/CosyVoice
  13.     # command: tail -f /dev/null
  14.     command: sh -c "docker/start.sh"
  15.     deploy:
  16.       resources:
  17.         reservations:
  18.           devices:
  19.             - driver: nvidia
  20.               capabilities: [gpu]
复制代码
requirements.txt

  1. # --extra-index-url https://download.pytorch.org/whl/cu121
  2. --extra-index-url https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/wheel/cu121/
  3. --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ # https://github.com/microsoft/onnxruntime/issues/21684
  4. conformer==0.3.2
  5. deepspeed==0.14.2; sys_platform == 'linux'
  6. diffusers==0.27.2
  7. gdown==5.1.0
  8. gradio==4.32.2
  9. grpcio==1.57.0
  10. grpcio-tools==1.57.0
  11. huggingface-hub==0.25.2
  12. hydra-core==1.3.2
  13. HyperPyYAML==1.2.2
  14. inflect==7.3.1
  15. librosa==0.10.2
  16. lightning==2.2.4
  17. matplotlib==3.7.5
  18. modelscope==1.15.0
  19. networkx==3.1
  20. omegaconf==2.3.0
  21. onnx==1.16.0
  22. onnxruntime-gpu==1.18.0; sys_platform == 'linux'
  23. onnxruntime==1.18.0; sys_platform == 'darwin' or sys_platform == 'windows'
  24. openai-whisper==20231117
  25. protobuf==4.25
  26. pydantic==2.7.0
  27. rich==13.7.1
  28. soundfile==0.12.1
  29. tensorboard==2.14.0
  30. tensorrt-cu12==10.0.1; sys_platform == 'linux'
  31. tensorrt-cu12-bindings==10.0.1; sys_platform == 'linux'
  32. tensorrt-cu12-libs==10.0.1; sys_platform == 'linux'
  33. torch==2.3.1
  34. torchaudio==2.3.1
  35. transformers==4.40.1
  36. uvicorn==0.30.0
  37. wget==3.2
  38. fastapi==0.111.0
  39. fastapi-cli==0.0.4
  40. WeTextProcessing==1.0.3
  41. matcha
复制代码
start.sh

  1. #! /bin/bash
  2. python3 model_download.py
  3. python3 webui.py --port 8888 --model_dir pretrained_models/CosyVoice-300M
复制代码
model_download.py

  1. # SDK模型下载
  2. from modelscope import snapshot_download
  3. snapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')
  4. snapshot_download('iic/CosyVoice-300M', local_dir='pretrained_models/CosyVoice-300M')
  5. snapshot_download('iic/CosyVoice-300M-25Hz', local_dir='pretrained_models/CosyVoice-300M-25Hz')
  6. snapshot_download('iic/CosyVoice-300M-SFT', local_dir='pretrained_models/CosyVoice-300M-SFT')
  7. snapshot_download('iic/CosyVoice-300M-Instruct', local_dir='pretrained_models/CosyVoice-300M-Instruct')
  8. snapshot_download('iic/CosyVoice-ttsfrd', local_dir='pretrained_models/CosyVoice-ttsfrd')
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表