ChatTTS icon indicating copy to clipboard operation
ChatTTS copied to clipboard

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

Open ZaymeShaw opened this issue 1 year ago • 15 comments

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

ZaymeShaw avatar Jul 28 '24 06:07 ZaymeShaw

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

fumiama avatar Jul 28 '24 08:07 fumiama

嗯,的确有这个问题!

CallmeZhangChenchen avatar Aug 19 '24 01:08 CallmeZhangChenchen

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

CallmeZhangChenchen avatar Aug 19 '24 06:08 CallmeZhangChenchen

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

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

fumiama avatar Aug 19 '24 11:08 fumiama

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

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

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

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

wenyangchou avatar Aug 19 '24 11:08 wenyangchou

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

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

fumiama avatar Aug 20 '24 02:08 fumiama

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

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

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

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

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

Hi-ylf avatar Aug 20 '24 06:08 Hi-ylf

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

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

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

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

大佬,我也很想学习一下

zhouweiwei1822 avatar Sep 04 '24 08:09 zhouweiwei1822

看代码好像是 基础版传进了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,
            )

lddcdut avatar Sep 10 '24 11:09 lddcdut

看代码好像是 基础版传进了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不准备提了,后面准备重新开个新仓库。

wenyangchou avatar Sep 10 '24 11:09 wenyangchou

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

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

fumiama avatar Sep 10 '24 12:09 fumiama

https://github.com/2noise/ChatTTS/pull/755 有兴趣的话可以参考一下

CallmeZhangChenchen avatar Sep 14 '24 08:09 CallmeZhangChenchen

看代码好像是 基础版传进了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中做了实验。

sundoon avatar Nov 05 '24 02:11 sundoon

看代码好像是 基础版传进了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中做了实验。

请问大佬是如何将声音种子放到model_runner中的,能否提供一个例子,谢谢大佬了

37llll avatar Dec 31 '24 06:12 37llll

https://github.com/fengyizhu/ChatTTS 可以试试

看代码好像是 基础版传进了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中做了实验。

请问大佬是如何将声音种子放到model_runner中的,能否提供一个例子,谢谢大佬了

https://github.com/fengyizhu/ChatTTS 实现了一个稳定版本,可以尝试

fengyizhu avatar Jun 12 '25 14:06 fengyizhu