当前位置: 首页 > news >正文

国内Ubuntu环境Docker部署CosyVoice

国内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

FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04ARG VENV_NAME="cosyvoice"
ENV VENV=$VENV_NAME
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8ENV DEBIAN_FRONTEN=noninteractive
ENV PYTHONUNBUFFERED=1
SHELL ["/bin/bash", "--login", "-c"]RUN apt-get update -y --fix-missing
RUN apt-get install -y git build-essential curl wget ffmpeg unzip git git-lfs sox libsox-dev && \apt-get clean && \git lfs install# ==================================================================
# conda install and conda forge channel as default
# ------------------------------------------------------------------
# Install miniforge
RUN wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O ~/miniforge.sh && \/bin/bash ~/miniforge.sh -b -p /opt/conda && \rm ~/miniforge.sh && \ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \echo "source /opt/conda/etc/profile.d/conda.sh" >> /opt/nvidia/entrypoint.d/100.conda.sh && \echo "source /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \echo "conda activate ${VENV}" >> /opt/nvidia/entrypoint.d/110.conda_default_env.sh && \echo "conda activate ${VENV}" >> $HOME/.bashrcENV PATH /opt/conda/bin:$PATHRUN conda config --add channels conda-forge && \conda config --set channel_priority strict
# ------------------------------------------------------------------
# ~conda
# ==================================================================RUN conda create -y -n ${VENV} python=3.8
ENV CONDA_DEFAULT_ENV=${VENV}
ENV PATH /opt/conda/bin:/opt/conda/envs/${VENV}/bin:$PATHWORKDIR /workspace
COPY ./requirements.txt ./ENV PYTHONPATH="${PYTHONPATH}:/workspace/CosyVoice:/workspace/CosyVoice/third_party/Matcha-TTS"# RUN git clone --recursive https://github.com/FunAudioLLM/CosyVoice.gitRUN conda activate ${VENV} && conda install -y -c conda-forge pynini==2.1.5
# RUN conda activate ${VENV} && cd CosyVoice && pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
RUN conda activate ${VENV} && pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.comWORKDIR /workspace/CosyVoice

compose.yaml

services:cosyvoice:container_name: cosyvoiceimage: cosyvoice:1.0restart: alwaysports:- 8888:8888environment:- TZ=Asia/Tokyo- NVIDIA_VISIBLE_DEVICES=allvolumes:- ../../CosyVoice:/workspace/CosyVoice# command: tail -f /dev/nullcommand: sh -c "docker/start.sh"deploy:resources:reservations:devices:- driver: nvidiacapabilities: [gpu]

requirements.txt

# --extra-index-url https://download.pytorch.org/whl/cu121
--extra-index-url https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/wheel/cu121/
--extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ # https://github.com/microsoft/onnxruntime/issues/21684
conformer==0.3.2
deepspeed==0.14.2; sys_platform == 'linux'
diffusers==0.27.2
gdown==5.1.0
gradio==4.32.2
grpcio==1.57.0
grpcio-tools==1.57.0
huggingface-hub==0.25.2
hydra-core==1.3.2
HyperPyYAML==1.2.2
inflect==7.3.1
librosa==0.10.2
lightning==2.2.4
matplotlib==3.7.5
modelscope==1.15.0
networkx==3.1
omegaconf==2.3.0
onnx==1.16.0
onnxruntime-gpu==1.18.0; sys_platform == 'linux'
onnxruntime==1.18.0; sys_platform == 'darwin' or sys_platform == 'windows'
openai-whisper==20231117
protobuf==4.25
pydantic==2.7.0
rich==13.7.1
soundfile==0.12.1
tensorboard==2.14.0
tensorrt-cu12==10.0.1; sys_platform == 'linux'
tensorrt-cu12-bindings==10.0.1; sys_platform == 'linux'
tensorrt-cu12-libs==10.0.1; sys_platform == 'linux'
torch==2.3.1
torchaudio==2.3.1
transformers==4.40.1
uvicorn==0.30.0
wget==3.2
fastapi==0.111.0
fastapi-cli==0.0.4
WeTextProcessing==1.0.3
matcha

start.sh

#! /bin/bash
python3 model_download.py
python3 webui.py --port 8888 --model_dir pretrained_models/CosyVoice-300M

model_download.py

# SDK模型下载
from modelscope import snapshot_download
snapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')
snapshot_download('iic/CosyVoice-300M', local_dir='pretrained_models/CosyVoice-300M')
snapshot_download('iic/CosyVoice-300M-25Hz', local_dir='pretrained_models/CosyVoice-300M-25Hz')
snapshot_download('iic/CosyVoice-300M-SFT', local_dir='pretrained_models/CosyVoice-300M-SFT')
snapshot_download('iic/CosyVoice-300M-Instruct', local_dir='pretrained_models/CosyVoice-300M-Instruct')
snapshot_download('iic/CosyVoice-ttsfrd', local_dir='pretrained_models/CosyVoice-ttsfrd')

