v1.0.0 #470
a2they
announced in
Announcements
v1.0.0
#470
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Highlights
v1.0.0marks the graduation of the project from WhisperKit into the Argmax Open-Source SDK, a Swift package that ships WhisperKit, SpeakerKit, TTSKit, and ArgmaxCore together. Alongside the new name, this release brings full Swift 6 concurrency support, vendors theswift-transformersHub and Tokenizers sources directly into ArgmaxCore under their original Apache 2.0 license (see NOTICES), and adds a new dynamic library product for binary distribution.New name: Argmax Open-Source SDK
The new name reflects the project's evolution from a single kit (WhisperKit) into a multi-kit open-source SDK, and gives us room to add more models and capabilities in the future. This open-source SDK is the foundation that the Argmax Pro SDK is built on. The Pro SDK extends what's here with additional models and advanced features.
The package is now
argmax-oss-swiftand the CLI isargmax-cli. A new umbrella product,ArgmaxOSS, re-exports all core modules so a single import gives you everything:import ArgmaxOSS // WhisperKit + SpeakerKit + TTSKit + ArgmaxCoreSwift 6 Concurrency
The package is now Swift 6 compatible under Swift 6's approachable concurrency model, with
Sendableadopted where appropriate and async boundaries made explicit. CI builds against the latest Swift 6 toolchains alongside Swift 5.10.Note
The top-level kit classes (
WhisperKit,SpeakerKit,TTSKit) are not yetSendable. If you store an instance of these in aSendabletype or pass it through a@Sendableclosure, you may see warnings. FullSendableconformance for the top-level kit classes is planned for a future release.Vendored Hub and Tokenizers
Huge thanks to the Hugging Face team and the
swift-transformerscommunity. The project has been a foundational dependency for WhisperKit since day one.To give the OSS SDK a self-contained build and avoid version-resolution conflicts for downstream apps that already depend on
swift-transformers, we've vendored the Hub and Tokenizers source files directly intoSources/ArgmaxCore/External/under their original Apache 2.0 license (see NOTICES for full attribution). Every file carries the upstream attribution header, and all Argmax modifications are marked by// Argmax-modification:comments for easy auditing against upstream.The public API surface is exposed through opaque wrappers (
HubApiWrapper,TokenizerWrapper, andAutoTokenizerWrapper), so the embeddedHubandTokenizertypes stay internal toArgmaxCoreand won't collide if you importswift-transformersseparately in the same app.ArgmaxOSS Dynamic Library
A new
ArgmaxOSSDynamicproduct (inPackage@swift-6.2.swift) builds the SDK as a dynamic library.CLI
The renamed
argmax-clibundles transcription, diarization, TTS, and an OpenAI-compatible local server in one binary.Run the local server with streaming transcription support:
The server responds to
POST /v1/audio/transcriptionsandPOST /v1/audio/translations, so existing OpenAI SDK clients work out of the box. See the README for client examples.API Changes
Removed deprecated APIs
All APIs previously marked
@available(*, deprecated)or@available(*, unavailable, renamed:)have been removed. Migrate to the replacements named in each original deprecation message. Notable removals:WhisperKit.transcribe(audioPath:)/transcribe(audioArray:)overloads returningTranscriptionResult?-> use the[TranscriptionResult]versionsTextDecoding.decodeText/detectLanguageMLMultiArrayoverloads -> use theany AudioEncoderOutputType/any DecodingInputsTypeversionsModelUtilities,TranscriptionUtilities,TextUtilities,Logging, andFileManagerWhisperKit.formatModelFiles->ModelUtilities.formatModelFilesSpeakerKit.init(models:),SpeakerKit.init(diarizer:), and theSpeakerKitModelManagertypealiasModelUtilities.getModelInputDimention/getModelOutputDimention(typo) ->getModelInputDimension/getModelOutputDimensionMLTensor.asIntArray/asFloatArray/asMLMultiArray(sync) ->await toIntArray()/toFloatArray()/toMLMultiArray(). As a result,TokenSampling.update(...)is nowasync.Typo fix:
DecodingOptions.supressTokens->suppressTokens.Also removed: the
TextDecoderContextPrefillmodel and theusePrefillCachedecoding path (a separate CoreML model that pre-seeded the KV cache for SOT/language/task/timestamp tokens). The decoder's own KV cache is unaffected.Upgrade Guide
Package and CLI rename
Package.swift:CLI:
TranscriptionCallbackin stored variablesIf you pass a callback inline (trailing closure or
callback: nil), no change is needed. Only stored-variable cases need an?:Community
Reaching
v1.0.0is a milestone two and a half years in the making, and it would not have been possible without the people who have filed issues, opened pull requests, shipped apps on top of WhisperKit, and shown up in Discord to help one another. Every contribution, big or small, has shaped what this SDK has become. From all of us at Argmax: thank you. 🙏This is a sizable breaking release, so please give it a spin and let us know how it goes. Open an issue or join us in Discord. 🚀
What's Changed
New Contributors
Full Changelog: v0.18.0...v1.0.0
This discussion was created from the release v1.0.0.
Beta Was this translation helpful? Give feedback.
All reactions