Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ISSUE] Failed to build installable wheels for some pyproject.toml based projects (pynini) #193

Open
6 tasks done
Jianing163 opened this issue Nov 21, 2024 · 11 comments
Open
6 tasks done
Labels
dependencies Pull requests that update a dependency file env Related to execution environment question Further information is requested

Comments

@Jianing163
Copy link

确认清单

  • 我已经阅读过 README.md 和 dependencies.md 文件
  • 我已经确认之前没有 issue 或 discussion 涉及此 BUG
  • 我已经确认问题发生在最新代码或稳定版本中
  • 我已经确认问题与 API 无关
  • 我已经确认问题与 WebUI 无关
  • 我已经确认问题与 Finetune 无关

你的issues

我使用的是 conda环境 python3.10.13
首先我拉下代码之后 我安装依赖 出现了问题 我使用的命令就是:python -m pip install -r requirements.txt
错误如下:
running build_ext
building '_pywrapfst' extension
creating build/temp.macosx-11.0-arm64-cpython-310/extensions
clang++ -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/homebrew/Caskroom/miniconda/base/envs/ForgeTTS_3.10/include -arch arm64 -fPIC -O2 -isystem /opt/homebrew/Caskroom/miniconda/base/envs/ForgeTTS_3.10/include -arch arm64 -I/opt/homebrew/Caskroom/miniconda/base/envs/ForgeTTS_3.10/include/python3.10 -c extensions/_pywrapfst.cpp -o build/temp.macosx-11.0-arm64-cpython-310/extensions/_pywrapfst.o -std=c++17 -Wno-register -Wno-deprecated-declarations -Wno-unused-function -Wno-unused-local-typedefs -funsigned-char -stdlib=libc++ -mmacosx-version-min=10.12
In file included from extensions/_pywrapfst.cpp:48:
/opt/homebrew/Caskroom/miniconda/base/envs/ForgeTTS_3.10/include/python3.10/Python.h:25:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
error: command '/opt/homebrew/Caskroom/miniconda/base/envs/ForgeTTS_3.10/bin/clang++' 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
Failed to build pynini
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pynini)

@Jianing163
Copy link
Author

我的系统是macos M3芯片

@zhzLuke96
Copy link
Member

把 reqquirements.txt 里面的 WeTextProcessing 删掉或者注释掉试试


这个库依赖 pynini (这个包不在linux上安装有点麻烦),不装这个包也是兼容的, reqquirements.txt 主要是针对linux环境比如docker,没在 mac 上试过

@zhzLuke96 zhzLuke96 added question Further information is requested dependencies Pull requests that update a dependency file env Related to execution environment labels Nov 21, 2024
@Jianing163
Copy link
Author

问题一:
在我的4090 服务器上 ,ubuntu 我是需要pip requirements.txt 还是requirements.dev.txt 还是reqirements.dev.gpu.txt呢 ,
问题二:
dev以及dev.gpu 这两个里面的matcha-tts的版本是0.0.6.0而这个版本对应的 gradio必须是3.43.2,但是文件中的gradio是4.44.0
大佬帮忙给看一下这两个问题

@Jianing163
Copy link
Author

Jianing163 commented Nov 22, 2024

我看文档中 git代码是ChatTTS-Forge,内容如下:
第二步 拉取代码
git clone https://github.com/lenML/ChatTTS-Forge.git --depth=1
但是我没有拉取这个ChatTTs
我使用的是git中的Speech-AI-Forge这个项目来运行的

@Jianing163
Copy link
Author

image
大佬 web界面这样是什么原因呀

@zhzLuke96
Copy link
Member

zhzLuke96 commented Nov 22, 2024

在我的4090 服务器上 ,ubuntu 我是需要pip requirements.txt 还是requirements.dev.txt 还是reqirements.dev.gpu.txt呢 ,

requirements.dev.txt/reqirements.dev.gpu.txt是ci环境跑流水线用的,一般使用不需要用这两个

