
人工智能语音本地部署【免费下载链接】KittenTTSState-of-the-art TTS model under 25MB 项目地址https://gitcode.com/gh_mirrors/ki/KittenTTS点击查看免费下载KittenTTS 是一款开源、轻量级的文本转语音TTS库核心推理引擎基于 ONNX提供 15M / 40M / 80M 三种参数规模的模型磁盘占用 25–80 MB无需 GPU 即可在 CPU 上完成高质量语音合成。本文以项目 README.md 为主线结合 kittentts 包源码get_model.py、onnx_model.py、preprocess.py与仓库内示例example.py、example_streaming.py、example_cuda.py完整讲解模型选型、安装、基础/高级 API 用法、文本预处理原理、CPU/GPU 后端切换与流式合成帮助你直接上手在边缘设备或服务端完成低资源 TTS 集成。状态说明该项目当前处于 Developer preview 阶段API 可能随版本发布而变化README 标注的最新版本为 Kitten TTS v0.8setup.py 中声明的包版本为 0.8.1。功能特性README 中列出的核心特性全部可在源码中得到印证超轻量级模型尺寸从 25 MBint8 量化到 80 MB 不等适合边缘设备部署。对应关系见 setup.py 的描述 Ultra-lightweight text-to-speech model 以及init.py 中的__description__ Ultra-lightweight text-to-speech model with just 15 million parameters。CPU 优化推理基于 ONNX Runtime默认即使用 CPUExecutionProvider无需 GPU。8 个内置音色Bella、Jasper、Luna、Bruno、Rosie、Hugo、Kiki、Leo。在源码中这些友好名称由 onnx_model.py 的all_voice_names定义内部通过voice_aliases映射为expr-voice-*-m/f形式的技术音色 ID见available_voicesonnx_model.py。可调语速通过speed参数控制播放速率默认 1.0。文本预处理内置管线可展开数字、货币、单位、百分比、时间等详见 preprocess.py。24 kHz 输出标准采样率的高质量音频写入文件时默认sample_rate24000。可用模型README 提供了 v0.8 系列的官方模型清单以 Hugging Face 仓库形式分发模型文件由huggingface_hub自动下载模型参数量大小仓库 IDkitten-tts-mini80M80 MBKittenML/kitten-tts-mini-0.8kitten-tts-micro40M41 MBKittenML/kitten-tts-micro-0.8kitten-tts-nano15M56 MBKittenML/kitten-tts-nano-0.8-fp32kitten-tts-nano (int8)15M25 MBKittenML/kitten-tts-nano-0.8-int8注意README 提示部分用户在使用kitten-tts-nano-0.8-int8模型时报告过问题如遇到异常请到项目 Issues 反馈。从源码看example.py 也给出了与 README 一致的选型建议mini80M最高质量、micro40M速度与质量平衡、nano15M更小更快。模型加载机制位于 get_model.py 的download_from_huggingface它先下载config.json校验配置中的type为ONNX1或ONNX2再依据配置里的model_file与voices字段分别下载 ONNX 权重和音色数据voices.npz最后把配置中的speed_priors各音色语速先验与voice_aliases音色别名映射传给KittenTTS_1_Onnx。这套流程意味着仓库中只有一个 ONNX 模型文件 一个 voices.npz 即可驱动全部 8 个音色。快速开始环境要求Python 3.8 或更高版本与 setup.py 的python_requires3.8一致pip操作系统Linux、macOS 或 Windows硬件CPU 即可运行无需 GPU磁盘空间依模型变体不同约需 25–80 MB建议使用虚拟环境conda、venv 等以避免依赖冲突。安装直接安装 v0.8.1 的预构建 wheelpip install https://github.com/KittenML/KittenTTS/releases/download/0.8.1/kittentts-0.8.1-py3-none-any.whlCPU 版核心依赖见 requirements.txtonnxruntime、huggingface_hub、numpy、soundfile、phonemizer、espeakng_loader、num2words、spacy。其中espeakng_loader与phonemizer用于把文本转换为音素Phoneme是 onnx_model.py 中初始化 eSpeak NG 音素后端所必需的huggingface_hub负责从 Hugging Face 拉取模型文件soundfile负责写入 wav 音频。基础用法README 给出的最小可用示例from kittentts import KittenTTS model KittenTTS(KittenML/kitten-tts-mini-0.8) audio model.generate(This high-quality TTS model runs without a GPU., voiceJasper) import soundfile as sf sf.write(output.wav, audio, 24000)首次调用会从 Hugging Face 下载模型与音色文件默认缓存到 HF Hub 缓存目录可通过cache_dir指定之后直接加载本地缓存。返回的audio是 NumPy 数组采样率为 24 kHz用soundfile以 24000 Hz 写入即可得到 wav。仓库中的 example.py 还示范了如何切换不同规模的模型并给出了完整可运行的流程加载模型 →m.generate(text, voice)→sf.write保存为output.wav。高级用法# 调整语速默认 1.0 audio model.generate(Hello, world., voiceLuna, speed1.2) # 直接保存到文件 model.generate_to_file(Hello, world., output.wav, voiceBruno, speed0.9) # 列出可用音色 print(model.available_voices) # [Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo]generate_to_file内部封装了generatesoundfile.write见 onnx_model.py并打印保存路径。使用 GPU若希望在 GPU 上推理先安装 GPU 依赖pip install -r requirements_gpu.txtrequirements_gpu.txt 将onnxruntime换为onnxruntime-gpu并引入nvidia-cublas-cu12、nvidia-cudnn-cu12、nvidia-cuda-runtime-cu12等 CUDA 12 运行库。随后在构造时指定后端m KittenTTS(KittenML/kitten-tts-mini-0.8, backendcuda)完整示例见 example_cuda.py。API 参考以下 API 签名与 README 一致并结合 get_model.py 与 onnx_model.py 的源码补充说明。KittenTTS(model_name, cache_dirNone, backendNone)从 Hugging Face Hub 加载模型。源码层面get_model.py支持两种传入方式参数类型默认值说明model_namestrKittenML/kitten-tts-nano-0.8Hugging Face 仓库 ID若不含/会自动补全为KittenML/model_namecache_dirstrNone下载模型文件的本地缓存目录backendstrNone推理后端None自动/cpu/cuda/amd_gpu详见下文“后端切换”一节注意README 中构造函数表格只列出了model_name与cache_dir但实际源码 get_model.py 已支持第三个参数backendREADME “Using with GPU” 一节也使用了backendcuda本文按源码实际签名呈现。model.generate(text, voice, speed, clean_text)根据文本合成语音返回 24 kHz 的 NumPy 音频数组。参数类型默认值说明textstr--待合成的输入文本voicestrexpr-voice-5-m音色名称见可用音色列表友好名称如Jasper会通过别名映射解析speedfloat1.0语速倍率1.0为正常语速clean_textboolFalse是否预处理文本展开数字、货币、单位等源码中KittenTTS.generateget_model.py是KittenTTS_1_Onnx.generateonnx_model.py的薄封装。底层实现会若clean_textTrue调用TextPreprocessor预处理文本用chunk_text按句子默认最长 400 字符切分长文本逐块合成后np.concatenate拼接处理长文本时可避免超出模型输入上限。model.generate_to_file(text, output_path, voice, speed, sample_rate, clean_text)合成语音并直接写入音频文件返回None。参数类型默认值说明textstr--输入文本output_pathstr--音频文件保存路径voicestrexpr-voice-5-m音色名称speedfloat1.0语速倍率sample_rateint24000输出采样率Hzclean_textboolTrue是否预处理文本注意与generate的默认值False不同差异提示README 参数表中generate的clean_text默认值为False而generate_to_file的clean_text默认值为True两者在源码 get_model.py 与 onnx_model.py 中一致使用时可留意这一不对称默认值。model.available_voices返回全部可用音色友好名称列表[Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo]。源码位于 onnx_model.py通过 get_model.py 的property暴露给用户。model.generate_stream(text, voice, speed, clean_text)除 README 列出的三个 API 外源码还提供了流式接口generate_streamget_model.py / onnx_model.py以生成器方式按文本块逐段产出音频适合边生成边播放或边生成边传输的场景。仓库提供了完整示例 example_streaming.py它逐个 chunk 输出时长信息可选使用sounddevice实时播放最后把所有 chunk 拼接为完整音频写入output_streaming.wav。深入源码一次generate的完整调用链为了让你理解参数如何生效这里沿着 onnx_model.py 梳理关键步骤音色解析与语速先验_prepare_inputsonnx_model.py先经voice_aliases把友好名称映射为expr-voice-*-m/f技术 ID若该音色在模型的speed_priors中还会把用户speed乘以该音色先验不同音色的自然语速基准不同。文本 → 音素调用phonemizer.backend.EspeakBackenden-us、保留标点、带重音得到音素串再用basic_english_tokenize切分为 token经TextCleaneronnx_model.py映射为符号索引并插入起止 token0与10。音色参考向量ref_id min(len(text), voices[voice].shape[0] - 1)从voices.npz中取当前音色的风格参考片段作为模型的style输入。ONNX 推理session.run(None, onnx_inputs)执行模型返回的音频在尾部裁掉 5000 个采样outputs[0][..., :-5000]onnx_model.py去除可能的收尾噪声。这也解释了 README 提到的“无需 GPU”模型本身是标准 ONNX 图运行时只需 CPU 上的onnxruntime。后端切换CPU / CUDA / ROCmbackend参数由 onnx_model.py 处理映射为 ONNX Runtime 的 ExecutionProviderbackend 取值使用的 Provider适用场景None默认自动不显式指定由 ONNX Runtime 自行选择可用设备cpuCPUExecutionProvider纯 CPU 推理默认建议安装 requirements.txtcudaCUDAExecutionProviderNVIDIA GPU需安装 requirements_gpu.txt 的onnxruntime-gpu及 CUDA 12 运行库amd_gpuROCMExecutionProviderAMD GPUROCm 环境其他值抛ValueError(Unsupported backend)非法后端文本预处理管线README 强调“内置预处理管线可处理数字、货币、单位等”其实现集中在 preprocess.py。TextPreprocessorpreprocess.py是一个可配置的流水线默认开启的规则包括数字 → 英文单词replace_numbers如1200→twelve hundred、3.14→three point one four货币展开expand_currency如$100→one hundred dollars、$85K→eighty five thousand dollars百分比expand_percentages、时间expand_time如3:30pm→three thirty pm、序数expand_ordinals、分数expand_fractions、单位expand_units如100km、25°C、5GB千分位/科学计数法/规模后缀expand_scientific_notation、expand_scale_suffixes如7B parameters→seven billion parameters年代、数值区间、IP 地址、电话号码、模型名gpt-3不会被误读为负号等清除 URL、邮箱、HTML 标签等噪声内容。管线内部的执行顺序经过精心设计preprocess.py例如 IP 地址先于前导小数归一化、科学计数法先于模型名展开、电话号码先于数值区间展开避免规则互相冲突。clean_text参数即控制这条管线是否启用——对于数字密集的新闻、报告类文本建议开启以获得更自然的发音。系统要求与部署建议操作系统Linux、macOS、Windows 均可Python3.8硬件CPU 即可GPU 可选加速磁盘25–80 MB视模型变体建议使用 conda/venv 等虚拟环境隔离依赖。从 requirements.txt 与 requirements_gpu.txt 的差异可以看出一条实用结论日常 CPU 部署只需onnxruntime约几十 MB 级别依赖而 GPU 部署需要额外安装onnxruntime-gpu与多个nvidia-*CUDA 运行库体积显著增加——如果你的目标是边缘设备或轻量服务CPU 版是默认且足够的选择。Roadmap 与项目定位README 中列出的路线图包括优化推理引擎、移动端 SDK、更高质量的 TTS 模型、多语言 TTS 以及 KittenASR语音识别。结合当前仓库结构核心代码仅 4 个 Python 模块可以看出 KittenTTS 当前定位是“小而精”的 ONNX TTS 推理库适合快速集成与二次开发。项目采用 Apache License 2.0 开源协议README 徽章与仓库 LICENSE 文件一致注意 setup.py 的 classifiers 中 License 字段写为 MIT以仓库实际 LICENSE 文件为准。更多示例仓库根目录提供了三个可直接运行或参考的示例文件example.pyCPU 基础用法加载 mini 模型并生成 wavexample_cuda.pyGPU 用法仅构造函数多了backendcudaexample_streaming.py流式逐块合成可选sounddevice实时播放并保存为output_streaming.wav。三者合起来覆盖了 README “Quick Start”“Using with GPU”以及源码新增的流式能力是快速验证环境与理解 API 的最佳起点。赞分享人工智能语音本地部署【免费下载链接】KittenTTSState-of-the-art TTS model under 25MB 项目地址https://gitcode.com/gh_mirrors/ki/KittenTTS点击查看免费下载相关推荐Baserow Embeddings 服务基于 ONNX 的轻量级文本向量化微服务实战指南Baserow Embeddings 服务基于 ONNX 的轻量级文本向量化微服务实战指南 导读 Baserow 的 AI Assistant 功能需要将数据后端前端数据库低代码工作流自动化kokoro-onnx基于ONNX运行时的文本到语音转换工具kokoro onnx基于ONNX运行时的文本到语音转换工具 项目介绍 kokoro onnx 是一个基于 ONNX 运行时的文本到语音Text to Sp人工智能语音音频text-to-audio基于 gTTS 的文本转语音实战指南text to audio基于 gTTS 的文本转语音实战指南 导读 text to audio 是当前仓库 gh_mirrors/py/Python 下的一示例工程上一篇MicroPython errno 模块详解OSError 错误码、errorcode 字典与底层实现原理下一篇用 GDScript 从零构建体素游戏godot-demo-projects 中 Voxel Game 的架构与实现解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考