WhisperKit
WhisperKit 是由 Argmax 推出的开源框架,专为在 Apple Silicon 设备(如 iPhone、iPad 和 Mac)上高效运行顶级语音识别模型(如 Whisper)而设计。它成功解决了传统语音转文字方案依赖云端服务器、存在延迟高、隐私泄露风险以及联网成本高等痛点,让高质量的语音识别完全在本地离线完成。
这款工具非常适合 iOS/macOS 开发者、人工智能研究人员以及注重数据隐私的应用构建者使用。通过 Swift 包管理器即可轻松集成,开发者能快速为应用添加实时流式转录、精确的字词时间戳、语音活动检测甚至说话人区分等高级功能。
WhisperKit 的核心亮点在于其深度的端侧优化,充分利用 Apple 神经引擎加速推理,在保障低延迟的同时维持了极高的识别准确率。除了基础的语音转文字,它还支持构建本地服务器以便非 Swift 项目调用,并提供了配套的 TTSKit 用于文本转语音。无论是想快速验证原型的开发者,还是希望在不牺牲用户隐私前提下提升交互体验的产品团队,WhisperKit 都是一个轻量且强大的入门选择。
使用场景
一位独立开发者正在为视障用户打造一款运行在 iPhone 上的实时会议记录助手,需要在无网络环境下将语音瞬间转化为带时间戳的文字。
没有 WhisperKit 时
- 依赖云端服务:必须将录音上传至服务器处理,不仅产生高昂的 API 调用费用,且在地铁或地下室等弱网环境下完全无法使用。
- 隐私泄露风险:敏感的会议对话内容需传输至第三方服务器,难以向注重隐私的用户承诺数据本地化存储。
- 延迟体验糟糕:受限于网络往返时间和服务器排队,用户说完话后往往需要等待数秒才能看到文字,打断沟通流畅度。
- 功能集成困难:若要实现说话人区分(Diarization)和单词级时间戳,需自行拼接多个开源模型,导致 App 体积臃肿且维护成本极高。
使用 WhisperKit 后
- 纯本地离线运行:利用 Apple Silicon 芯片算力,直接在 iPhone 端完成高精度语音识别,彻底摆脱对网络连接的依赖。
- 数据绝对安全:所有音频数据仅在设备内存中处理,从不离开用户手机,完美满足医疗、法律等敏感场景的合规要求。
- 毫秒级实时响应:支持流式转录,话音未落文字即现,配合语音活动检测(VAD)自动启停,提供如字幕般丝滑的体验。
- 开箱即用的高级特性:通过简单的 Swift 包集成,即可原生获得说话人区分和精确到词的时间戳功能,大幅缩短开发周期。
WhisperKit 让开发者能够以极低的成本,在苹果设备上构建出既保护隐私又具备专业级实时性能的语音交互应用。
运行环境要求
- macOS
未说明 (基于 Apple Silicon Neural Engine 或 GPU 加速,无需 NVIDIA CUDA)
未说明

