Plachtaa / VITS-fast-fine-tuning

This repo is a pipeline of VITS finetuning for fast speaker adaptation TTS, and many-to-many voice conversion
Apache License 2.0
4.69k stars 703 forks source link

FYI: 使用 sherpa-onnx 对训练好的模型进行部署(Android/Windows/iOS/Linux/macOS/树莓派等) #518

Open csukuangfj opened 9 months ago

csukuangfj commented 9 months ago

https://github.com/k2-fsa/sherpa-onnx 最近支持了 vits 模型。

如果你们用 https://github.com/Plachtaa/VITS-fast-fine-tuning 训练了一个模型,我们提供 onnx 导出的脚本,把你们训练好的模型导出成 onnx 格式,并使用 sherpa-onnx 进行部署。

sherpa-onnx 底层是用 C++ 实现的,并且提供多种语言的支持,比如 C/Python/C#/Go/Kotlin/Swift 等,支持 Android/iOS/Windows/macOS 等常见的系统和平台,也支持 树莓派等嵌入式环境.

下面这个 Huggingface space, 提供了一些转换好的模型,供大家在线体验 https://huggingface.co/spaces/k2-fsa/text-to-speech

如果大家想在 Android 上体验,可以去 https://k2-fsa.github.io/sherpa/onnx/tts/apk.html 下载我们编译好的 APK.


我们以 https://huggingface.co/spaces/lkz99/tts_model/tree/main 为例,描述如何把它转换到 sherpa-onnx 里面去.

  1. 下载下面3个转换脚本

2 运行


export NAME=wnj
./vits-zh-hf-fanchen-models.sh

运行完后,会得到下面3个文件

然后你就可以在 sherpa-onnx 里面用它啦,c++ binary, Python API, Android, huggingface space 里面等等,都可以用它。 下面有一个 colab, 演示了如何使用 https://github.com/k2-fsa/colab/blob/master/sherpa-onnx/Text_to_speech_with_sherpa_onnx.ipynb

更多的文档,请参考 https://k2-fsa.github.io/sherpa/onnx/tts/


注: 如果你看了之后,还是不知道怎么转,并且你打算开源你的模型,请把你的模型传到 huggingface, 然后 at 我,我来帮你转。

nextvealityAL commented 6 months ago

https://raw.githubusercontent.com/csukuangfj/vits_chinese/master/aishell3/words.txt

請問這個文档有英文版的嗎?在哪裡能下載?

csukuangfj commented 6 months ago

https://raw.githubusercontent.com/csukuangfj/vits_chinese/master/aishell3/words.txt

請問這個文档有英文版的嗎?在哪裡能下載?

请看第一个评论里面的tts文档里面的英语模型。

nextvealityAL commented 6 months ago

謝謝回覆 https://k2-fsa.github.io/sherpa/onnx/tts/

是這個嗎?找不到這個txt 檔的英語版,转换脚本裡需要pth, json 還有一個txt,上面轉換例子裡的是中文,但我需要英語的。

nextvealityAL commented 6 months ago

不好意思 可能我問得不清楚 那個word.txt 檔應該是就是汉字库?那英語的字庫.txt 要從哪裡下載?謝謝🙏

csukuangfj commented 6 months ago

那個word.txt 檔應該是就是汉字库

这个 word.txt 是我网上找的。

英文的话,你也可以去找一个。https://huggingface.co/csukuangfj/vits-ljs/tree/main 这边一个,是我自己找的,不全。

如果你用的是 espeak-ng, 比如 piper 里面用的就是 espeak-ng, 那么,你就不需要一个 words.txt 或者 lexicon.txt

nextvealityAL commented 6 months ago

https://huggingface.co/csukuangfj/vits-ljs/tree/main 这边一个,是我自己找的,不全。

好的謝謝! 可以直接用這個huggingface 上面的已經转换好的 lexicon.txt 和token.txt 嗎?還是用什麼腳本來转换這個work.txt(上面中文的腳本估計是不行的? )

csukuangfj commented 6 months ago

huggingface repo里,有所有相关的代码,你看了没

