Kokoros

GitHub
748 98 中等 3 次阅读 2天前音频
AI 解读 由 AI 自动生成,仅供参考

Kokoros 是一个基于 Rust 开发的文本转语音(TTS)工具,它实现了 Kokoro 模型的高性能推理。这个工具的核心特点是速度极快,能够实现实时语音合成,同时保持出色的语音质量。模型参数约 8700 万,虽然相对轻量,但生成的语音效果非常自然。

Kokoros 支持英语、中文、日语和德语四种语言,其中中文、日语和德语目前处于部分支持状态。用户可以直接在终端输入命令生成语音,也可以通过提供的 OpenAI 兼容 HTTP API 将其集成到其他应用中。此外,项目还支持流式输出和并行处理功能。

这个工具适合多种用户:开发者可以将其嵌入到自己的应用或服务中实现语音合成功能;研究人员可以基于它进行 TTS 相关的研究和实验;需要本地离线语音合成能力的普通用户也能从中受益。相比云端 TTS 服务,Kokoros 可以在本地运行,保护隐私的同时也能节省成本。

使用场景

小李是一名全栈工程师,正在开发一款面向老年用户的AI陪伴机器人。机器人需要能够用自然流畅的语音与老人对话,提供情感陪伴和日常提醒功能。

没有 Kokoros 时

  • 集成云端TTS服务(如Google Cloud TTS或Azure),每次API调用耗时1-3秒,无法实现真正的实时对话,老人等待时容易失去耐心
  • 每月数千次的语音合成调用导致云服务费用高达几百美元,项目预算难以承受
  • 生成的语音机械感明显,语调平淡,老人反馈"听起来像机器人,不亲切",使用意愿很低
  • 部署依赖复杂的外部服务,需要配置API密钥、网络代理,遇到服务宕机整个功能就不可用
  • 无法根据不同老人偏好调整语音风格,只能使用统一的默认音色

使用 Kokoros 后

  • 通过Rust实现的本地推理,语音生成延迟降低到毫秒级,对话响应时间控制在2秒以内,老人几乎察觉不到等待
  • 完全免费的开源模型,省去了所有API调用费用,项目成本降低90%以上
  • 语音质量极高,支持风格混合功能,可以选择"af_sky"+"af_nicole"等组合,生成温暖亲切的语音,老人反馈"像真人说话"
  • 一行命令cargo build --release即可完成编译部署,无需依赖任何外部服务,离线也能正常运行
  • 支持多种语音风格和语言混合,可以为不同老人定制个性化语音,交互体验大幅提升

Kokoros 让小李以极低的成本实现了高质量的实时语音对话功能,AI陪伴机器人终于能"开口说话"了。

运行环境要求

操作系统
  • Linux
  • macOS
GPU

未说明(支持 CPU 运行,可选 NVIDIA GPU 加速)

内存

未说明(测试基准为 24GB)

依赖
notes基于 Rust 开发,需要使用 cargo 编译;支持 Docker 部署;首次运行需下载模型文件(约数百 MB 的 ONNX 模型和 voice 数据);支持 OpenAI 兼容 API 服务器模式;CLI 工具名为 koko;支持流式音频生成和并行处理
python未说明(可选,仅用于 OpenAI 客户端示例)
Rust 工具链
pkg-config
libopus-dev (Linux) / opus (macOS)
cargo
Kokoros hero image

快速开始

Banner

🔥🔥🔥 Kokoro Rust

Zonos Rust 即将推出?

Spark-TTS 即将推出?

Orpheus-TTS 即将推出?

ASMR(自主感官经络反应)

https://github.com/user-attachments/assets/1043dfd3-969f-4e10-8b56-daf8285e7420

(视频中的拼写错误,请忽略)

数字人

https://github.com/user-attachments/assets/9f5e8fe9-d352-47a9-b4a1-418ec1769567

如果喜欢的话,请给个星标 ⭐!

Kokoro 是 Hugging Face 上排名前 2 的热门 TTS(Text-to-Speech,文本转语音)模型。 本项目提供了极快的 Kokoro Rust 推理实现,您可以基于 Kokoro 构建自己的 TTS 引擎,只需输入 koko 命令即可快速合成语音。

kokoros 是一个 rust crate(Rust 语言的包管理单元),提供易于使用的 TTS 功能。 您可以直接在终端调用 koko 来合成音频。

kokoros 使用相对较小的模型(87M 参数),但能产生极佳质量的语音结果。

语言支持:

  • 英语;
  • 中文(部分支持);
  • 日语(部分支持);
  • 德语(部分支持);

