记录:ubuntu 使用chattts的过程。

你知道什么是穷人吗?穷人就是没钱还想学习。

git GitHub - 2noise/ChatTTS: A generative speech model for daily dialogue.

因为所以。cosyvoice,gpt-s .

0.先找一个目录吧。

1.命令行模式

duyicheng@duyicheng-computer:~/gitee$ git clone https://github.com/2noise/ChatTTS
Cloning into 'ChatTTS'...
remote: Enumerating objects: 2628, done.
remote: Counting objects: 100% (754/754), done.
remote: Compressing objects: 100% (342/342), done.
remote: Total 2628 (delta 486), reused 465 (delta 402), pack-reused 1874 (from 1)
Receiving objects: 100% (2628/2628), 7.99 MiB | 6.33 MiB/s, done.
Resolving deltas: 100% (1586/1586), done.
duyicheng@duyicheng-computer:~/gitee$ 

2.创建虚拟环境

在Ubuntu中安装Anaconda和创建虚拟环境(保姆级教学,值得借鉴与信任)_ubuntu anaconda创建虚拟环境-CSDN博客

conda create -n chattts python=3.12
conda activate chattts

我喜欢把虚拟环境用小写的命名,不知这样合适不?

3.pycharm 创建工程

注意大小写一致,关键点已经全部标出来。

 

4.进入虚拟环境,并安装相关。先修改国内源(已经改过的忽之)

设为默认

升级 pip 到最新的版本后进行配置:

python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:

python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip
pip install -r requirements.txt
Optional: Install vLLM (Linux only)  看你的平台决定是否。

pip install safetensors vllm==0.2.7 torchaudio

4.1相关错误解决

Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
 
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-rl41m62f/pynini_3e3a079589ce484b9162320165b6356c/setup.py", line 22, in <module>
          from Cython.Build import cythonize
      ModuleNotFoundError: No module named 'Cython'
      [end of output]
 
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

解决方法:

     pip install Cython
     

Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio->-r requirements.txt (line 10))
  Using cached https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Building wheels for collected packages: pynini, encodec, cdifflib, wget
  Building wheel for pynini (setup.py) ... error
  error: subprocess-exited-with-error
 
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [52 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-312/pywrapfst
      copying pywrapfst/__init__.py -> build/lib.linux-x86_64-cpython-312/pywrapfst
      creating build/lib.linux-x86_64-cpython-312/pynini
      copying pynini/__init__.py -> build/lib.linux-x86_64-cpython-312/pynini
      creating build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/numbers.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/chatspeak.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/g2p.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/plurals.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/case.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/chatspeak_model.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/dates.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/weather.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/__init__.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/examples/t9.py -> build/lib.linux-x86_64-cpython-312/pynini/examples
      creating build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/byte.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/utf8.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/edit_transducer.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/paradigms.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/rewrite.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/__init__.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/tagger.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/pynutil.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/rule_cascade.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/lib/features.py -> build/lib.linux-x86_64-cpython-312/pynini/lib
      creating build/lib.linux-x86_64-cpython-312/pynini/export
      copying pynini/export/export.py -> build/lib.linux-x86_64-cpython-312/pynini/export
      copying pynini/export/grm.py -> build/lib.linux-x86_64-cpython-312/pynini/export
      copying pynini/export/grm_example.py -> build/lib.linux-x86_64-cpython-312/pynini/export
      copying pynini/export/__init__.py -> build/lib.linux-x86_64-cpython-312/pynini/export
      copying pynini/export/multi_grm_example.py -> build/lib.linux-x86_64-cpython-312/pynini/export
      copying pynini/export/multi_grm.py -> build/lib.linux-x86_64-cpython-312/pynini/export
      copying pywrapfst/__init__.pyi -> build/lib.linux-x86_64-cpython-312/pywrapfst
      copying pywrapfst/py.typed -> build/lib.linux-x86_64-cpython-312/pywrapfst
      copying pynini/__init__.pyi -> build/lib.linux-x86_64-cpython-312/pynini
      copying pynini/py.typed -> build/lib.linux-x86_64-cpython-312/pynini
      copying pynini/examples/py.typed -> build/lib.linux-x86_64-cpython-312/pynini/examples
      copying pynini/lib/py.typed -> build/lib.linux-x86_64-cpython-312/pynini/lib
      copying pynini/export/py.typed -> build/lib.linux-x86_64-cpython-312/pynini/export
      running build_ext
      building '_pywrapfst' extension
      creating build/temp.linux-x86_64-cpython-312/extensions
      g++ -pthread -B /home/duyicheng/anaconda3/envs/chattts/compiler_compat -fno-strict-overflow -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/duyicheng/anaconda3/envs/chattts/include -fPIC -O2 -isystem /home/duyicheng/anaconda3/envs/chattts/include -fPIC -I/home/duyicheng/anaconda3/envs/chattts/include/python3.12 -c extensions/_pywrapfst.cpp -o build/temp.linux-x86_64-cpython-312/extensions/_pywrapfst.o -std=c++17 -Wno-register -Wno-deprecated-declarations -Wno-unused-function -Wno-unused-local-typedefs -funsigned-char
      extensions/_pywrapfst.cpp:1289:10: fatal error: fst/util.h: No such file or directory
       1289 | #include <fst/util.h>
            |          ^~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/g++' failed with exit code 1
      [end of output]
 
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pynini
  Running setup.py clean for pynini
  Building wheel for encodec (setup.py) ... done
  Created wheel for encodec: filename=encodec-0.1.1-py3-none-any.whl size=45760 sha256=005bea59eb74b0d8e3b97fb1bc5e888fa70e54c7f4d89ceba26d222fc04b417e
  Stored in directory: /home/duyicheng/.cache/pip/wheels/c3/ad/25/f3bc2f406330b1a23e1bed7af545b400df989c3a7e928e0253
  Building wheel for cdifflib (pyproject.toml) ... done
  Created wheel for cdifflib: filename=cdifflib-1.2.6-cp312-cp312-linux_x86_64.whl size=12666 sha256=c1d26ed10d6fa6d9cc91555fb849200212bb14950ccae17c3e14f4b70d64b788
  Stored in directory: /home/duyicheng/.cache/pip/wheels/d5/48/ca/ae20a5bb753a401fdecb6fca5bae9ef1ec893ef17b6d14be14
  Building wheel for wget (setup.py) ... done
  Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9656 sha256=fc05a276303d011c3b6eb5c55955518886c526975a6c596f695c6a998f5770e9
  Stored in directory: /home/duyicheng/.cache/pip/wheels/8c/ad/df/233ebb9957cf23ee9cd58bba09bea4caf4389b429ef6a32ef5
Successfully built encodec cdifflib wget
Failed to build pynini
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pynini)

