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

使用vllm后的音色疑似只有男声 #640

Open
ZaymeShaw opened this issue Jul 28, 2024 · 13 comments
Open

使用vllm后的音色疑似只有男声 #640

ZaymeShaw opened this issue Jul 28, 2024 · 13 comments
Labels
algorithm Algorithm improvements & issues documentation Improvements or additions to documentation

Comments

@ZaymeShaw
Copy link
Contributor

dev分支用相同spk_emb,vllm版音色跟原版不一样。而且vllm版似乎只能抽卡到男声音色

@fumiama
Copy link
Member

fumiama commented Jul 28, 2024

vllm还在适配各种功能阶段,现在还没有支持spk_emb。

@fumiama fumiama added documentation Improvements or additions to documentation algorithm Algorithm improvements & issues labels Jul 28, 2024
@CallmeZhangChenchen
Copy link

嗯,的确有这个问题!

@CallmeZhangChenchen
Copy link

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

@fumiama fumiama added this to ChatTTS Aug 19, 2024
@fumiama fumiama moved this to In Progress in ChatTTS Aug 19, 2024
@fumiama
Copy link
Member

fumiama commented Aug 19, 2024

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

应该不是。无 vLLM 的代码在 spk 为空时也会随机出现男女。

@wenyangchou
Copy link
Contributor

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

应该不是。无 vLLM 的代码在 spk 为空时也会随机出现男女。

原因确实是emb模块没加音色emb。原生的随机出现男女,1是他随机了音色embedding,2是模型本身具有一定随机性。

这个模块我个人私仓已经实现了,因为直接在ChatTTS-Forge那个仓库改的,等找个时间提pr过来到这

@fumiama
Copy link
Member

fumiama commented Aug 20, 2024

这个模块我个人私仓已经实现了,因为直接在ChatTTS-Forge那个仓库改的,等找个时间提pr过来到这

感谢,vLLM 代码我还没来得及细看。

@Hi-ylf
Copy link

Hi-ylf commented Aug 20, 2024

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

应该不是。无 vLLM 的代码在 spk 为空时也会随机出现男女。

原因确实是emb模块没加音色emb。原生的随机出现男女,1是他随机了音色embedding,2是模型本身具有一定随机性。

这个模块我个人私仓已经实现了,因为直接在ChatTTS-Forge那个仓库改的,等找个时间提pr过来到这

你好,请问这个方便请教一下吗? 我们最近也有在做这方面的优化,想学习学习

@zhouweiwei1822
Copy link

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

应该不是。无 vLLM 的代码在 spk 为空时也会随机出现男女。

原因确实是emb模块没加音色emb。原生的随机出现男女,1是他随机了音色embedding,2是模型本身具有一定随机性。

这个模块我个人私仓已经实现了,因为直接在ChatTTS-Forge那个仓库改的,等找个时间提pr过来到这

大佬,我也很想学习一下

@lddcdut
Copy link

lddcdut commented Sep 10, 2024

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

应该不是。无 vLLM 的代码在 spk 为空时也会随机出现男女。

原因确实是emb模块没加音色emb。原生的随机出现男女,1是他随机了音色embedding,2是模型本身具有一定随机性。

这个模块我个人私仓已经实现了,因为直接在ChatTTS-Forge那个仓库改的,等找个时间提pr过来到这

我在is_vllm判断这里添加上了spk_emb(spk_emb=params.spk_emb),但是生成出来的还是一个声音,请教大佬如何修改

if gpt.is_vllm:
            from .model.velocity import SamplingParams
            sample_params = SamplingParams(
                temperature=temperature,
                max_new_token=params.max_new_token,
                max_tokens=8192,
                min_new_token=params.min_new_token,
                logits_processors=(logits_processors, logits_warpers),
                eos_token=num_code,
                infer_text=False,
                start_idx=start_idx,
                spk_emb=params.spk_emb,
            )

@wenyangchou
Copy link
Contributor

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

应该不是。无 vLLM 的代码在 spk 为空时也会随机出现男女。

原因确实是emb模块没加音色emb。原生的随机出现男女,1是他随机了音色embedding,2是模型本身具有一定随机性。
这个模块我个人私仓已经实现了,因为直接在ChatTTS-Forge那个仓库改的,等找个时间提pr过来到这

我在is_vllm判断这里添加上了spk_emb(spk_emb=params.spk_emb),但是生成出来的还是一个声音,请教大佬如何修改

if gpt.is_vllm:
            from .model.velocity import SamplingParams
            sample_params = SamplingParams(
                temperature=temperature,
                max_new_token=params.max_new_token,
                max_tokens=8192,
                min_new_token=params.min_new_token,
                logits_processors=(logits_processors, logits_warpers),
                eos_token=num_code,
                infer_text=False,
                start_idx=start_idx,
                spk_emb=params.spk_emb,
            )

不在这改,在model_runner里面改。

我这边改动太大,功能包括

  • vllm注入音色
  • 异步接口 + batch推理
  • 流式推理噪音消除

方案跟当前仓库方案差异比较大,pr不准备提了,后面准备重新开个新仓库。

@fumiama
Copy link
Member

fumiama commented Sep 10, 2024

方案跟当前仓库方案差异比较大,pr不准备提了,后面准备重新开个新仓库。

vllm相关修改尽管提就行,在velocity那个文件夹内部怎么改都没有问题,只要外面调用不变。

@CallmeZhangChenchen
Copy link

#755
有兴趣的话可以参考一下

@sundoon
Copy link

sundoon commented Nov 5, 2024

看代码好像是 基础版传进了emb这个变量, 而 vllm 没有, 所以是不是只需要在 vllm infer 的时候 想办法传入 emb 就好了

应该不是。无 vLLM 的代码在 spk 为空时也会随机出现男女。

原因确实是emb模块没加音色emb。原生的随机出现男女,1是他随机了音色embedding,2是模型本身具有一定随机性。
这个模块我个人私仓已经实现了,因为直接在ChatTTS-Forge那个仓库改的,等找个时间提pr过来到这

我在is_vllm判断这里添加上了spk_emb(spk_emb=params.spk_emb),但是生成出来的还是一个声音,请教大佬如何修改

if gpt.is_vllm:
            from .model.velocity import SamplingParams
            sample_params = SamplingParams(
                temperature=temperature,
                max_new_token=params.max_new_token,
                max_tokens=8192,
                min_new_token=params.min_new_token,
                logits_processors=(logits_processors, logits_warpers),
                eos_token=num_code,
                infer_text=False,
                start_idx=start_idx,
                spk_emb=params.spk_emb,
            )

不在这改,在model_runner里面改。

我这边改动太大,功能包括

  • vllm注入音色
  • 异步接口 + batch推理
  • 流式推理噪音消除

方案跟当前仓库方案差异比较大,pr不准备提了,后面准备重新开个新仓库。

确实要改挺多的,需要一路传参到model_runner中,我是直接将声音种子放到了model_runner中做了实验。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
algorithm Algorithm improvements & issues documentation Improvements or additions to documentation
Projects
Status: In Progress
Development

No branches or pull requests

8 participants