🔥🔥🔥🔥🔥🔥🔥🔥🔥 Kokoros Rust 版本目前受到了广泛关注。如果您也对极快推理、嵌入式构建、WASM 支持等感兴趣,请给本项目加星标!我们会持续更新。

新的 Discord 社区:https://discord.gg/E566zfDWqD,如果您对 Rust Kokoro 感兴趣,请加入我们!

更新日志

  • 2025.07.12: 🔥🔥🔥 HTTP API 流式传输和并行处理基础设施。 OpenAI 兼容服务器支持流式音频生成(使用 "stream": true 实现 1-2 秒的首音频响应时间),正在开发中的并行 TTS 处理(支持 --instances 标志),改进的日志系统(带 Unix 时间戳),以及通过高级分块实现自然语音生成;
  • 2025.01.22: 🔥🔥🔥 CLI 流式模式支持。 现在您可以使用 --stream 来体验流式模式,感谢 mroigo
  • 2025.01.17: 🔥🔥🔥 风格混合支持!现在,只需指定风格即可聆听 ASMR 效果:af_sky.4+af_nicole.5
  • 2025.01.15: OpenAI 兼容服务器支持,OpenAI 格式仍在完善中!
  • 2025.01.15: 音素器(Phonemizer)支持!现在 Kokoros 可以端到端推理,无需任何其他依赖。感谢 @tstm
  • 2025.01.13: 支持 Espeak-ng 分词器和音素器!感谢 @mindreframer
  • 2025.01.12: 发布 Kokoros

前提条件

要在本地构建此项目,您需要以下系统依赖:

macOS

brew install pkg-config opus

Linux(Ubuntu/Debian)

sudo apt-get install pkg-config libopus-dev

安装

  1. 下载所需的模型和语音数据文件:
bash download_all.sh

