最先进的语音 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
-
克隆 Git 存储库
git clone https://github.com/neuphonic/neutts-air.git cd neutts-air -
安装
espeak(必需依赖项)有关如何安装的说明,请参阅以下链接:
espeakhttps://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"
-
安装 Python 依赖项
需求文件包括使用 PyTorch 运行模型所需的依赖项。 使用 ONNX 解码器或 GGML 模型时,不再需要某些依赖项(例如 PyTorch)。
该推理是兼容的,并在 上进行了测试。
python>=3.11pip install -r requirements.txt
-
(可选)安装 Llama-cpp-python 以使用
GGUF模型。pip install llama-cpp-python
要运行支持 GPU 支持(CUDA、MPS)的 llama-cpp,请参阅:https://pypi.org/project/llama-cpp-python/
-
(可选)安装 onnxruntime 以使用
.onnx解码器。如果要运行 onnxdecoderpip 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 需要两个输入:
- 参考音频样本(文件)
.wav - 文本字符串
然后,模型将文本合成为参考音频样式的语音。这就是 NeuTTS Air 即时语音克隆功能的原因。
示例参考文件
您可以在文件夹中找到一些现成的示例:examples
samples/dave.wavsamples/jo.wav
最佳结果指南
为了获得最佳性能,参考音频样本应为:
- 单声道
- 16-44 kHz 采样率
- 长度 3-15 秒
- 另存为
.wav文件 - 干净 — 最小甚至没有背景噪音
- 自然、连续的语音 – 如独白或对话,几乎没有停顿,因此模型可以有效地捕捉语气
最小化延迟的准则
为了在设备上获得最佳性能:
- 使用 GGUF 模型主干
- 预编码引用
- 使用 onnx 编解码器
查看此示例 README 以开始使用。
免責聲明
不要用这种模式做坏事……请。
开发者要求
要运行预提交钩子以参与此项目,请运行:
pip install pre-commit
然后:
pre-commit install


没有回复内容