快速开始
WhisperKit 是一个由 Argmax 开发的框架,用于在设备端部署最先进的语音转文本系统(例如 Whisper),并提供实时流式传输、词级时间戳、语音活动检测、说话人分离等高级功能。
[TestFlight 演示应用] [Python 工具] [基准测试与设备支持] [WhisperKit Android]
[!IMPORTANT] WhisperKit 非常适合开始使用设备端语音转文本功能。当您准备好通过实时转录和说话人分离来扩展设备端部署时,请启动您的 14 天试用,体验 Argmax Pro SDK,其中包含速度提升 9 倍且准确率更高的模型,如 Nvidia Parakeet V3、Nvidia Sortformer 流式说话人分离模型,以及兼容 Deepgram 的 WebSocket 本地服务器,便于集成到非 Swift 项目中。
目录
安装
Swift 包管理器
WhisperKit、TTSKit 和 SpeakerKit 是同一个 Swift 包中的独立库产品。只需添加一次包,即可根据需要选择所需的产品。
先决条件
- macOS 14.0 或更高版本。
- Xcode 16.0 或更高版本。
Xcode 步骤
- 在 Xcode 中打开您的 Swift 项目。
- 导航至
File>Add Package Dependencies...。 - 输入包仓库 URL:
https://github.com/argmaxinc/whisperkit。 - 选择版本范围或特定版本。
- 当提示选择库产品时,选择 WhisperKit、TTSKit、SpeakerKit,或任意组合。
Package.swift
如果您将 WhisperKit、TTSKit 或 SpeakerKit 作为 Swift 包的一部分使用,可以在您的 Package.swift 依赖项中按如下方式添加:
dependencies: [
.package(url: "https://github.com/argmaxinc/WhisperKit.git", from: "0.9.0"),
],
然后将所需的产品作为目标依赖项添加:
.target(
name: "YourApp",
dependencies: [
"WhisperKit", // 语音转文本
"TTSKit", // 文本转语音
"SpeakerKit", // 说话人分离
]
),
Homebrew
您可以使用 Homebrew 安装 WhisperKit 命令行应用程序,方法是运行以下命令:
brew install whisperkit-cli
快速入门
要开始使用 WhisperKit,您需要在项目中对其进行初始化。
快速示例
此示例演示如何转录本地音频文件:
import WhisperKit
// 使用默认设置初始化 WhisperKit
Task {
let pipe = try? await WhisperKit()
let transcription = try? await pipe!.transcribe(audioPath: "path/to/your/audio.{wav,mp3,m4a,flac}")?.text
print(transcription)
}
模型选择
如果未指定,WhisperKit 会自动下载适用于当前设备的推荐模型。您也可以通过传递模型名称来选择特定模型:
let pipe = try? await WhisperKit(WhisperKitConfig(model: "large-v3"))
此方法还支持通配符搜索,因此您可以使用通配符来选择模型:
let pipe = try? await WhisperKit(WhisperKitConfig(model: "distil*large-v3"))
请注意,模型搜索必须从源仓库返回单个模型,否则将抛出错误。
有关可用模型的列表,请参阅我们的 HuggingFace 仓库。
生成模型
WhisperKit 还附带了一个支持性仓库 whisperkittools,它允许你创建并以 CoreML 格式将自己微调过的 Whisper 版本部署到 HuggingFace。一旦生成,只需将仓库名称更改为用于上传模型的那个即可加载:
let config = WhisperKitConfig(model: "large-v3", modelRepo: "username/your-model-repo")
let pipe = try? await WhisperKit(config)
Swift CLI
Swift CLI 允许在 Xcode 项目之外快速进行测试和调试。要安装它,请运行以下命令:
git clone https://github.com/argmaxinc/whisperkit.git
cd whisperkit
然后设置环境并下载你想要的模型。
make setup
make download-model MODEL=large-v3
注意:
- 这只会下载由
MODEL指定的模型(请参阅我们 HuggingFace 仓库 中可用的模型,我们在那里使用前缀openai_whisper-{MODEL})。 - 在运行
download-model之前,请确保已安装 git-lfs。
如果你想将所有可用模型下载到本地文件夹,可以使用以下命令代替:
make download-models
之后,你可以通过 CLI 运行它们:
swift run whisperkit-cli transcribe --model-path "Models/whisperkit-coreml/openai_whisper-large-v3" --audio-path "path/to/your/audio.{wav,mp3,m4a,flac}"
这应该会打印出音频文件的转录内容。如果你希望直接从麦克风流式传输音频,可以使用:
swift run whisperkit-cli transcribe --model-path "Models/whisperkit-coreml/openai_whisper-large-v3" --stream
WhisperKit 本地服务器
WhisperKit 包含一个实现了 OpenAI 音频 API 的本地服务器,允许你使用现有的 OpenAI SDK 客户端或生成新的客户端。该服务器支持转录和翻译,并具备 输出流式传输 功能(即在生成转录结果时实时显示)。
[!NOTE] 对于具有全双工流式传输功能的实时转录服务器,请查看 WhisperKit Pro 本地服务器,它为需要连续音频处理的应用程序提供实时音频流和转录功能。
构建服务器
# 带服务器支持的构建
make build-local-server
# 或者手动使用构建标志
BUILD_ALL=1 swift build --product whisperkit-cli
启动服务器
# 使用默认设置启动服务器
BUILD_ALL=1 swift run whisperkit-cli serve
# 自定义主机和端口
BUILD_ALL=1 swift run whisperkit-cli serve --host 0.0.0.0 --port 8080
# 使用特定模型并启用详细日志记录
BUILD_ALL=1 swift run whisperkit-cli serve --model tiny --verbose
# 查看所有可配置参数
BUILD_ALL=1 swift run whisperkit-cli serve --help
API 端点
- POST
/v1/audio/transcriptions- 将音频转录为文本 - POST
/v1/audio/translations- 将音频翻译成英语
支持的参数
| 参数 | 描述 | 默认值 |
|---|---|---|
file |
音频文件(wav、mp3、m4a、flac) | 必需 |
model |
模型标识符 | 服务器默认 |
language |
源语言代码 | 自动检测 |
prompt |
用于指导转录的文本 | 无 |
response_format |
输出格式(json、verbose_json) | verbose_json |
temperature |
采样温度(0.0–1.0) | 0.0 |
timestamp_granularities[] |
时间精度(词、片段) | 片段 |
stream |
启用流式传输 | false |
客户端示例
Python 客户端(OpenAI SDK)
cd Examples/ServeCLIClient/Python
uv sync
python whisperkit_client.py transcribe --file audio.wav --language en
python whisperkit_client.py translate --file audio.wav
快速 Python 示例:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:50060/v1")
result = client.audio.transcriptions.create(
file=open("audio.wav", "rb"),
model="tiny" # 模型参数是必需的
)
print(result.text)
Swift 客户端(根据 OpenAPI 规范生成,详见 ServeCLIClient/Swift/updateClient.sh)
cd Examples/ServeCLIClient/Swift
swift run whisperkit-client transcribe audio.wav --language en
swift run whisperkit-client translate audio.wav
Curl 客户端(Shell 脚本)
cd Examples/ServeCLIClient/Curl
chmod +x *.sh
./transcribe.sh audio.wav --language en
./translate.sh audio.wav --language es
./test.sh # 运行全面的测试套件
生成 API 规范
服务器的 OpenAPI 规范和代码是从官方 OpenAI API 生成的:
# 生成最新的规范和服务器代码
make generate-server
客户端生成
你可以使用 OpenAPI 规范为任何语言生成客户端,例如:
# 生成 Python 客户端
swift run swift-openapi-generator generate scripts/specs/localserver_openapi.yaml \
--output-directory python-client \
--mode client \
--mode types
# 生成 TypeScript 客户端
npx @openapitools/openapi-generator-cli generate \
-i scripts/specs/localserver_openapi.yaml \
-g typescript-fetch \
-o typescript-client
API 的局限性
与官方 OpenAI API 相比,本地服务器存在以下限制:
- 响应格式:仅支持
json和verbose_json(不支持纯文本、SRT、VTT 格式)。 - 模型选择:客户端必须通过
--model标志指定所需的模型来启动服务器。
完全支持的功能
本地服务器完全支持以下 OpenAI API 功能:
- 包含参数:
logprobs参数可用于获取详细的标记级对数概率。 - 流式响应:使用服务器发送事件(SSE)实现实时转录。
- 时间戳粒度:支持词级和片段级时间戳。
- 语言检测:自动检测语言或手动指定。
- 温度控制:用于控制转录随机性的采样温度。
- 提示文本:用于指导转录风格和上下文的文本。
TTSKit
TTSKit 是一个基于 Core ML 的设备端文本到语音框架。它在 Apple 芯片上完全运行 Qwen3 TTS 模型,支持实时流式播放,无需服务器。
- macOS 15.0 或更高版本。
- iOS 18.0 或更高版本。
快速示例
此示例演示如何从文本生成语音:
import TTSKit
Task {
let tts = try await TTSKit()
let result = try await tts.generate(text: "Hello from TTSKit!")
print("生成了 \(result.audioDuration)s 的音频,采样率为 \(result.sampleRate)Hz")
}
TTSKit() 会在首次运行时自动下载默认的 0.6B 模型。分词器和 CoreML 模型会在首次调用 generate() 时按需加载。
模型选择
TTSKit 提供两种模型尺寸。您可以通过将变体传递给 TTSKitConfig 来选择模型:
// 速度快,可在所有平台上运行(约 1 GB 下载)
let tts = try await TTSKit(TTSKitConfig(model: .qwen3TTS_0_6b))
// 质量更高,仅限 macOS 平台(约 2.2 GB 下载,支持风格指令)
let tts = try await TTSKit(TTSKitConfig(model: .qwen3TTS_1_7b))
模型托管在 HuggingFace 上,并在首次下载后缓存到本地。
自定义语音
您可以从 9 种内置语音和 10 种语言中进行选择:
let result = try await tts.generate(
text: "こんにちは世界",
speaker: .onoAnna,
language: .japanese
)
语音: .ryan、.aiden、.onoAnna("ono-anna")、.sohee、.eric、.dylan、.serena、.vivian、.uncleFu("uncle-fu")
语言: .english、.chinese、.japanese、.korean、.german、.french、.russian、.portuguese、.spanish、.italian
实时流式播放
play 会在音频生成的同时逐帧流式传输到设备扬声器:
try await tts.play(text: "这会在生成完成之前就开始播放。")
您可以控制在开始播放之前缓冲的音频量。默认的 .auto 策略会测量第一个生成步骤,并预缓冲刚好足以避免欠载的音频:
try await tts.play(
text: "长段文字...",
playbackStrategy: .auto
)
其他策略包括 .stream(立即播放,无缓冲)、.buffered(seconds:)(固定预缓冲)和 .generateFirst(先生成所有音频,再播放)。
生成选项
您可以通过 GenerationOptions 自定义采样、分块和并发设置:
// Qwen 推荐的默认值
var options = GenerationOptions()
options.temperature = 0.9
options.topK = 50
options.repetitionPenalty = 1.05
options.maxNewTokens = 245
// 长文本会自动按句号分割
options.chunkingStrategy = .sentence
options.concurrentWorkerCount = nil // nil 表示所有分块同时运行,为当前设备提供一个良好的默认值
let result = try await tts.generate(text: longArticle, options: options)
风格指令(仅 1.7B 模型)
1.7B 模型接受自然语言风格指令来控制韵律:
var options = GenerationOptions()
options.instruction = "像说书人一样缓慢而温暖地说话。"
let result = try await tts.generate(
text: "从前有……",
speaker: .ryan,
options: options
)
保存音频
生成的音频可以保存为 WAV 或 M4A 格式:
let result = try await tts.generate(text: "救救我!")
let outputDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
// 可保存为 .wav 或 .m4a(AAC)
try await AudioOutput.saveAudio(result.audio, toFolder: outputDir, filename: "output", format: .m4a)
进度回调
您可以在生成过程中接收每一步的音频。如果回调返回 false,则会提前取消生成:
let result = try await tts.generate(text: "你好!") { progress in
print("音频片段:\(progress.audio.count) 个样本")
if let stepTime = progress.stepTime {
print("第一步耗时 \(stepTime) 秒")
}
return true // 返回 false 取消
}
Swift 命令行工具
TTS 命令可通过相同的 whisperkit-cli 工具使用。您可以生成语音,并可选择实时播放:
swift run whisperkit-cli tts --text "命令行问候语" --play
swift run whisperkit-cli tts --text "保存到文件" --output-path output.wav
swift run whisperkit-cli tts --text "日本語テスト" --speaker ono-anna --language japanese
swift run whisperkit-cli tts --text-file article.txt --model 1.7b --instruction "欢快地朗读"
swift run whisperkit-cli tts --help
示例应用
TTSKitExample 示例应用展示了实时流式传输、模型管理、波形可视化以及 macOS 和 iOS 上的生成历史记录。请参阅 TTSKitExample README 以获取构建说明。
SpeakerKit
SpeakerKit 是一个基于 Core ML 的设备端说话人分离框架。它在 Apple 芯片上运行 Pyannote v4 (community-1) 分割和嵌入模型,用于识别和标记音频中的说话人。有关架构细节和基准测试,请参阅博客文章。
- macOS 13.0 或更高版本。
- iOS 16.0 或更高版本。
快速示例
此示例演示如何对音频文件进行说话人分离:
import SpeakerKit
Task {
let speakerKit = try await SpeakerKit()
let audioArray = try AudioProcessor.loadAudioAsFloatArray(fromPath: "audio.wav")
let result = try await speakerKit.diarize(audioArray: audioArray)
print("检测到 \(result.speakerCount) 位说话人")
for segment in result.segments {
print(segment)
}
}
SpeakerKit() 使用 PyannoteConfig() 的默认设置,在首次运行时会自动从 HuggingFace 下载模型。分段器和嵌入器的 CoreML 模型会在首次调用 diarize() 时延迟加载(除非在配置中设置了 load)。
说话人分离选项
您可以通过 PyannoteDiarizationOptions 控制说话人检测:
let audioArray = try AudioProcessor.loadAudioAsFloatArray(fromPath: "audio.wav")
let options = PyannoteDiarizationOptions(
numberOfSpeakers: 2, // nil 表示自动检测
clusterDistanceThreshold: 0.6, // 聚类阈值
useExclusiveReconciliation: false // 每帧只分配一位说话人
)
let result = try await speakerKit.diarize(audioArray: audioArray, options: options)
如果使用本地模型,则可跳过下载步骤:
let config = PyannoteConfig(modelFolder: "/path/to/models")
let speakerKit = try await SpeakerKit(config)
与转录结合
SpeakerKit 可以将说话人分离结果与 WhisperKit 转录合并,生成带有说话人信息的片段:
import WhisperKit
import SpeakerKit
let whisperKit = try await WhisperKit()
let speakerKit = try await SpeakerKit()
let audioArray = try AudioProcessor.loadAudioAsFloatArray(fromPath: "audio.wav")
let transcription = try await whisperKit.transcribe(audioArray: audioArray)
let diarization = try await speakerKit.diarize(audioArray: audioArray)
let speakerSegments = diarization.addSpeakerInfo(to: transcription)
for group in speakerSegments {
for segment in group {
print("\(segment.speaker): \(segment.text)")
}
}
有两种策略可用于将说话人与转录匹配:
.subsegment(默认)—— 在词间断处分割片段,然后分配说话人.segment—— 将一位说话人分配给整个转录片段
RTTM 输出
生成 RTTM 输出:
let speakerKit = try await SpeakerKit()
let audioArray = try AudioProcessor.loadAudioAsFloatArray(fromPath: "meeting.wav")
let diarization = try await speakerKit.diarize(audioArray: audioArray)
let rttmLines = SpeakerKit.generateRTTM(from: diarization, fileName: "meeting")
for line in rttmLines {
print(line)
}
Swift 命令行工具
说话人分离命令可通过 whisperkit-cli 工具使用:
# 独立的说话人分离
swift run whisperkit-cli diarize --audio-path audio.wav --verbose
# 保存 RTTM 输出
swift run whisperkit-cli diarize --audio-path audio.wav --rttm-path output.rttm
# 指定说话人数
swift run whisperkit-cli diarize --audio-path audio.wav --num-speakers 3
# 带有说话人分离的转录
swift run whisperkit-cli transcribe --audio-path audio.wav --diarization
# 查看所有选项
swift run whisperkit-cli diarize --help
贡献与路线图
我们的目标是不断改进 WhisperKit,非常欢迎您的帮助!只需在代码中搜索“TODO”,即可找到许多尚未实现的功能。请参阅我们的贡献指南,了解如何提交问题、拉取请求以及编码规范;我们也在其中公开了未来计划实现的功能路线图。
许可证
WhisperKit 采用 MIT 许可证发布。更多详情请参阅 LICENSE 文件。
引用
如果您使用 WhisperKit 完成了很棒的工作,或者只是觉得它很有用,请发送邮件至 info@argmaxinc.com 告诉我们!
如果您在学术研究中使用 WhisperKit,可以使用以下 BibTeX 格式:
@misc{whisperkit-argmax,
title = {WhisperKit},
author = {Argmax, Inc.},
year = {2024},
URL = {https://github.com/argmaxinc/WhisperKit}
}
版本历史
v0.14.12025/10/17v0.10.22025/01/16v0.10.12024/12/21v0.10.02024/12/20v0.9.42024/11/07v0.9.32024/11/05v0.9.22024/11/02v0.9.02024/10/09v0.8.02024/07/12v0.7.22024/05/30v0.7.12024/05/25v0.18.02026/04/01v0.17.02026/03/13v0.16.02026/03/03v0.15.02025/11/07v0.14.02025/09/20v0.13.12025/07/31v0.13.02025/06/13v0.12.02025/04/15v0.11.02025/02/22常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备