nextvealityAL commented 6 months ago

我看了,所以我用 https://github.com/Plachtaa/VITS-fast-fine-tuning 訓練的英語模型要如何转换呢?你能幫我轉嗎?謝謝

csukuangfj commented 6 months ago

我看了,所以我用 https://github.com/Plachtaa/VITS-fast-fine-tuning 訓練的英語模型要如何转换呢?你能幫我轉嗎?謝謝

你的模型开源么?

nextvealityAL commented 6 months ago

開源的,沒有問題,我訓練好了把link 分享給你?

csukuangfj commented 6 months ago

请确保是用当前repo训练的。

请把模型传到huggingface.

csukuangfj commented 6 months ago

如果你还没有训练,我建议你用piper去训练

nextvealityAL commented 6 months ago

好的謝謝^我已經在訓練了,不過我可以試試看Piper

另外我有一個用RVC V2 訓練的模型,不知道有辦法转换呢?

csukuangfj commented 6 months ago

我们只支持vits模型。不支持其他的模型。

如果你是开源的,允许我们加入到sherpa-onnx里面去吗?

tts模型,训练一次,挺快的吧?piper的好处有两个,一是模型更小,即运行速度更快。二是用了espeak-ng, 避免出现oov,并且支持数字。想不到你有什么理由不用piper,而是用现在这个repo.

nextvealityAL commented 6 months ago

好的 謝謝 那個先用piper 訓練

keniji commented 2 months ago

好的 謝謝 那個先用piper 訓練

抱歉打搅了, 我想问一下你有成功用piper训练出来中文的模型吗? 我试了piper提供的colab notebook, 但是一次都没能成功开始训练, 最后的报错是Trainer.fit stopped: No training batches., 但是预处理dataset的时候明明whisper是可以识别并转换语音成文字(中文)的. 语音是从Genshin_Datasets 获取的, 半个月了试了好多方法也不知道是哪里的问题..

wjddd commented 2 weeks ago

好的 謝謝 那個先用piper 訓練

抱歉打搅了, 我想问一下你有成功用piper训练出来中文的模型吗? 我试了piper提供的colab notebook, 但是一次都没能成功开始训练, 最后的报错是Trainer.fit stopped: No training batches., 但是预处理dataset的时候明明whisper是可以识别并转换语音成文字(中文)的. 语音是从Genshin_Datasets 获取的, 半个月了试了好多方法也不知道是哪里的问题..

请问你最后有成功训练中文模型吗?

keniji commented 2 weeks ago

好的 謝謝 那個先用piper 訓練

抱歉打搅了, 我想问一下你有成功用piper训练出来中文的模型吗? 我试了piper提供的colab notebook, 但是一次都没能成功开始训练, 最后的报错是Trainer.fit stopped: No training batches., 但是预处理dataset的时候明明whisper是可以识别并转换语音成文字(中文)的. 语音是从Genshin_Datasets 获取的, 半个月了试了好多方法也不知道是哪里的问题..

请问你最后有成功训练中文模型吗?

很遗憾并没有.. 在这里寻求帮助之时的一个多月陆陆续续试了网络上能找到的所有方法, 好像都有点问题. 本地方法的话因为暂时没有合适用来训练的卡所以只能先作罢了..

wjddd commented 2 weeks ago

好的 謝謝 那個先用piper 訓練

抱歉打搅了, 我想问一下你有成功用piper训练出来中文的模型吗? 我试了piper提供的colab notebook, 但是一次都没能成功开始训练, 最后的报错是Trainer.fit stopped: No training batches., 但是预处理dataset的时候明明whisper是可以识别并转换语音成文字(中文)的. 语音是从Genshin_Datasets 获取的, 半个月了试了好多方法也不知道是哪里的问题..

请问你最后有成功训练中文模型吗?

很遗憾并没有.. 在这里寻求帮助之时的一个多月陆陆续续试了网络上能找到的所有方法, 好像都有点问题. 本地方法的话因为暂时没有合适用来训练的卡所以只能先作罢了..

感谢回复,那我可能也得放弃piper的模型训练了……