基于虚拟数字人的企业级语音机器人

coqui-ai/TTS – 用于虚拟数字人的企业级语音机器人

https://github.com/coqui-ai/TTS

现在几乎一半的短视频配音是通过人工智能来配音的。开发一个配音软件,赚钱钱吧!

基于虚拟数字人的企业级语音机器人

Coqui AI的TTS是一个先进的深度学习文本到语音(TTS)工具包,旨在通过提供高性能的深度学习模型,为文本到语音任务提供革命性的解决方案。

它建立在最新的研究成果之上,力求在易于训练、速度和质量之间实现最佳平衡。该项目已经在GitHub上开源,并获得了超过20.5K的star量,显示出其在开发者社区中的广泛受欢迎和认可。

Coqui TTS具有以下几个显著特点:

1. 高性能深度学习模型:Coqui TTS提供了包括Tacotron、Tacotron2、Glow-TTS、SpeedySpeech等多种文本到语音规范模型,以及MelGAN、Multiband-MelGAN、GAN-TTS、ParallelWaveGAN、WaveGrad、WaveRNN等多种声码器模型。这些模型的高效性和多功能性使得Coqui TTS能够处理复杂的文本到语音转换任务,同时保持高质量的语音输出。

2. 多语言支持:Coqui TTS支持多种语言的文本到语音转换,这使得它成为国际化应用的理想选择。特别适用于全球化的市场,其中需要生成多种语言的语音内容。

3. 高效的模型训练:Coqui TTS提供了详细的训练日志和支持,在终端和Tensorboard上查看训练进度,使得模型训练过程透明且高效。

4. 功能完备的训练API:Coqui TTS的训练API设计灵活,便于实现新的想法和模型。这一特点使得Coqui TTS不仅适用于当前的文本到语音任务,还可以轻松适应未来的技术发展和需求变化。

5. 预训练模型:Coqui TTS提供了多种语言的预训练模型,极大地简化了多语言文本到语音转换的过程。这一丰富的预训练模型库为开发者提供了便利。

总的来说,Coqui AI的TTS是一个功能强大、性能优越的开源深度学习TTS工具包,适用于多种文本到语音任务,尤其在多语言支持和高效模型训练方面表现出色。


安装

🐸TTS 在 Ubuntu 18.04 上测试,Python >= 3.9, < 3.12。

如果您只对使用已发布的 🐸TTS 模型合成语音感兴趣,从 PyPI 安装是最简单的选择。

pip install TTS

如果您计划编码或训练模型,请克隆 🐸TTS 并在本地安装。

git clone https://github.com/coqui-ai/TTS
pip install -e .[all,dev,notebooks] # Select the relevant extras

如果您使用的是 Ubuntu (Debian),您还可以运行以下命令进行安装。

$ make system-deps  # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
$ make install

如果您使用的是 Windows,👑@GuyPaddock在此编写了安装说明。

Docker 镜像

您还可以尝试 TTS,无需安装 docker 镜像。只需运行以下命令,您无需安装即可运行 TTS。

docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
python3 TTS/server/server.py --list_models #To get the list of available models
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits # To start a server

然后,您可以在此处享受 TTS 服务器有关 docker 映像(例如 GPU 支持)的更多详细信息可以在此处 找到

通过 🐸TTS 合成语音

🐍Python API

运行多说话人和多语言模型

import torch
from TTS.api import TTS

# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"

# List available 🐸TTS models
print(TTS().list_models())

# Init TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)

# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en")
# Text to speech to a file
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")

运行单扬声器模型

# Init TTS with the target model name
tts = TTS(model_name="tts_models/de/thorsten/tacotron2-DDC", progress_bar=False).to(device)

# Run TTS
tts.tts_to_file(text="Ich bin eine Testnachricht.", file_path=OUTPUT_PATH)

