WhisperKit WhisperKit

WhisperKit

Tests License Supported Swift Version Supported Platforms Discord

WhisperKit 是一个由 Argmax 开发的框架,用于在设备上部署最先进的语音转文本系统(例如 Whisper),并具有实时流式传输、单词时间戳、语音活动检测等高级功能。

[TestFlight 演示应用] [Python 工具] [基准测试与设备支持] [WhisperKit Android]

重要提示

如果您正在寻找更多功能,例如说话人分离和更高的性能,请查看 WhisperKit ProSpeakerKit Pro! 对于商业用途或评估,请联系 whisperkitpro@argmaxinc.com

目录

安装

Swift 包管理器

可以使用 Swift 包管理器将 WhisperKit 集成到您的 Swift 项目中。

先决条件

Xcode 步骤

  1. 在 Xcode 中打开您的 Swift 项目。
  2. 导航到 File > Add Package Dependencies...
  3. 输入包存储库 URL:https://github.com/argmaxinc/whisperkit
  4. 选择版本范围或特定版本。
  5. 单击 Finish 以将 WhisperKit 添加到您的项目。

Package.swift

如果您将 WhisperKit 用作 swift 包的一部分,您可以将其包含在 Package.swift 依赖项中,如下所示

dependencies: [
    .package(url: "https://github.com/argmaxinc/WhisperKit.git", from: "0.9.0"),
],

然后将 WhisperKit 添加为目标的依赖项

.target(
    name: "YourApp",
    dependencies: ["WhisperKit"]
),

Homebrew

您可以使用 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

Swift CLI 允许在 Xcode 项目之外进行快速测试和调试。 要安装它,请运行以下命令

git clone https://github.com/argmaxinc/whisperkit.git
cd whisperkit

然后,设置环境并下载您所需的模型。

make setup
make download-model MODEL=large-v3

注意:

  1. 这将仅下载由 MODEL 指定的模型(请参阅我们的 HuggingFace 存储库 中可用的内容,我们在其中使用前缀 openai_whisper-{MODEL}
  2. 在运行 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}
}