概述
在语音合成(TTS)领域,模型的轻量化与高性能一直是技术发展的核心挑战。KittenTTS 是一个开源的轻量级文本到语音模型,由 KittenML 团队开发。该项目以 1500万参数(约25MB模型大小)实现了高质量语音合成,且无需依赖 GPU,可在任何 CPU 设备上运行。KittenTTS 的设计目标是提供 轻量、高效、高质量 的语音生成解决方案,适用于边缘计算设备、移动应用、嵌入式系统等资源受限场景。其开源特性(Apache-2.0协议)和跨平台兼容性,使其成为开发者快速集成语音功能的理想选择。
Github地址为:
https://github.com/KittenML/KittenTTS
核心特点
1.超轻量级设计
模型大小:小于25MB,远低于主流 TTS 模型(如 Google TTS 或百度语音的数百MB)。参数量:仅1500万参数,适合在低内存设备(如树莓派、手机)部署。CPU优化:完全支持 CPU 推理,无需 GPU 加速,显著降低硬件成本。2.高质量语音输出
多音色支持:提供8种预训练音色(如 expr-voice-2-f、expr-voice-5-m 等),覆盖男性、女性、不同语调风格。自然流畅:通过深度学习优化,生成的语音接近真人发音,减少机械感。实时性:单句语音合成延迟低于500ms(测试环境为i7-12代CPU)。3.快速部署与易用性
Python接口:提供简洁的 Python API,3行代码即可完成语音合成。跨平台兼容:支持 Windows、Linux、macOS 等主流操作系统。无第三方依赖:仅需 PyTorch 和 SoundFile 库,安装简单。技术实现
1.模型架构
KittenTTS 基于 Transformer + WaveNet 的混合架构:
文本编码器:使用轻量 Transformer 提取文本特征。声码器:采用改进的 WaveNet 架构,优化生成语音的波形质量。音色控制:通过嵌入向量(Embedding)实现多音色切换,支持自定义音色训练。2.优化策略
量化压缩:对模型权重进行8位整型量化,减少内存占用。动态剪枝:在推理阶段动态移除冗余计算路径,提升效率。多线程加速:利用 CPU 多核并行处理,最大化吞吐量。3.训练数据
数据来源:基于 LJSpeech、Common Voice 等开源数据集训练。语音风格:涵盖英语、中文(普通话)、日语等多语言(当前版本支持英语)。使用示例
安装与初始化
pip install https://github.com/KittenML/KittenTTS/releases/download/0.1/kittentts-0.1.0-py3-none-any.whl这个安装会安装很多依赖,如下:
Successfully installed MarkupSafe-3.0.2 addict-2.4.0 annotated-types-0.7.0 attrs-25.3.0 babel-2.17.0 blis-1.3.0 catalogue-2.0.10 certifi-2025.8.3 cffi-1.17.1 charset_normalizer-3.4.2 click-8.2.1 cloudpathlib-0.21.1 colorama-0.4.6 coloredlogs-15.0.1 confection-0.1.5 csvw-3.5.1 curated-tokenizers-0.0.9 curated-transformers-0.1.1 cymem-2.0.11 dlinfo-2.0.0 docopt-0.6.2 espeakng_loader-0.2.4 filelock-3.18.0 flatbuffers-25.2.10 fsspec-2025.7.0 huggingface_hub-0.34.3 humanfriendly-10.0 idna-3.10 isodate-0.7.2 jinja2-3.1.6 joblib-1.5.1 jsonschema-4.25.0 jsonschema-specifications-2025.4.1 kittentts-0.1.0 langcodes-3.5.0 language-data-1.3.0 language-tags-1.2.0 marisa-trie-1.2.1 markdown-it-py-3.0.0 mdurl-0.1.2 misaki-0.9.4 mpmath-1.3.0 murmurhash-1.0.13 networkx-3.5 num2words-0.5.14 numpy-2.3.2 onnxruntime-1.22.1 packaging-25.0 phonemizer-fork-3.3.2 preshed-3.0.10 protobuf-6.31.1 pycparser-2.22 pydantic-2.11.7 pydantic-core-2.33.2 pygments-2.19.2 pyparsing-3.2.3 pyreadline3-3.5.4 python-dateutil-2.9.0.post0 pyyaml-6.0.2 rdflib-7.1.4 referencing-0.36.2 regex-2025.7.34 requests-2.32.4 rfc3986-1.5.0 rich-14.1.0 rpds-py-0.27.0 segments-2.3.0 setuptools-80.9.0 shellingham-1.5.4 six-1.17.0 smart-open-7.3.0.post1 soundfile-0.13.1 spacy-3.8.7 spacy-curated-transformers-0.3.1 spacy-legacy-3.0.12 spacy-loggers-1.0.5 srsly-2.5.1 sympy-1.14.0 thinc-8.3.6 torch-2.8.0 tqdm-4.67.1 typer-0.16.0 typing-extensions-4.14.1 typing-inspection-0.4.1 uritemplate-4.2.0 urllib3-2.5.0 wasabi-1.1.3 weasel-0.4.1 wrapt-1.17.22.生成语音
from kittentts import KittenTTS import soundfile as sf # 初始化模型 model = KittenTTS("KittenML/kitten-tts-nano-0.1") # 生成语音 audio = model.generate( text="hello kittentts!", voice=expr-voice-2-f # 可选音色:8种预训练音色 ) # 保存为WAV文件 sf.write(output.wav, audio, 24000)播放了一下生成的音频,声音还挺甜美!下面来试一下中文,看看目前支不支持,就生成“同一个世界,同一个梦想”吧!
生成的音频只在重复读取两个单词:chinese word,chinese word,chinese word...
看来目前还不支持,等后续支持吧!
3.支持的音色列表
音色名称
适用场景
expr-voice-2-f
温柔女性语音
expr-voice-2-m
专业男性语音
expr-voice-3-f
年轻女性语音
expr-voice-5-m
沉稳男性语音
未来展望
KittenML 团队计划在后续版本中实现以下功能:
多语言支持:扩展中文、日语等语言的语音合成。自定义音色训练:提供音色微调工具,允许用户上传音频训练专属音色。移动端SDK:发布 Android/iOS SDK,简化移动应用集成。Web版本:开发浏览器端 WebAssembly 版本,支持网页直接调用。KittenTTS 通过轻量化设计与高质量语音输出,为开发者提供了一种全新的 TTS 解决方案。其低门槛部署和跨平台特性,使其成为边缘计算、物联网等领域的理想选择。无论是个人开发者还是企业用户,均可通过此项目快速构建语音能力。