# Example voice cloning with YourTTS in English, French and Portuguese
tts = TTS(model_name="tts_models/multilingual/multi-dataset/your_tts", progress_bar=False).to(device)
tts.tts_to_file("This is voice cloning.", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
tts.tts_to_file("C'est le clonage de la voix.", speaker_wav="my/cloning/audio.wav", language="fr-fr", file_path="output.wav")
tts.tts_to_file("Isso é clonagem de voz.", speaker_wav="my/cloning/audio.wav", language="pt-br", file_path="output.wav")

语音转换示例

将语音转换source_wav为语音target_wav

tts = TTS(model_name="voice_conversion_models/multilingual/vctk/freevc24", progress_bar=False).to("cuda")
tts.voice_conversion_to_file(source_wav="my/source.wav", target_wav="my/target.wav", file_path="output.wav")

语音克隆与语音转换模型的示例。

这样,您就可以使用 🐸TTS 中的任何模型来克隆声音。

tts = TTS("tts_models/de/thorsten/tacotron2-DDC")
tts.tts_with_vc_to_file(
"Wie sage ich auf Italienisch, dass ich dich liebe?",
speaker_wav="target/speaker.wav",
file_path="output.wav"
)

使用🐸Coqui Studio声音的示例

您可以在🐸Coqui Studio中访问所有克隆的声音和内置扬声器为此,您需要一个 API 令牌,您可以从帐户页面获取该令牌。获取 API 令牌后,您需要配置 COQUI_STUDIO_TOKEN 环境变量。

一旦您拥有有效的 API 令牌,录音室扬声器将在列表中显示为不同的型号。这些模型将遵循命名约定coqui_studio/en/<studio_speaker_name>/coqui_studio

# XTTS model
models = TTS(cs_api_model="XTTS").list_models()
# Init TTS with the target studio speaker
tts = TTS(model_name="coqui_studio/en/Torcull Diarmuid/coqui_studio", progress_bar=False)
# Run TTS
tts.tts_to_file(text="This is a test.", language="en", file_path=OUTPUT_PATH)

# V1 model
models = TTS(cs_api_model="V1").list_models()
# Run TTS with emotion and speed control
# Emotion control only works with V1 model
tts.tts_to_file(text="This is a test.", file_path=OUTPUT_PATH, emotion="Happy", speed=1.5)

使用Fairseq 模型的约 1100 种语言的文本转语音示例

对于 Fairseq 模型,请使用以下名称格式:tts_models/<lang-iso_code>/fairseq/vits您可以在此处找到语言 ISO 代码,并在此处 了解 Fairseq 模型

# TTS with on the fly voice conversion
api = TTS("tts_models/deu/fairseq/vits")
api.tts_with_vc_to_file(
"Wie sage ich auf Italienisch, dass ich dich liebe?",
speaker_wav="target/speaker.wav",
file_path="output.wav"
)

命令行tts

在命令行上合成语音。

您可以使用经过训练的模型或从提供的列表中选择模型。

如果不指定任何模型,则使用基于 LJSpeech 的英语模型。

单扬声器型号

  • 列出提供的型号:

    $ tts --list_models

  • 获取模型信息(tts_models 和 vocoder_models):

    • 按类型/名称查询: model_info_by_name 使用 –list_models 中的名称。

      $ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"

      例如:

      $ tts --model_info_by_name tts_models/tr/common-voice/glow-tts
      $ tts --model_info_by_name vocoder_models/en/ljspeech/hifigan_v2

    • 按类型/idx 查询:model_query_idx 使用–list_models 中相应的idx。

      $ tts --model_info_by_idx "<model_type>/<model_query_idx>"

      例如:

      $ tts --model_info_by_idx tts_models/3

    • 按全名查询型号信息:

      $ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"

  • 使用默认模型运行 TTS:

    $ tts --text "Text for TTS" --out_path output/path/speech.wav

  • 运行 TTS 并输出生成的 TTS wav 文件数据:

    $ tts --text "Text for TTS" --pipe_out --out_path output/path/speech.wav | aplay

  • 运行 TTS 并定义用于 🐸Coqui Studio 模型的速度因子,介于 0.0 和 2.0 之间:

    $ tts --text "Text for TTS" --model_name "coqui_studio/<language>/<dataset>/<model_name>" --speed 1.2 --out_path output/path/speech.wav

  • 使用默认声码器模型运行 TTS 模型:

    $ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav

    例如:

    $ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --out_path output/path/speech.wav

  • 使用列表中的特定 TTS 和声码器模型运行:

    $ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --vocoder_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav

    例如:

    $ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --vocoder_name "vocoder_models/en/ljspeech/univnet" --out_path output/path/speech.wav

  • 运行您自己的 TTS 模型(使用 Griffin-Lim Vocoder):

    $ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav

  • 运行您自己的 TTS 和声码器模型:

    $ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
    --vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json

多扬声器型号

  • 列出可用的发言人并在其中选择一个 <speaker_id>:

    $ tts --model_name "<language>/<dataset>/<model_name>"  --list_speaker_idxs

  • 使用目标说话人 ID 运行多说话人 TTS 模型:

    $ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>"  --speaker_idx <speaker_id>

  • 运行您自己的多扬声器 TTS 模型:

    $ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/model.pth --config_path path/to/config.json --speakers_file_path path/to/speaker.json --speaker_idx <speaker_id>

语音转换模型

$ tts --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --source_wav <path/to/speaker/wav> --target_wav <path/to/reference/wav>

目录结构

|- notebooks/       (Jupyter Notebooks for model evaluation, parameter selection and data analysis.)
|- utils/ (common utilities.)
|- TTS
|- bin/ (folder for all the executables.)
|- train*.py (train your target model.)
|- ...
|- tts/ (text to speech models)
|- layers/ (model layer definitions)
|- models/ (model definitions)
|- utils/ (model specific utilities.)
|- speaker_encoder/ (Speaker Encoder models.)
|- (same)
|- vocoder/ (Vocoder models.)
|- (same)


coqui-ai/TTS – 用于虚拟数字人的企业级语音机器人

https://github.com/coqui-ai/TTS

现在几乎一半的短视频配音是通过人工智能来配音的。 开发一个配音软件,赚钱钱吧!

原文始发于微信公众号(GitHubTopp):基于虚拟数字人的企业级语音机器人

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/201659.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!