欣淇
发布于 2026-05-09 / 1 阅读
0
0

NeuTTS5.8k Stars AI 3:

🗣 NeuTTS:5.8k Stars,本地运行的 AI 语音合成,3 秒音频就能克隆你的声音

项目地址:neuphonic/neutts | ⭐ 5,800 Stars | 🛠 Python | 作者:Neuphonic


老实说,市面上的 TTS 方案要么收费(ElevenLabs)、要么质量不行、要么必须联网。NeuTTS 是 Neuphonic 开源的本地 TTS 模型合集,基于 LLM 骨干网络,语音自然、支持即时声音克隆、甚至能在树莓派上跑。

5.8k Stars,模型在 HuggingFace 上开源,Apache 2.0 协议。

一、模型规格

| 规格 | NeuTTS-Air | NeuTTS-Nano |

|------|-----------|-------------|

| 参数量(活跃) | ~360M | ~120M |

| 参数量(含嵌入) | ~552M | ~229M |

| 声音克隆 | ✅ | ✅ |

| 协议 | Apache 2.0 | NeuTTS Open License 1.0 |

| 语言 | 英语 | 英语、法语、德语、西班牙语 |

GGUF 量化版本(Q8、Q4)已发布,可直接用 llama.cpp 加载。

二、安装

# 基础安装
pip install neutts

# 全部依赖(含 onnxruntime + llama-cpp-python)
pip install neutts[all]

硬件加速编译(推荐,性能提升显著):

macOS Apple Silicon:

CMAKE_ARGS="-DGGML_METAL=OFF -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=Apple" \
  pip install "neutts[llama]" --force-reinstall --no-cache-dir

Linux(OpenBLAS):

sudo apt-get install libopenblas-dev
CMAKE_ARGS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS" \
  pip install "neutts[llama]" --force-reinstall --no-cache-dir

Windows(PowerShell):

$env:CMAKE_ARGS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS"
pip install "neutts[llama]" --force-reinstall --no-cache-dir

ONNX 解码器(可选,降低延迟):

pip install "neutts[onnx]"

三、快速上手

3.1 基础使用

from neutts import NeuTTS
import soundfile as sf

# 初始化 TTS
tts = NeuTTS(
    backbone_repo="neuphonic/neutts-nano",   # 模型
    backbone_device="cpu",
    codec_repo="neuphonic/neucodec",          # 音频编解码器
    codec_device="cpu"
)

# 参考音频(用于声音克隆)
ref_text = open("samples/jo.txt").read().strip()
ref_codes = tts.encode_reference("samples/jo.wav")

# 合成语音
input_text = "My name is Andy. I'm 25 and I just moved to London."
wav = tts.infer(input_text, ref_codes, ref_text)

# 保存
sf.write("output.wav", wav, 24000)

3.2 命令行合成

python -m examples.basic_example \
  --input_text "My name is Andy. I'm 25 and I just moved to London." \
  --ref_audio samples/jo.wav \
  --ref_text samples/jo.txt

3.3 流式合成(边生成边播放)

pip install pyaudio

python -m examples.basic_streaming_example \
  --input_text "My name is Andy. I'm 25 and I just moved to London." \
  --ref_codes samples/jo.pt \
  --ref_text samples/jo.txt

流式模式要求模型为 GGUF 格式,音频会分块生成并实时播放。

四、声音克隆

NeuTTS 的即时声音克隆只需要 3 秒参考音频

# 预编码参考音频(降低推理延迟)
from neutts import NeuTTS

tts = NeuTTS(backbone_repo="neuphonic/neutts-nano")
ref_codes = tts.encode_reference("your-voice-sample.wav")

# 之后每次 infer 都用这个 ref_codes,不用重复编码

参考音频要求:

| 要求 | 说明 |

|------|------|

| 声道 | 单声道(Mono) |

| 采样率 | 16-44 kHz |

| 长度 | 3-15 秒 |

| 格式 | .wav |

| 背景 | 干净,无噪声 |

| 内容 | 自然连续的语音,像在说话不是读稿 |

项目自带参考音频样例:

| 语言 | 文件 |

|------|------|

| English | dave.wav, jo.wav |

| Spanish | mateo.wav |

| German | greta.wav |

| French | juliette.wav |

五、性能基准

Q4_0 量化版本的推理速度:

| 设备 | NeuTTS-Air | NeuTTS-Nano |

|------|-----------|-------------|

| Galaxy A25 5G (手机 CPU) | 20 tokens/s | 45 tokens/s |

| AMD Ryzen 9 HX 370 (笔记本 CPU) | 119 tokens/s | 221 tokens/s |

| iMac M4 16GB (Apple Silicon) | 111 tokens/s | 195 tokens/s |

| RTX 4090 (GPU) | 16,194 tokens/s | 19,268 tokens/s |

Galaxy A25 是中低端手机,45 tokens/s 意味着实时生成毫无压力。

六、降低延迟的关键配置

要在设备上获得最佳性能:

  • 用 GGUF 量化模型(Q4/Q8),而不是 safetensors
  • 2. 预编码参考音频tts.encode_reference() 提前跑,不要每次推理都编

    3. 用 ONNX 编解码器neuphonic/neucodec-onnx-decoder

    # 最低延迟方案
    tts = NeuTTS(
        backbone_repo="neuphonic/neutts-nano-q4-gguf",  # GGUF 量化
        codec_repo="neuphonic/neucodec-onnx-decoder",    # ONNX 解码器
        backbone_device="cpu",
        codec_device="cpu"
    )
    
    # 预编码参考
    ref_codes = tts.encode_reference("samples/jo.wav")
    
    # 推理
    wav = tts.infer(input_text, ref_codes, ref_text)
    

    七、技术架构

    NeuTTS 的核心架构非常简单:

    Text → LLM Backbone → Audio Codec → WAV
    

  • LLM Backbone:小参数量语言模型(120M / 360M),负责理解文本并生成音频 token
  • NeuCodec:自研 50Hz 神经音频编解码器,单码本,低码率高音质
  • 上下文窗口:2048 tokens(约 30 秒音频)
  • 输出水印:Perth Perceptual Threshold Watermark,每段音频默认打水印
  • 八、微调

    NeuTTS 支持微调,脚本在 examples/finetune.py

    # 详细指导见 TRAINING.md
    python examples/finetune.py
    

    可以基于官方模型微调,定制特定说话风格或领域词汇。

    九、已支持语言

    | 模型 | 语言 |

    |------|------|

    | NeuTTS-Air | 英语 |

    | NeuTTS-Nano | 英语 |

    | NeuTTS-Nano-French | 法语 |

    | NeuTTS-Nano-German | 德语 |

    | NeuTTS-Nano-Spanish | 西班牙语 |

    多语言合集 HuggingFace Space:neuphonic/neutts-nano-multilingual-collection

    十、总结

  • 本地运行,无需联网,隐私安全
  • 3 秒音频即可声音克隆
  • 最小模型仅 120M 参数,手机/树莓派都能跑
  • GGUF 量化 + ONNX 解码,延迟可控制在实时以下
  • Apache 2.0 协议(Air 版),商用友好
  • 支持英语、法语、德语、西班牙语
  • 流式合成、微调支持
  • 如果你的项目需要 AI 语音合成但又不想依赖付费 API,NeuTTS 是目前本地 TTS 方案里质量和性能最均衡的选择。

    标签:#TTS #语音合成 #AI #开源 #NeuTTS


    评论