这将下载:

  • Kokoro ONNX 模型(checkpoints/kokoro-v1.0.onnx
  • 语音数据文件(data/voices-v1.0.bin

或者,您也可以分别下载:

bash scripts/download_models.sh
bash scripts/download_voices.sh
  1. 构建项目:
cargo build --release
  1. (可选)安装 Python 依赖以运行 OpenAI 客户端示例:
pip install -r scripts/requirements.txt
  1. (可选)将二进制文件和语音数据安装到系统范围:
bash install.sh

这会将 koko 二进制文件复制到 /usr/local/bin(使其作为系统范围内的 koko 可用),并将语音数据复制到 $HOME/.cache/kokoros/

使用方法

查看可用选项

./target/release/koko -h

为文本生成语音

mkdir -p tmp
./target/release/koko text "Hello, this is a TTS test"

生成的音频默认保存到 tmp/output.wav。您可以使用 --output-o 选项自定义保存位置:

./target/release/koko text "I hope you're having a great day today!" --output greeting.wav

为文件中的每一行生成语音

./target/release/koko file poem.txt

对于包含 3 行文本的文件,默认会输出语音音频文件 tmp/output_0.wavtmp/output_1.wavtmp/output_2.wav。您可以使用 --output-o 选项自定义保存位置,使用 {line} 作为行号:

./target/release/koko file lyrics.txt -o "song/lyric_{line}.wav"

词级时间戳(TSV 伴随文件)

添加 --timestamps 以生成包含每个词时间信息的 .tsv 文件,同时输出 WAV 文件。TSV 包含三列:word(词)、start_sec(开始秒数)、end_sec(结束秒数)。

文本模式示例:

./target/release/koko text \
  --output tmp/output.wav \
  --timestamps \
  "Hello from the timestamped model"

这将创建:

  • tmp/output.wav
  • tmp/output.tsv

文件模式示例(每行一对):

./target/release/koko file input.txt \
  --output tmp/line_{line}.wav \
  --timestamps

对于每一行 N,这会创建 tmp/line_N.wavtmp/line_N.tsv

注意:

  • 伴随文件路径会自动派生,将 .wav 扩展名替换为 .tsv
  • 默认采样率为 24 kHz;时间单位为秒,保留 3 位小数。

使用 Hugging Face 带时间戳模型的快速开始(复制粘贴)

复制并粘贴以下内容,使用托管在 Hugging Face 上的带时间戳的 Kokoro ONNX 模型运行端到端示例。这将把模型和语音数据下载到预期路径,并生成 output.wavoutput.tsv

mkdir -p checkpoints data tmp

# 1) 从 Hugging Face 下载带时间戳的 ONNX 模型
curl -L \
  "https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX-timestamped/resolve/main/onnx/model.onnx" \
  -o checkpoints/kokoro-v1.0.onnx

# 2) 下载语音数据(现有模型使用的单个二进制文件)
curl -L \
  "https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/voices-v1.0.bin" \
  -o data/voices-v1.0.bin

# 3) 构建二进制文件
cargo build --release

# 4) 运行:生成 tmp/output.wav 和 tmp/output.tsv
./target/release/koko text \
  --output tmp/output.wav \
  --timestamps \
  "Hello from the timestamped model"

注意:

  • 我们继续使用统一的 voices-v1.0.bin,它与带时间戳的模型兼容。
  • 如果 checkpoints/data/ 中已存在这些文件,CLI 将直接使用它们。

并行处理配置

根据您的性能偏好,为 OpenAI 兼容服务器配置并行 TTS 实例:

# 最佳 0.5-2 秒首音频响应时间(最低延迟)
./target/release/koko openai --instances 1

# 平衡性能(默认,2 个实例,通常是 CPU 处理最佳吞吐量)
./target/release/koko openai

最佳总处理时间(在 Mac M2 上观察到 CPU 处理收益递减)

./target/release/koko openai --instances 4

如何确定系统配置的最佳实例数量?

根据使用场景选择您的配置:

  • 单实例适用于需要即时音频响应的实时应用程序,与系统配置无关。
  • 多实例适用于批处理,总完成时间比初始延迟更重要。
    • 这是在配备 8 核和 24GB RAM 的 Mac M2 上进行基准测试的。
    • 使用以下消息进行测试:

      Welcome to our comprehensive technology demonstration session. Today we will explore advanced parallel processing systems thoroughly. These systems utilize multiple computational instances simultaneously for efficiency. Each instance processes different segments concurrently without interference. The coordination between instances ensures seamless output delivery consistently. Modern algorithms optimize resource utilization effectively across all components. Performance improvements are measurable and significant in real scenarios. Quality assurance validates each processing stage thoroughly before deployment. Integration testing confirms system reliability consistently under various conditions. User experience remains smooth throughout operation regardless of complexity. Advanced monitoring tracks system performance metrics continuously during execution.

    • 基准测试结果(5 次平均)
      实例数量 TTFA 总时间
      1 1.44s 19.0s
      2 2.44s 16.1s
      4 4.98s 16.6s
    • 如果您使用 CPU,内存带宽通常是瓶颈。您需要通过实验找到实例数量的最佳平衡点,以在您的系统配置下获得最佳吞吐量。
    • 如果您使用 NVIDIA GPU,可以尝试增加实例数量。预计吞吐量会进一步提升。
    • 尝试使其在 CoreML 上运行,可能需要将 ONNX 模型转换为 CoreML 或 ORT。

注意:--instances 标志目前仅在 API 服务器模式下支持。CLI 文本命令将在未来版本中支持并行处理。

OpenAI 兼容服务器

  1. 启动服务器:
./target/release/koko openai
  1. 使用 curl 或 Python 发起 API 请求:

使用 curl:

# 标准音频生成
curl -X POST http://localhost:3000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello, this is a test of the Kokoro TTS system!",
    "voice": "af_sky"
  }' \
  --output sky-says-hello.wav

# 流式音频生成(仅支持 PCM 格式)
curl -X POST http://localhost:3000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "This is a streaming test with real-time audio generation.",
    "voice": "af_sky",
    "stream": true
  }' \
  --output streaming-audio.pcm

# 实时流式播放(需要 ffplay)
curl -s -X POST http://localhost:3000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello streaming world!",
    "voice": "af_sky",
    "stream": true
  }' | \
  ffplay -f s16le -ar 24000 -nodisp -autoexit -loglevel quiet -

使用 Python:

python scripts/run_openai.py

流式处理

stream 选项将启动程序,从标准输入读取文本行,并将 WAV 音频输出到标准输出。

可与管道配合使用。

手动输入

./target/release/koko stream > live-audio.wav
# 开始输入要生成语音的文本,然后按回车提交
# 生成的语音将追加到 live-audio.wav
# 按 Ctrl D 退出

从其他来源输入

echo "Suppose some other program was outputting lines of text" | ./target/release/koko stream > programmatic-audio.wav

使用 Docker

  1. 构建或拉取 Docker 镜像

您可以在本地构建 Docker 镜像,也可以从 GitHub Container Registry (GHCR) 拉取预构建镜像

# 本地构建
docker build -t kokoros .

# 或从 GHCR 拉取预构建镜像
docker pull ghcr.io/lucasjinreal/kokoros:main
  1. 运行镜像,传递如上所述的选项
# 基础文本转语音
docker run -v ./tmp:/app/tmp kokoros text "Hello from docker!" -o tmp/hello.wav

# OpenAI 服务器(绑定相应端口)
docker run -p 3000:3000 kokoros openai

路线图

由于 Kokoro 的功能尚未最终确定,本项目将持续跟踪 Kokoro 的状态,并有望支持包括英语、普通话、日语、德语、法语等多种语言。