dev以及dev.gpu 这两个里面的matcha-tts的版本是0.0.6.0而这个版本对应的 gradio必须是3.43.2,但是文件中的gradio是4.44.0

用 4.44.0

我看文档中 git代码是ChatTTS-Forge

ChatTTS-Forge 就是 Speech-AI-Forge,改名字了而已,github 会自动跳转,所以应该你也可以拉到代码

web界面这样是什么原因呀

网络问题,看看浏览器控制台,可能需要配置网络环境,某些css可能被墙了之类的

@Jianing163
Copy link
Author

大佬 我也感觉是网络问题,我部署上去之后 让gradio生成的公网访问地址,是没问题的
giadio公网效果:
image
而 我在4090上部署的样子,er而且这个功能还不能使用 报错连接错误以及听语音的地方就显示错误
image

@Jianing163
Copy link
Author

Jianing163 commented Nov 27, 2024

老师 你好,声音克隆的api 我传入的两个音频文件
image
params的参数
image
我没理解的是 这个接口返回的就是我那个123.mp3的音频的内容,
这里的克隆逻辑是什么 我看不懂这部分的代码
handler = VCHandler(
ref_spk=ref_spk,
input_audio=src_audio_wav,
vc_config=vc_config,
encoder_config=encoder_config,
)

        return handler.enqueue_to_response(request=request)

逻辑不是根据src的音频 然后生成一个.sp的文件 ,后续可以使用TTS的接口生成音频吗
或者是 根据src的音频 并传入一个inputText 然后生成一个该inputText的音频吗
请大佬赐教 我没太懂当前这个api的逻辑是什么意思

@Jianing163
Copy link
Author

是将src音频的声音克隆成ref的音频的音色,声音克隆只能用 OpenVoice吗 我看webui中CosyVoice的也是可以的给一串文本和一个音频 然后CosyVoice使用该音频的音色生成该文本的音频呢
api接口 /v1/vc 不能换其他模型吗 大佬

@Jianing163
Copy link
Author

还有一个事情。大佬,接口1 :上传一个声音,然后保存成json文件
接口2:指定speakerid 和inputText来生成音频
这样的逻辑 在api中 是哪一个呀 大佬

@zhzLuke96
Copy link
Member

zhzLuke96 commented Nov 27, 2024

v1的接口除了vc接口都不支持直接克隆,需要你先提供 spk 文件,spk文件现在新版本的暂时没法用api创建
/v1/speaker/create/v1/speaker/update还没完全适配新spk结构)

目前,你可以用两个方法创建spk文件:

  • 在webui中的 音色>builder tab下面创建音色文件
  • 使用代码创建(暂时没有示例代码...后面我看情况可以增加几个) API Demo Examples #194

关于克隆音色:

  • 现在所有模型都支持克隆
  • 指定spk克隆:使用 v1 接口需要指定 spk,也就是需要在 data/speakers 目录下提供 spk 文件
  • 提供参考音频克隆:使用 v2 接口既可以指定 spk,也可以直接提供参考音频(这样可以不依赖 data/speakers 文件),具体用法:
curl http://localhost:7870/v2/tts \
  -H "Authorization: Bearer anything_your_wanna" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello world!",
    "spk": {
      "from_ref": {
        "wav_b64": "<你的参考音频的base64字符串>",
        "text": "<参考音频对应的文本>"
      }
    }
  }' \
  --output speech.mp3

需要看接口参数有哪些,除了看代码,你也可以参考看自动文档
在你启动 api server 之后 http://localhost:7870/docs 下面就是自动生成的api文档,里面有一些参数和接口的介绍

关于 /v1/vc 接口:
这个接口是用于 voice clone 模型的,目前只支持 open-voice
如果你只是做tts生成,那么完全不需要这个接口,其他 tts 模型都能直接克隆了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file env Related to execution environment question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants