Coder Social home page Coder Social logo

moetts's Introduction

MoeTTS

Speech synthesis model repo for galgame characters based on Tacotron2 , Hifigan and VITS. The repo is also used to publish precompiled GUI.

Notice : This project is only for AI study and hobby, because of the like of the characters to develop this project, no malicious purpose. If there is infringement, please submit issues, we will immediately remove the associated model.

简体中文 English

About

这是一个存放基于Tacotron2,Hifigan,VITS,Diff-SVC的galgame角色语音合成的模型库的仓库。另外也用于发行编译后的推理GUI。

停止维护通知:GUI功能维护已较为完善,此项目后续将不再维护。

近期更新

1.3.0:

  1. 增加openvpi版diff svc,原版diff svc 24000模型,带fs模型不再支持,需要请下载1.2.5版本
  2. 优化GUI设置相关代码
  3. VITS支持发送至diff svc(语音合成完毕后交给diff svc进行语音转换)
  4. 修改cleaners逻辑,现在可以选择自动clean(待输入文本clean后再合成)
  5. 多人模型可以使用下拉列表选择说话人
  6. 修复diff svc界面高DPI 下控件显示错位
  7. 更新配置文件格式

1.2.5:

  1. 规范diff_svc import
  2. 精简VITS与Tacotron2代码并移除了matplotlib, tensorflow依赖
  3. 删除不必要导入及依赖,加快启动速度
  4. diff svc增加Crepe轻量模型
  5. 使用两种编译器(pyinstaller, nuitka)
  6. diff svc音频处理采样类型换为fft