相关文章:

国内Ubuntu环境Docker部署CosyVoice

国内Ubuntu环境Docker部署CosyVoice 本文旨在记录在 国内 CosyVoice项目在 Ubuntu 环境下如何使用 dockermin-conda进行一键部署。 源项目地址: https://github.com/FunAudioLLM/CosyVoice 如果想要使用 dockerpython 进行部署,可以参考我另一篇博客中的…...

嵌入式linux系统中QT信号与槽实现

第一:Qt中信号与槽简介 信号与槽是Qt编程的基础。因为有了信号与槽的编程机制,在Qt中处理界面各个组件的交互操作时变得更加直观和简单。 槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。 案例操作与实现: #ifndef …...

科研绘图系列:R语言单细胞数据常见的可视化图形

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理图1图2图3图4图5图6系统信息参考介绍 单细胞数据常见的可视化图形 因为本教程是单细胞数据,因此运行本画图脚本需要电脑的内存最少32Gb 加载…...

使用 C++ 和函数式编程构建高效的 AI 模型

引言 现代 AI 开发常常使用 Python,但在底层实现中,C 仍是不可或缺的语言,尤其是在性能敏感的场景下。将 C 与函数式编程结合,可以打造高效、模块化的 AI 模型,同时提高代码的可读性和可维护性。本文将深入探讨如何利用…...

guestfish/libguestfs镜像管理工具简介

文章目录 简介guestfishlibguestfs项目 例子原理代码libguestfs架构参考 简介 guestfish Guestfish 是libguestfs项目中的一个工具软件,提供修改虚机镜像内部配置的功能。它不需要把虚机镜像挂接到本地,而是为你提供一个shell接口,你可以查…...

如何在centos中进行有效的网络管理

如何在centos中进行有效的网络管理? 在CentOS中,网络管理是系统管理员日常工作的重要组成部分,本文将详细介绍CentOS中的两种主要网络管理工具:传统的network服务和新一代的NetworkManager,帮助读者更好地配置和管理C…...

Oracle清空表后如何恢复数据

有时候忘记备份数据,把数据清空了,或者删除了,这时候怎么恢复数据呢,使用下面sql即可,替换对应的table和column INSERT INTO table1(column1,column2,column3 ) SELECTcolumn1,column2,column3 FROMtable1 AS OF time…...

ElasticSearch基础-文章目录

ElasticSearch学习总结1(环境安装) ElasticSearch学习总结2(基础查询) ElasticSearch学习总结3(.NetCore操作ES) ElasticSearch学习总结4(sql操作ES) ElasticSearch学习总结5&am…...

SpringMVC(二)原理

目录 一、配置Maven(为了提升速度) 二、流程&&原理 SpringMVC中心控制器 完整流程: 一、配置Maven(为了提升速度) 在SpringMVC(一)配置-CSDN博客的配置中,导入Maven会非…...

Selenium 自动化,如何下载正确的 ChromeDriver

在 Python 的 Selenium 自动化操作中,chromedriver 是不可或缺的驱动程序。没有正确安装对应版本的驱动,运行代码时常常会遇到报错问题,比如 “session not created: This version of ChromeDriver only supports Chrome version XX”。 今天…...

[Linux]redis5.0.x升级至7.x完整操作流程

1. 从官网下载最新版redis: 官网地址:https://redis.io/download 注:下载需要的登录,如果选择使用github账号登录,那么需要提前在github账号中取消勾选“Keep my email addresses private”(隐藏我的邮箱…...

Java字符编码与正则表达式深度解析

Java字符编码与正则表达式深度解析 1. 字符编码发展 1.1 ASCII 码 在计算机最初发明时,主要用于数值计算,但随着计算需求的增加,人们发现计算机可以用来处理文本信息。因此,将字符映射为数字来表示。 字母 ‘A’ 映射为 65&am…...

【C++】B2099 矩阵交换行

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述题目描述输入格式输出格式输入输出样例输入 #1输出 #1 💯题目分析💯不同解法分析我的做法实现步骤:优点:不足&#…...

论文解读 | NeurIPS'24 IRCAN:通过识别和重新加权上下文感知神经元来减轻大语言模型生成中的知识冲突...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 史丹,天津大学博士生 内容简介 大语言模型(LLM)经过海量数据训练后编码了丰富的世界知识。最近的研究表明&#xff0c…...

edeg插件/扩展推荐:助力生活工作

WeTab 此插件在我看来有2个作用 1.改变edeg的主页布局和样式,使其更加精简,无广告 2.提供付费webtab Ai(底层是chatGpt) 沉浸式翻译 此插件可翻译网页的内容 假设我们浏览github 翻译前 翻译后 Better Ruler 可以对网页的距离进行测量 适合写前端的小伙伴 用法示例:...

基于Python读取ZIP和TAR格式压缩包教程