解决

     我的系统解决方案,你参考

sudo apt-get update
     sudo apt-get install -y libfst-dev
    

pip install --only-binary :all: pynini

5. 梳理后的 requie...txt,各种冲突,之后的

numpy<2.0.0
numba
torch
torchaudio
tqdm
vector_quantize_pytorch
transformers>=4.41.1
vocos
IPython
gradio
pybase16384
pynini==2.1.5; sys_platform == 'linux'
WeTextProcessing; sys_platform == 'linux'
nemo_text_processing; sys_platform == 'linux'
av
pydub

成功之。

4.2安装模型  :

我要说的是,当进行第五步时,会自动安装。并且4.2整个的位置不对。可能是系统又更新了。请注意分析,完全可以忽略4.2。

魔搭社区

#安装ModelScope
pip install modelscope

新建 一个py,用来下载模型

#SDK模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('pzc163/chatTTS')

 

使用modelscope,可以手动在页面下载,或者通过其提供的SDK下载,使用SDK下载会将模型保存在 C:\Users\<你的用户名>\.cache\modelscope路径下。因为是本地加载模型,我将下载模型文件复制到了当前模型工作路径下F:\Chat-TTS\ChatTTS\model\chatTTS,方便使用。

 

 或

git下载,这用这个不太好用。

#Git模型下载
git clone https://www.modelscope.cn/pzc163/chatTTS.git

5.依据https://github.com/2noise/ChatTTS  进行测试

python examples/web/webui.py

执行上面的代码后,会自动安装所需要,另外,最最关键的是。生成的新的文件夹如图,与大多数教程上不一样。我上面的第4.2,是根据某些教程上完成的,可以不做。

[+0800 20241205 13:09:58] [INFO] ChatTTS | dl | checking assets...
[+0800 20241205 13:09:59] [INFO] ChatTTS | dl | /home/duyicheng/gitee/ChatTTS/asset/DVAE.safetensors not exist.
[+0800 20241205 13:09:59] [ERRO] ChatTTS | core | download to local path /home/duyicheng/gitee/ChatTTS failed.
[+0800 20241205 13:09:59] [ERRO]  WebUI  | webui | Models load failed.

提示的错误根据提示一个个的解决,把刚才从魔搭上下的复制到asset等下。如图:

。如图中颜色不正常的,都是复制来的。

