WhisperKit 是一个由 Argmax 开发的框架,用于在设备上部署最先进的语音转文本系统(例如 Whisper),并具有实时流式传输、单词时间戳、语音活动检测等高级功能。
[TestFlight 演示应用] [Python 工具] [基准测试与设备支持] [WhisperKit Android]
重要提示
如果您正在寻找更多功能,例如说话人分离和更高的性能,请查看 WhisperKit Pro 和 SpeakerKit Pro! 对于商业用途或评估,请联系 whisperkitpro@argmaxinc.com。
可以使用 Swift 包管理器将 WhisperKit 集成到您的 Swift 项目中。
File
> Add Package Dependencies...
。https://github.com/argmaxinc/whisperkit
。Finish
以将 WhisperKit 添加到您的项目。如果您将 WhisperKit 用作 swift 包的一部分,您可以将其包含在 Package.swift 依赖项中,如下所示
dependencies: [
.package(url: "https://github.com/argmaxinc/WhisperKit.git", from: "0.9.0"),
],
然后将 WhisperKit
添加为目标的依赖项
.target(
name: "YourApp",
dependencies: ["WhisperKit"]
),
您可以使用 Homebrew 通过运行以下命令来安装 WhisperKit
命令行应用程序
brew install whisperkit-cli
要开始使用 WhisperKit,您需要在项目中初始化它。
此示例演示了如何转录本地音频文件
import WhisperKit
// Initialize WhisperKit with default settings
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"))
此方法还支持 glob 搜索,因此您可以使用通配符来选择模型
let pipe = try? await WhisperKit(WhisperKitConfig(model: "distil*large-v3"))
请注意,模型搜索必须从源存储库返回单个模型,否则将抛出错误。
有关可用模型的列表,请参阅我们的 HuggingFace 存储库。
WhisperKit 还附带支持存储库 whisperkittools
,该存储库允许您创建和部署自己微调的 Whisper CoreML 格式版本到 HuggingFace。 生成后,只需将存储库名称更改为用于上传模型的名称即可加载它们
let config = WhisperKitConfig(model: "large-v3", modelRepo: "username/your-model-repo")
let pipe = try? await WhisperKit(config)
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 越来越好,我们非常乐意得到您的帮助! 只需在代码中搜索“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}
}