轻量级语音模型,不依赖GPU,同时还兼顾了体积小,即时语音的语音模型-开源码库社区-开源分享-6协议-村兔网

轻量级语音模型,不依赖GPU,同时还兼顾了体积小,即时语音的语音模型

最先进的语音 AI 被锁定在 Web API 后面太久了。NeuTTS Air 是世界上第一个具有即时语音克隆功能的超逼真的设备上 TTS 语音语言模型。NeuTTS Air 基于 0.5B LLM 主干构建,为您的本地设备带来听起来自然的语音、实时性能、内置安全性和扬声器克隆功能,从而解锁了新类别的嵌入式语音代理、助手、玩具和合规安全应用程序。

主要特点

  • 🗣尺寸一流的真实感 – 产生自然、超逼真的声音,听起来像人类
  • 📱针对设备上部署进行了优化 – 以 GGML 格式提供,可在手机、笔记本电脑甚至 Raspberry Pi 上运行
  • 👫即时语音克隆 – 只需 3 秒的音频即可创建您自己的扬声器
  • 🚄基于 0.5B 主干网构建的简单 LM + 编解码器架构 – 实际应用的速度、尺寸和质量之间的最佳平衡点

谨慎

像 neutts.com 这样的网站正在涌现,它们与 Neuphonic、我们的 github 或这个存储库无关。

我们只在 neuphonic.com。请小心!🙏

型号详情

NeuTTS Air 基于 Qwen 0.5B 构建,Qwen 0.5B 是一种轻量级但功能强大的语言模型,针对文本理解和生成进行了优化,以及专为效率和质量而设计的强大技术组合:

  • 支持的语言:英语
  • 音频编解码器:NeuCodec – 我们的 50hz 神经音频编解码器,使用单个码本以低比特率实现卓越的音频质量
  • 上下文窗口:2048 个令牌,足以处理 ~30 秒的音频(包括提示持续时间)
  • 格式:提供 GGML 格式,用于高效的设备上推理
  • 职责:带水印的输出
  • 推理速度:在中端设备上实时生成
  • 功耗:针对移动和嵌入式设备进行了优化

开始使用

注意

我们添加了一个使用库的流式处理示例以及一个微调脚本。有关微调,请参阅微调指南了解更多详细信息。llama-cpp-python

  1. 克隆 Git 存储库

    git clone https://github.com/neuphonic/neutts-air.git
    cd neutts-air
  2. 安装 espeak(必需依赖项)

    有关如何安装的说明,请参阅以下链接:espeak

    https://github.com/espeak-ng/espeak-ng/blob/master/docs/guide.md

    # Mac OS
    brew install espeak
    
    # Ubuntu/Debian
    sudo apt install espeak

    Mac 用户可能需要将以下行放在 neutts.py 文件的顶部。

    from phonemizer.backend.espeak.wrapper import EspeakWrapper
    _ESPEAK_LIBRARY = '/opt/homebrew/Cellar/espeak/1.48.04_1/lib/libespeak.1.1.48.dylib'  #use the Path to the library.
    EspeakWrapper.set_library(_ESPEAK_LIBRARY)

    Windows 用户可能需要运行(参见 bootphon/phonemizer#163)

    $env:PHONEMIZER_ESPEAK_LIBRARY = "c:\Program Files\eSpeak NG\libespeak-ng.dll"
    $env:PHONEMIZER_ESPEAK_PATH = "c:\Program Files\eSpeak NG"
    setx PHONEMIZER_ESPEAK_LIBRARY "c:\Program Files\eSpeak NG\libespeak-ng.dll"
    setx PHONEMIZER_ESPEAK_PATH "c:\Program Files\eSpeak NG"
  3. 安装 Python 依赖项

    需求文件包括使用 PyTorch 运行模型所需的依赖项。 使用 ONNX 解码器或 GGML 模型时,不再需要某些依赖项(例如 PyTorch)。

    该推理是兼容的,并在 上进行了测试。python>=3.11

    pip install -r requirements.txt
  4. (可选)安装 Llama-cpp-python 以使用 GGUF 模型。

    pip install llama-cpp-python

    要运行支持 GPU 支持(CUDA、MPS)的 llama-cpp,请参阅:https://pypi.org/project/llama-cpp-python/

  5. (可选)安装 onnxruntime 以使用 .onnx 解码器。如果要运行 onnxdecoder

    pip install onnxruntime

运行模型

运行基本示例脚本来合成语音:

python -m examples.basic_example \
  --input_text "My name is Dave, and um, I'm from London" \
  --ref_audio samples/dave.wav \
  --ref_text samples/dave.txt

若要为主干或编解码器指定特定模型存储库,请添加参数。可用的骨架列在 NeuTTS-Air huggingface 系列中。--backbone

有几个示例可用,包括文件夹中的 Jupyter 笔记本。examples

单代码块使用

from neuttsair.neutts import NeuTTSAir
import soundfile as sf

tts = NeuTTSAir(
   backbone_repo="neuphonic/neutts-air", # or 'neutts-air-q4-gguf' with llama-cpp-python installed
   backbone_device="cpu",
   codec_repo="neuphonic/neucodec",
   codec_device="cpu"
)
input_text = "My name is Dave, and um, I'm from London."

ref_text = "samples/dave.txt"
ref_audio_path = "samples/dave.wav"

ref_text = open(ref_text, "r").read().strip()
ref_codes = tts.encode_reference(ref_audio_path)

wav = tts.infer(input_text, ref_codes, ref_text)
sf.write("test.wav", wav, 24000)

语音也可以在流式处理模式下合成,其中音频以块形式生成并按生成时播放。请注意,这需要安装 pyaudio。为此,请运行:

python -m examples.basic_streaming_example \
  --input_text "My name is Dave, and um, I'm from London" \
  --ref_codes samples/dave.pt \
  --ref_text samples/dave.txt

同样,可以使用参数指定特定的模型存储库 – 请注意,对于流式传输,模型必须采用 GGUF 格式。--backbone

准备克隆参考文献

NeuTTS Air 需要两个输入:

  1. 参考音频样本(文件).wav
  2. 文本字符串

然后,模型将文本合成为参考音频样式的语音。这就是 NeuTTS Air 即时语音克隆功能的原因。

示例参考文件

您可以在文件夹中找到一些现成的示例:examples

  • samples/dave.wav
  • samples/jo.wav

最佳结果指南

为了获得最佳性能,参考音频样本应为:

  1. 单声道
  2. 16-44 kHz 采样率
  3. 长度 3-15 秒
  4. 另存为.wav文件
  5. 干净 — 最小甚至没有背景噪音
  6. 自然、连续的语音 – 如独白或对话,几乎没有停顿,因此模型可以有效地捕捉语气

最小化延迟的准则

为了在设备上获得最佳性能:

  1. 使用 GGUF 模型主干
  2. 预编码引用
  3. 使用 onnx 编解码器

查看此示例 README 以开始使用。

 

免責聲明

不要用这种模式做坏事……请。

开发者要求

要运行预提交钩子以参与此项目,请运行:

pip install pre-commit

然后:

请登录后发表评论

    没有回复内容