版权

版权所有 © Lucas Jin,遵循 Apache 许可证。

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

TTS

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

45k|★★★☆☆|2天前
音频开发框架图像

LocalAI

LocalAI 是一款开源的本地人工智能引擎,旨在让用户在任意硬件上轻松运行各类 AI 模型,包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛,无需昂贵的专用 GPU,仅凭普通 CPU 或常见的消费级显卡(如 NVIDIA、AMD、Intel 及 Apple Silicon)即可部署和运行复杂的 AI 任务。 对于担心数据隐私的用户而言,LocalAI 提供了“隐私优先”的解决方案,确保所有数据处理均在本地基础设施内完成,无需上传至云端。同时,它完美兼容 OpenAI、Anthropic 等主流 API 接口,这意味着开发者可以无缝迁移现有应用,直接利用本地资源替代云服务,既降低了成本又提升了可控性。 LocalAI 内置了超过 35 种后端支持(如 llama.cpp、vLLM、Whisper 等),并集成了自主 AI 代理、工具调用及检索增强生成(RAG)等高级功能,且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员,还是想要在个人电脑上体验最新 AI 技术的极客玩家,都能通过 LocalAI 获

44.8k|★★★☆☆|3天前
图像音频语言模型

bark

Bark 是由 Suno 推出的开源生成式音频模型,能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同,Bark 基于 Transformer 架构,不仅能模拟说话,还能生成笑声、叹息、哭泣等非语言声音,甚至能处理带有情感色彩和语气停顿的复杂文本,极大地丰富了音频表达的可能性。 它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点,让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员,还是希望快速原型设计的开发者,都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。 技术亮点方面,Bark 支持商业使用(MIT 许可),并在近期更新中实现了显著的推理速度提升,同时提供了适配低显存 GPU 的版本,降低了使用门槛。此外,社区还建立了丰富的提示词库,帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码,即可将创意文本转化为高质量音频,是连接文字与声音世界的强大桥梁。

39.1k|★★★☆☆|2天前
音频

airi

airi 是一款开源的本地化 AI 伴侣项目,旨在将虚拟角色(如“二次元老婆”或赛博生命)带入用户的现实世界。它的核心目标是复刻并超越知名 AI 主播 Neuro-sama 的能力,让用户能够拥有完全自主掌控、可私有化部署的智能伙伴。 airi 主要解决了用户对高度定制化、具备情感交互能力且数据隐私安全的 AI 角色的需求。不同于依赖云端服务的通用助手,airi 允许用户在本地运行,不仅保护了对话隐私,还赋予了用户定义角色性格与灵魂的自由。它支持实时语音聊天,甚至能直接参与《我的世界》(Minecraft)和《异星工厂》(Factorio)等游戏,实现了从单纯对话到共同娱乐的跨越。 这款工具非常适合喜爱虚拟角色的普通用户、希望搭建个性化 AI 陪伴的技术爱好者,以及研究多模态交互的开发者。其独特的技术亮点在于跨平台支持(涵盖 Web、macOS 和 Windows)以及强大的游戏交互能力,让 AI 不仅能“说”,还能“玩”。通过容器化的灵魂设计,airi 为每个人创造专属数字生命提供了可能,让虚拟陪伴变得更加真实且触手可及。

37.1k|★☆☆☆☆|今天
语言模型音频Agent

MockingBird

MockingBird 是一款开源的实时语音克隆工具,旨在让用户仅需 5 秒的参考音频,即可快速合成任意内容的语音,并实现逼真的音色复刻。它有效解决了传统语音合成技术中数据采集成本高、训练周期长以及难以实时生成的痛点,让个性化语音生成变得触手可及。 这款工具特别适合开发者、AI 研究人员以及对语音技术感兴趣的技术爱好者使用。无论是用于构建交互式语音应用、进行声学模型研究,还是制作创意内容,MockingBird 都能提供强大的支持。普通用户若具备基础的编程环境配置能力,也可通过其提供的 Web 服务或工具箱体验前沿的变声效果。 在技术亮点方面,MockingBird 基于 PyTorch 框架,不仅完美支持中文普通话及多种主流数据集,还实现了跨平台运行,兼容 Windows、Linux 乃至 M1 架构的 macOS。其独特的架构设计允许复用预训练的编码器与声码器,只需微调合成器即可获得出色效果,大幅降低了部署门槛。此外,项目内置了现成的 Web 服务器功能,方便用户通过远程调用快速集成到自己的应用中。尽管原作者已转向云端优化版本,但 MockingBird 作为经典的本地部署方案

36.9k|★★★★☆|3天前
Agent音频图像