在数据处理和文件管理中,压缩包(如ZIP、TAR等格式)的使用非常普遍。Python提供了多种库来读取和处理这些压缩包。本文将介绍如何使用Python的内置库和第三方库来读取ZIP和TAR格式的压缩包。 1、读取ZIP文件 Python的zipfile模块提供了处理Z…...

懒人不下床型遥控方案--手机对电脑的简单遥控(无收费方案)

兄弟们,天气越发寒冷,不得不说,对像我这种喜欢看直播睡觉的懒狗越发的不友好了,每次昏昏欲睡但还要下床关直播的操作就像泡完温泉直接冲凉水澡,透心凉,心飞扬。 最进也是有时间找找合适的懒人方案解决这个…...

人工智能知识分享第八天-机器学习_泰坦尼克生存预估线性回归和决策树回归对比案例

泰坦尼克生存预估案例 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import classification_report import matplotlib.pyplot as plt from sklearn.tree import plot_t…...

html中下拉选框的基本实现方式及JavaScript动态修改选项内容情况总结

最近项目中使用到了下拉选项以及通过js判断动态改变选项值的相关操作,查询了一些相关内容,在此记录一下,以免后续再碰到布置如何书写。 一、html中下拉选框的基本方式 在 HTML 中,创建下拉选择框(也叫选择菜单&#…...

sql server期末复习

表操作 创建create 删除drop 修改alter 数据操作 查询 select from <tableName> 插入 insert into <tableName> values 修改 update <tableName> set 删除 delete from <tableName> 授权与收回对数据的操作权限 授予 grant <权…...

TDesign Vue Next表格虚拟滚动:解决大数据性能瓶颈的实战指南

TDesign Vue Next表格虚拟滚动&#xff1a;解决大数据性能瓶颈的实战指南 【免费下载链接】tdesign-vue-next A Vue3.x UI components lib for TDesign. 项目地址: https://gitcode.com/gh_mirrors/tde/tdesign-vue-next 在当今数据驱动的应用开发中&#xff0c;处理大规…...

Cursor Free VIP:一键解锁AI编程助手Pro功能的终极解决方案

Cursor Free VIP&#xff1a;一键解锁AI编程助手Pro功能的终极解决方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached you…...

Cursor AI免费VIP破解工具:3步绕过试用限制的完整指南

Cursor AI免费VIP破解工具&#xff1a;3步绕过试用限制的完整指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tri…...

如何用AntiDupl.NET快速清理电脑中的重复图片:终极免费解决方案

如何用AntiDupl.NET快速清理电脑中的重复图片&#xff1a;终极免费解决方案 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾为电脑里堆积如山的重复图片而烦恼…...

如何轻松解决Cursor试用限制?5分钟搞定设备标识重置

如何轻松解决Cursor试用限制&#xff1f;5分钟搞定设备标识重置 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Your request has been blocked as our system has detected suspicious activity / Youve reached your trial request limit. / …...

暗黑2存档编辑器d2s-editor:5分钟掌握终极游戏存档管理方案

暗黑2存档编辑器d2s-editor&#xff1a;5分钟掌握终极游戏存档管理方案 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾在暗黑破坏神2中因为角色属性不理想而反复刷怪&#xff1f;是否因为装备难以获取而无法体验高级游…...

旅游安全监控:紧急求助与位置追踪的系统

旅游安全监控&#xff1a;紧急求助与位置追踪的系统 随着旅游业的蓬勃发展&#xff0c;游客的安全问题日益受到关注。无论是独自探险的背包客&#xff0c;还是家庭出游的亲子团&#xff0c;都可能面临迷路、突发疾病或意外事故等风险。为此&#xff0c;旅游安全监控系统应运而…...

像素时装锻造坊企业应用:游戏公司IP衍生品快速视觉化落地实操手册

像素时装锻造坊企业应用&#xff1a;游戏公司IP衍生品快速视觉化落地实操手册 1. 工具介绍与核心价值 像素时装锻造坊&#xff08;Pixel Fashion Atelier&#xff09;是一款专为游戏公司设计的AI图像生成工作站&#xff0c;基于Stable Diffusion与Anything-v5技术构建。不同于…...

3分钟搞定城通网盘限速:免费直连解析工具完整指南

3分钟搞定城通网盘限速&#xff1a;免费直连解析工具完整指南 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾经因为城通网盘的限速下载而烦恼&#xff1f;面对几十KB/s的下载速度&#xff0c;…...

通义千问3-Reranker-0.6B完整指南:与OpenSearch无缝集成方案

通义千问3-Reranker-0.6B完整指南&#xff1a;与OpenSearch无缝集成方案 1. 模型介绍与核心价值 Qwen3-Reranker-0.6B 是阿里云通义千问团队推出的新一代文本重排序模型&#xff0c;专门为文本检索和排序任务设计。这个模型就像一个智能的"排序专家"&#xff0c;能…...