diff --git a/Docker/download.py b/Docker/download.py new file mode 100644 index 0000000..46becac --- /dev/null +++ b/Docker/download.py @@ -0,0 +1,7 @@ +# Download moda ASR related models +from modelscope import snapshot_download +model_dir = snapshot_download('damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch') +model_dir = snapshot_download('damo/speech_fsmn_vad_zh-cn-16k-common-pytorch') +model_dir = snapshot_download('damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch') + + diff --git a/Dockerfile b/Dockerfile index cbf92cb..ac85a4b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM cnstark/pytorch:2.0.1-py3.9.17-cuda11.8.0-ubuntu20.04 LABEL maintainer="breakstring@hotmail.com" -LABEL version="dev-20240123.03" +LABEL version="dev-20240127" LABEL description="Docker image for GPT-SoVITS" @@ -18,27 +18,19 @@ RUN apt-get update && \ WORKDIR /workspace COPY . /workspace +# install python packages +RUN pip install -r requirements.txt + # Download models RUN chmod +x /workspace/Docker/download.sh && /workspace/Docker/download.sh -# 本应该从 requirements.txt 里面安装package,但是由于funasr和modelscope的问题,暂时先在后面手工安装依赖包吧 -RUN pip install --no-cache-dir torch numpy scipy tensorboard librosa==0.9.2 numba==0.56.4 pytorch-lightning gradio==3.14.0 ffmpeg-python onnxruntime tqdm cn2an pypinyin pyopenjtalk g2p_en chardet transformers jieba psutil PyYAML -# 这里强制指定了modelscope和funasr的版本,后面damo_asr的模型让它们自己下载 -RUN pip install --no-cache-dir modelscope~=1.10.0 torchaudio sentencepiece funasr~=0.8.7 +# Download moda ASR related +RUN python /workspace/Docker/download.py -# 先屏蔽掉,让容器里自己下载 -# Clone damo_asr -#WORKDIR /workspace/tools/damo_asr/models -#RUN git clone --depth 1 https://www.modelscope.cn/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch.git speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch && \ -# (cd speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch && git lfs pull) -#RUN git clone --depth 1 https://www.modelscope.cn/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch.git speech_fsmn_vad_zh-cn-16k-common-pytorch && \ -# (cd speech_fsmn_vad_zh-cn-16k-common-pytorch && git lfs pull) -#RUN git clone --depth 1 https://www.modelscope.cn/iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch.git punc_ct-transformer_zh-cn-common-vocab272727-pytorch && \ -# (cd punc_ct-transformer_zh-cn-common-vocab272727-pytorch && git lfs pull) +# Download nltk realted +RUN python -m nltk.downloader averaged_perceptron_tagger +RUN python -m nltk.downloader cmudict -#RUN parallel --will-cite -a /workspace/Docker/damo.sha256 "echo -n {} | sha256sum -c" - -#WORKDIR /workspace EXPOSE 9870 EXPOSE 9871 diff --git a/README.md b/README.md index 8613816..6d5dd22 100644 --- a/README.md +++ b/README.md @@ -121,8 +121,9 @@ For UVR5 (Vocals/Accompaniment Separation & Reverberation Removal, additionally) ### Using Docker -#### docker-compose.yaml configuration +#### docker-compose.yaml configuration +0. Regarding image tags: Due to rapid updates in the codebase and the slow process of packaging and testing images, please check [Docker Hub](https://hub.docker.com/r/breakstring/gpt-sovits) for the currently packaged latest images and select as per your situation, or alternatively, build locally using a Dockerfile according to your own needs. 1. Environment Variables: - is_half: Controls half-precision/double-precision. This is typically the cause if the content under the directories 4-cnhubert/5-wav32k is not generated correctly during the "SSL extracting" step. Adjust to True or False based on your actual situation. @@ -140,7 +141,7 @@ docker compose -f "docker-compose.yaml" up -d As above, modify the corresponding parameters based on your actual situation, then run the following command: ``` -docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9870:9870 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:dev-20240123.03 +docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9870:9870 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:xxxxx ``` diff --git a/docker-compose.yaml b/docker-compose.yaml index ed6f82a..874824e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,7 +2,7 @@ version: '3.8' services: gpt-sovits: - image: breakstring/gpt-sovits:dev-20240123.03 + image: breakstring/gpt-sovits:xxxxx # please change the image name and tag base your environment container_name: gpt-sovits-container environment: - is_half=False diff --git a/docs/cn/README.md b/docs/cn/README.md index 3b07753..d66b2a5 100644 --- a/docs/cn/README.md +++ b/docs/cn/README.md @@ -110,7 +110,7 @@ brew install ffmpeg ### 在 Docker 中使用 #### docker-compose.yaml 设置 - +0. image的标签:由于代码库更新很快,镜像的打包和测试又很慢,所以请自行在 [Docker Hub](https://hub.docker.com/r/breakstring/gpt-sovits) 查看当前打包好的最新的镜像并根据自己的情况选用,或者在本地根据您自己的需求通过Dockerfile进行构建。 1. 环境变量: - is_half: 半精度/双精度控制。在进行 "SSL extracting" 步骤时如果无法正确生成 4-cnhubert/5-wav32k 目录下的内容时,一般都是它引起的,可以根据实际情况来调整为True或者False。 @@ -129,7 +129,7 @@ docker compose -f "docker-compose.yaml" up -d 同上,根据您自己的实际情况修改对应的参数,然后运行如下命令: ``` -docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9870:9870 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:dev-20240123.03 +docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9870:9870 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:xxxxx ``` diff --git a/docs/ja/README.md b/docs/ja/README.md index af5be46..9486752 100644 --- a/docs/ja/README.md +++ b/docs/ja/README.md @@ -106,8 +106,9 @@ brew install ffmpeg ### Dockerの使用 -#### docker-compose.yamlの設定 +#### docker-compose.yamlの設定 +0. イメージのタグについて:コードベースの更新が速く、イメージのパッケージングとテストが遅いため、[Docker Hub](https://hub.docker.com/r/breakstring/gpt-sovits) で現在パッケージされている最新のイメージをご覧になり、ご自身の状況に応じて選択するか、またはご自身のニーズに応じてDockerfileを使用してローカルで構築してください。 1. 環境変数: - `is_half`:半精度/倍精度の制御。"SSL抽出"ステップ中に`4-cnhubert/5-wav32k`ディレクトリ内の内容が正しく生成されない場合、通常これが原因です。実際の状況に応じてTrueまたはFalseに調整してください。 @@ -124,7 +125,7 @@ docker compose -f "docker-compose.yaml" up -d 上記と同様に、実際の状況に基づいて対応するパラメータを変更し、次のコマンドを実行します: ```markdown -docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9870:9870 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:dev-20240123.03 +docker run --rm -it --gpus=all --env=is_half=False --volume=G:\GPT-SoVITS-DockerTest\output:/workspace/output --volume=G:\GPT-SoVITS-DockerTest\logs:/workspace/logs --volume=G:\GPT-SoVITS-DockerTest\SoVITS_weights:/workspace/SoVITS_weights --workdir=/workspace -p 9870:9870 -p 9871:9871 -p 9872:9872 -p 9873:9873 -p 9874:9874 --shm-size="16G" -d breakstring/gpt-sovits:xxxxx ```