(chattts) duyicheng@duyicheng-computer:~/gitee/ChatTTS$ python examples/web/webui.py
[+0800 20241205 13:41:05] [WARN]  WebUI  | funcs | no ffmpeg installed, use wav file output
[+0800 20241205 13:41:05] [INFO]  WebUI  | webui | loading ChatTTS model...
[+0800 20241205 13:41:05] [INFO] ChatTTS | dl | checking assets...
[+0800 20241205 13:41:10] [INFO] ChatTTS | dl | all assets are already latest.
[+0800 20241205 13:41:10] [INFO] ChatTTS | core | use device cuda:0
[+0800 20241205 13:41:11] [INFO] ChatTTS | core | vocos loaded.
[+0800 20241205 13:41:11] [INFO] ChatTTS | core | dvae loaded.
[+0800 20241205 13:41:12] [INFO] ChatTTS | core | embed loaded.
[+0800 20241205 13:41:13] [INFO] ChatTTS | core | gpt loaded.
[+0800 20241205 13:41:13] [INFO] ChatTTS | core | speaker loaded.
[+0800 20241205 13:41:13] [INFO] ChatTTS | core | decoder loaded.
[+0800 20241205 13:41:13] [INFO] ChatTTS | core | tokenizer loaded.
[+0800 20241205 13:41:13] [WARN]  WebUI  | funcs | Package nemo_text_processing not found!
[+0800 20241205 13:41:13] [WARN]  WebUI  | funcs | Run: conda install -c conda-forge pynini=2.1.5 && pip install nemo_text_processing
[+0800 20241205 13:41:13] [WARN]  WebUI  | funcs | Package WeTextProcessing not found!
[+0800 20241205 13:41:13] [WARN]  WebUI  | funcs | Run: conda install -c conda-forge pynini=2.1.5 && pip install WeTextProcessing
[+0800 20241205 13:41:13] [INFO]  WebUI  | webui | Models loaded successfully.
* Running on local URL:  http://0.0.0.0:8080

速度如

最后的提示,根据提示,如:

conda install -c conda-forge pynini=2.1.5 && pip install nemo_text_processing

打开共享

demo.launch(
        server_name=args.server_name,
        server_port=args.server_port,
        root_path=args.root_path,
        inbrowser=True,
        show_api=False,
        share=True
    )

如果,分享不成功。


1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc_linux_amd64
2. Rename the downloaded file to: frpc_linux_amd64_v0.3
3. Move the file to this location: /home/duyicheng/anaconda3/envs/chattts/lib/python3.12/site-packages/gradio

GitHub - bumblebeeMMa/DownLoad_frpc_linux_amd64: Download frpc_linux_amd64

 留下一个问题,本地运行可以了,但是,想利用公网的这个地址还是不行。先这样吧。,下一步继续。

速度如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/930348.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW氢同位素单质气体定量分装系统

氢同位素单质气体在多个行业中有重要应用&#xff0c;如能源和化工。传统的分装方法面临精度和自动化程度不足的问题。为此&#xff0c;开发了一套基于LabVIEW和质量流量控制器的定量分装系统&#xff0c;提高分装精度和效率&#xff0c;同时减少资源浪费和环境污染。 项目背景…

分类预测 | PSO-PNN粒子群优化概率神经网络多特征分类预测

分类预测 | PSO-PNN粒子群优化概率神经网络多特征分类预测 目录 分类预测 | PSO-PNN粒子群优化概率神经网络多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO-PNN粒子群优化概率神经网络多特征分类预测&#xff0c;运行环境Matlab2018b及以…

鸿蒙开发-Divider 组件

在 ArkTS 中&#xff0c;Divider组件是用于在界面上显示分割线的组件&#xff0c;以下是其详细介绍&#xff1a; 基本功能 Divider组件主要用于将页面中的不同部分进行视觉上的分隔&#xff0c;使页面布局更加清晰和有条理&#xff0c;增强用户界面的可读性和美观性。 常用属…

SpringBoot实战——个人博客项目

目录 一、项目简介 ?二、项目整体架构 数据库模块 后端模块 前端模块 ?三、项目具体展示 ?四、项目的具体实现 1、一些准备工作 ??数据库、数据表的创建 ??设置数据库和MyBatis的配置 ??将前端项目引入到当前项目中 2、登录注册模块 ??实体类的创建 ?…

利用sda剩余空间,扩容(lvm)

r如果余空间没有使用&#xff0c;直接扩容 pvdisplay vgdisplay pvresize /dev/sda3 扩展逻辑卷的大小&#xff1a; lvextend -l 100%FREE /dev/mapper/openeuler-root 对于ext4文件系统&#xff1a; resize2fs /dev/mapper/vg_openeuler-openeuler--root 对于xfs文件系…