1.2.4:

  1. 增加最近模型与输出路径记录,方便下次打开继续。
  2. 增加完成通知,可以在设置中打开(仅win10)。
  3. 更新diff-svc(12-04版)
  4. 内置了Openvpi的nsf_hifigan权重 (详见:https://openvpi.github.io/vocoders/)

1.2.3-beta:

  1. 更新diff-svc(同步diffsvc原项目:支持nsf hifigan,增加Crepe缓存,修复了一些BUG)
  2. 11-22:BUG通知,加载输入音频会覆盖原始wav,记得备份。配置文件开启UV可能导致呼吸声与空白异常。下版本修复。

GPU版请见本仓库“gpu”分支(此分支更新滞后于cpu版)。代码见dev分支。

用户协议

在开源协议的基础上还请遵守以下几点:

  1. (重要)不得将本软件、本仓库提供的预训练模型以及衍生产物用于商业目的(例如:带有付费功能的QQ机器人,直接贩售,商业游戏等)对原作进行二次创作不包含在内。
  2. 二次创作请遵守原作用户协议,请勿制作会对原作造成不良影响的内容,另外请注明你的作品使用了语音合成,避免造成误会。
  3. 本仓库提供的预训练模型及数据部分来自社区,使用造成的一切后果由使用者承担,与本仓库作者及贡献者无关。
  4. 禁止使用本仓库任何内容(包括但不限于代码,编译后的exe,预训练模型)进行原创游戏制作。

本项目态度:

  1. 本项目仅鼓励合理范围内对原作的二次创作,反对任何对原作以及相关行业的侮辱等不当行为。

使用方法

模型目录及配置文件格式

  1. 单模型可以放在任意位置,如果模型带有配置文件,请将它重命名为config.json(diff-svc请重命名为config.yaml)并与模型放置在同一目录。

  2. **(TTS模型配置)**使用TTS模型前,请编写一个简单的配置文件,并将它命名为moetts.json与你的TTS模型放在同一目录。

    注:如果你使用的不是本仓库提供的模型,那么此步骤是必须的

    以下为多人模型配置示例(单人只需要symbols):

    {
    	"symbols":["_", ",", ".", "!", "?", "-", "A", "E", "I", "N", "O", "Q", "U", "a", "b", "d", "e", "f", "g", "h", "i", "j", "k", "m", "n", "o", "p", "r", "s", "t", "u", "v", "w", "y", "z", "\u0283", "\u02a7", "\u2193", "\u2191", " "],
        "speakers":{
    		"杏璃":0,
    		"杏铃":1,
    		"Apeiria":2,
    		"明日香":3,
    		"ATRI":4,
    		"艾拉":5,
    		"彩音":6,
    		"星奏":7,
    		"由依":8,
    		"冰织":9,
    		"真白":10,
    		"美绘瑠":11,
    		"二阶堂真红":12
    	}
    }
    

    注:此配置不是训练模型使用的config.json,是用于指定您的模型训练时所使用的symbols,例如VITS,您可以在vits/text/symbols.py中找到使用的symbols,并将它按以上格式保存为json。

GUI使用方法

TTS(tacotron2,vits)

VITS界面截图

说明:

  1. 角色ID:用于指定多人模型的角色。如果配置文件中含有角色表会优先加载下拉框供选择,你可以在设置中关闭下拉框。配置文件未提供角色表即在此输入数字选择角色。单人模型留空即可。

  2. 待合成文本:语音合成使用的文本(音素)。你可以将你的文本按模型输入要求clean后在此输入,也可以在工具箱中选择自动clean,在这直接输入原始文本即可。

    例(勾选自动转换后直接输入原始文本):

ToolBox界面截图

待合成文本

  1. 待迁移音频:VITS 多人模型提供的语音转换功能,可以对模型中一位角色的音频转为模型中的另一位角色。输入音频需要22050Hz,单声道wav。
  2. 合成并发送至SVC:使用VITS合成语音后再使用diff svc转换音频。使用此功能需要在VITS和Diff-SVC界面中提前选择好模型及输出位置等。

diff-svc

Diff-SVC界面截图

参数说明:

  1. 升降半音:默认为0,支持正负整数输入,单位为半音
  2. 启用Crepe:该选项可降噪音频,启用后CPU耗时较高,约为原音频时长8倍,建议合成最终版本再开启,干净的音频无需开启。
  3. Crepe轻量模式:在启用Crepe的前提下,勾选此选项后Crepe使用Tiny模型,耗时更短,约为原音频时长1/4。
  4. 加速倍率:默认为20,耗时约1:3,预览可使用100,耗时约1:1(该设置会影响音频质量)
  5. 待转换音频:wav或ogg纯人声音频,转换后为模型角色音色。
  6. 自适应变调:自动评估适合的音域进行转换(需要配置文件包含相关信息)。
  7. 角色ID:多人模型用,填入数字或使用下拉框选择。

在线Demo

Integrated into Huggingface Spaces using Gradio. Try it out Hugging  Face  Spaces

模型下载

TTS:

模型名与下载 类型 描述 输入格式
ATRI Tacotron2+Hifigan 游戏 ATRI- My dear moments 的角色ATRI模型 无空格罗马音,标点可保留英文逗号句号。例如:tozendesu.koseinodesukara.也可使用工具箱日语g2p(普通转换)
ATRI-VITS VITS 单角色 游戏 ATRI- My dear moments 的角色ATRI模型 工具箱中的日语g2p(调形标注+ts替换)
Galgame 13位角色 1.3.0配置文件 VITS 多角色 包含以下角色(游戏名略):0 杏璃 1 杏铃 2 Apeiria 3 明日香 4 ATRI 5 艾拉 6 彩音 7 星奏 8 由依 9 冰织 10 真白 11 美绘瑠 12 二阶堂真红 工具箱中的日语g2p(调形标注+ts替换)
Mori VITS 单角色 游戏 Fox Hime Zero 角色 茉莉 工具箱中的日语g2p(调形标注)

Diff-svc

模型名称与下载 备注 贡献者
姬野星奏 24000Hz(仅包含推理) luoyily
小鞠由依 24000Hz(仅包含推理) luoyily
ATRI 24000Hz(仅包含推理) RiceCake
鹰仓杏铃 24000Hz(仅包含推理) luoyily
悠音 24000Hz(仅包含推理) luoyily
锦 明日海 24000Hz(仅包含推理) luoyily
白咲美绘瑠 24000Hz(仅包含推理) luoyily
艾拉(可塑性记忆) 24000Hz(仅包含推理) luoyily
伊莉雅 24000Hz(仅包含推理) luoyily
ATRI_44100 44100Hz(仅包含推理) RiceCake
新海 天 44100Hz(仅包含推理) RiceCake
茉莉 百度网盘 hugging face 44100Hz(仅包含推理) luoyily
仓科明日香 百度网盘 hugging face 44100Hz(完整权重+仅推理权重) luoyily
在原七海 44100Hz(仅包含推理) RiceCake
二阶堂真红 44100Hz(仅包含推理) RiceCake
姬野星奏 百度网盘 hugging face 44100Hz(仅包含推理) luoyily
白咲美绘瑠 百度网盘 hugging face 44100Hz(仅包含推理) luoyily

注:以上diff-svc模型可能仅包含推理所必要的权重,您可能无法在他们的基础上直接继续训练。

常见QA

  1. Q:这个GUI能使用非官方Tacotron2或VITS训练的模型吗?

    A:未修改过模型结构的可以使用,请参考使用方法中说明进行配置。(so-vits,emo-vits等修改版本不支持)

  2. Q:如何获得完整代码?

    A:完整代码请参见dev或其它分支,main分支用于发布模型与GUI。

  3. Q:如何训练自己的模型?

    A:本仓库不提供自训练支持,请到本项目使用到的各个原项目中查看帮助。

  4. Q : 打不开,缺失DLL等?

    A:请安装常用运行库,如果依旧失败,可以使用cmd运行程序并提供尽可能详细的信息提交Issue。

分享模型&参与开发

此项目已暂停维护,不再添加新模型。

欢迎分享你的预训练模型,由于模型较大,暂时不打算存放在GitHub,可以拉取该项目后将你的模型下载地址以及信息写在Readme的模型下载部分中。提交PR即可。

如果有任何优化建议或者BUG可以提issue。

如您希望为项目追加新功能并合并到dev分支,请先查看Projects页面,避免PR冲突。

感谢名单&项目贡献者

  1. ShiroDoMain:1.0.0 CLI版本开发
  2. menproject:1.0.0 版本英语自述文件翻译
  3. CjangCjengh:提供编译的g2p工具以及适用于日语调形标注的符号文件。
  4. skytnt: 提供了hugging face 在线 demo

参考&引用

hifi-gan: https://github.com/jik876/hifi-gan

Tacotron2: https://github.com/NVIDIA/tacotron2

VITS:https://github.com/jaywalnut310/vits

diff-svc:https://github.com/prophesier/diff-svc

DiffSinger:https://github.com/MoonInTheRiver/DiffSinger

DiffSinger(openvpi):https://github.com/openvpi/DiffSinger

DiffSinger 社区声码器企划:https://openvpi.github.io/vocoders/

diff svc(openvpi): https://github.com/openvpi/diff-svc

moetts's People

Contributors

eltociear avatar luoyily avatar menproject avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moetts's Issues

已知BUG

V 1.2.5 Nuitka:由于修改了DiffSVC音频采样处理方式,高采样率音频出现卡死情况,将于下版本修复
V1.3.0 已修复

使用工具箱转换分词+调形时报错

尝试使用工具箱中分词+调形功能时报错:

Traceback (most recent call last):
File "japanese_g2p.py", line 116, in
UnicodeEncodeError: 'gbk' codec can't encode character '\u0283' in position 0: illegal multibyte sequence
[12176] Failed to execute script 'japanese_g2p' due to unhandled exception!

选择其它选项转换均正常。

分词+调形报错

软件版本:v1.1.1
操作系统:Windows 10 20H2
系统语言:中文(简体,**)

httpapi开发进度

您好,请问httpapi是否还在开发吗?

如果没有,我打算用docker包装一个vits的api,可以直接pr一个新分支吗 ?

MoeTTS dataset

Hey, I am interested in training a large English VITS base model to contribute to your project, I was wondering about your dataset, mainly how large is it and what type of data your team used so that I could potentially replicate it in native english, Sorry if this isn't the right place to ask but I couldn't find another way to get in touch, please let me know if you rather speak somewhere else, Thanks ^

关于MoeTTS运行过程中遇见的问题

大佬您好,我最近在用tacotron2训练命运石之门中助手的语音模型,然后想用您写的软件转换成语音输出,可是在运行过程中产生了如下报错
然后我又下载了您提供的Atri的文件试着跑了一遍,发现也产生了同样的报错
请问如何解决这种情况呢?

报错如下:
Exception in Tkinter callback
Traceback (most recent call last):
File "tkinter_init_.py", line 1705, in call
File "moe_tts_cpu_beta.py", line 455, in
File "moe_tts_cpu_beta.py", line 167, in inference_taco
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
File "tacotron2\hparams.py", line 1, in
File "", line 983, in _find_and_load
File "", line 967, in _find_and_load_unlocked
File "", line 677, in load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
File "tensorflow_init
.py", line 99, in
File "", line 983, in _find_and_load
File "", line 967, in find_and_load_unlocked
File "", line 677, in load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
File "tensorflow_core_init
.py", line 771, in
File "tensorflow_core_init
.py", line 769, in running_from_pip_package
File "tensorflow_core_init
.py", line 769, in
TypeError: startswith first arg must be str or a tuple of str, not NoneType

1.21版本运行提供的atri vits出现错误

File "tkinter_init_.py", line 1705, in call
File "moe_tts_cpu.py", line 464, in
File "moe_tts_cpu.py", line 228, in inference_vitss
File "PyInstaller\loader\pyimod02_importers.py", line 493, in exec_module
File "torch_init_.py", line 202, in
from torch._C import * # noqa: F403
ImportError: DLL load failed: 找不到指定的模块

无法识别数字音标

如题。
我在VITS模型上做训练,使用的是已经过clean的训练集,使用拼音+数字音标
image
但在导入MoeTTS时无法合成,尝试合成验证集里的一句话 dui4 o2 ni3 bu2 shi zai4 cheng2 li3 ma
报错

Traceback (most recent call last):
File "tkinter_init_.py", line 1705, in call
File "moe_tts_cpu_tool.py", line 365, in
File "moe_tts_cpu_tool.py", line 185, in inference_vitss
File "moe_tts_cpu_tool.py", line 153, in synthesis
File "moe_tts_cpu_tool.py", line 143, in get_text
File "./custom\vitstext_init_.py", line 25, in text_to_sequence
symbol_id = _symbol_to_id[symbol]
KeyError: '2'

一个可执行的cli版本

Hi,我根据你的代码做了一个cli版本,希望能pr到一个moe-tts-cli的branch,请问能否开出一个branch以便我pr吗

用自己的模型预测时出现错误

C:/Users/zzh/Desktop/default.pth
C:/Users/zzh/Desktop
Exception in Tkinter callback
Traceback (most recent call last):
File "tkinter_init_.py", line 1705, in call
File "moe_tts_cpu_tool.py", line 365, in
File "moe_tts_cpu_tool.py", line 181, in inference_vitss
File "vits\utils.py", line 40, in load_checkpoint
File "torch\nn\modules\module.py", line 1605, in load_state_dict
self.class.name, "\n\t".join(error_msgs)))
RuntimeError: Error(s) in loading state_dict for SynthesizerTrn:
size mismatch for enc_p.emb.weight: copying a param with shape torch.Size([178, 192]) from checkpoint, the shape in current model is torch.Size([40, 192]).
用网络上的非官方vits训练的中文模型
请问一下在模型训练时应该做些什么修改吗

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.