【Golang】Go语言编程思想(一):接口

接口 接口的概念 现在我们要实现一个函数&#xff0c;用于对给定的 url 进行解析&#xff0c;具体的代码实现如下&#xff1a; package mainimport ("fmt""io""net/http" )func retrieve(url string) string {resp, err : http.Get(url)if er…

智能文档解析综述:结构化信息提取的技术、挑战与前景

综述论文&#xff1a;https://arxiv.org/abs/2410.21169 摘要 文档解析对于将非结构化和半结构化文档&#xff08;如合同、学术论文和发票&#xff09;转换为结构化、机器可读的数据至关重要。通过从非结构化输入中提取可靠的结构化数据&#xff0c;文档解析为众多应用提供了极…

如何将CSDN博客下载为PDF文件

1.打开CSDN文章内容 2.按键盘上的f12键&#xff08;或者右键—审查元素&#xff09;进入浏览器调试模式&#xff0c;点击控制台&#xff08;Console&#xff09;进入控制台 3.在控制台输入以下代码&#xff0c;回车 4.在弹出的打印页面中将布局设置成横向&#xff0c;纵向会…

C# GDI绘制的小熊进度条

C# GDI小熊进度条 1、添加自定义控件winform using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…

嵌入式入门Day25

数据结构Day 6,IO Day1 查找算法顺序查找折半查找&#xff08;二分查找&#xff09;哈希查找 IO概念标准IO创建递归索引&#xff08;用于查询结构体定义&#xff09; 文件IO标准IO缓冲区指针相关函数 查找算法 顺序查找 关键字&#xff1a;分为主关键字和次关键字主关键字&am…

操作系统——虚拟内存管理

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt&#xff0c;仅供学习交流使用&#xff0c;谢谢。 背景 进程必须全部放入物理内存后方可运行&#xff0c;这个规则将程序大小限制为物理内存大小。许多情况下并不需要将整个程序置于内存中&#xff0c;比如程序几乎从不执行但…

Java 在Json对象字符串中查找和提取特定的数据

1、在处理JSON数据时&#xff0c;需要提出个别字段的值&#xff0c;通过正则表达式提取特定的数据 public static void main(String[] args) {//定义多个JSON对象字符串类型&#xff0c;假设每个对象有a,b,c 字段String strJson "{\"a\":1.23,\"b\"…

进度与预算

一个项目&#xff0c;如果进度上可以按时完成&#xff0c;一般来说预算不会超标&#xff0c;或者超标幅度有限。 一个项目&#xff0c;如果进度上严重超期&#xff0c;预算基本上会超标&#xff0c;而且超标很大。 现在很多项目&#xff0c;人力成本占比都比较大&#xff0c…

Ungoogled Chromium127编译指南 Windows篇 - 安装Visual Studio 2022(六)

1. 引言 在编译Ungoogled Chromium之前&#xff0c;正确安装和配置Visual Studio 2022是至关重要的一步。作为主要的开发环境&#xff0c;Visual Studio不仅提供了必要的编译工具&#xff0c;还包含了大量构建过程中需要的组件和库。本文将详细介绍如何在Windows系统上安装和配…

电子商务人工智能指南 3/6 - 聊天机器人和客户服务

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

精确的单向延迟测量:使用普通硬件和软件

论文标题&#xff1a;Precise One-way Delay Measurement with Common Hardware and Software&#xff08;精确的单向延迟测量&#xff1a;使用普通硬件和软件&#xff09; 作者信息&#xff1a;Maciej Muehleisen 和 Mazen Abdel Latif&#xff0c;来自Ericsson Research Eri…

字符串的特征

底层是char类型的数组 char[] replace()&#xff1a;替换 split()&#xff1a;切分 indexOf()&#xff1a;第一个字符所在位置&#xff0c;从0开始算 substring(3, 6)&#xff1a;字符串截取&#xff0c;包括3不包括6 字符串不可变 本质上是数组&#xff0c;数组是固定值…

三维扫描检测在汽车制造中的应用

三维扫描&#xff0c;通过先进三维扫描技术获取产品和物体的形面三维数据&#xff0c;建立实物的三维图档&#xff0c;满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…

【已解决】黑马点评项目中启动Spring Boot服务失败,com.sun.tools.javac.tree.JCTree qualid

黑马点评项目中启动Spring Boot服务失败 报错提示 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualid这是因为 lombok 版本不兼容造成的 找到 pom.xml 文件&#xff0…

Netty入门(快速了解以及使用netty)

二. Netty 入门 1. 概述 1.1 Netty 是什么&#xff1f; Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.Netty 是一个异步的、基于事件驱动的网络应用框架&…