OSSSpeechKit 1.0: Modern async API, iOS 17, SPM-only distribution#48
Merged
Conversation
Release OSSSpeechKit 1.0 with a modern async API, iOS 17 baseline, and SPM-only distribution. Introduces OSSSpeechEngine for instance-based synthesis and recognition, OSSLanguage catalog with runtime capability checks, value-type voice and utterance configuration, continuous dictation with pause/resume, and a privacy manifest. Legacy singleton and delegate APIs are deprecated but retained for incremental migration. CocoaPods support is removed for 1.0+; see MIGRATION.md for upgrade guidance.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OSSSpeechKit 1.0: Modern async API, iOS 17, SPM-only distribution
Pull Request Notes
Summary
This PR ships OSSSpeechKit 1.0.0, a major modernization of the library. It introduces an instance-based, async/await API centered on
OSSSpeechEngine, replaces subclass-based voice/utterance configuration with value types, adds a runtime-aware language catalog, and moves distribution exclusively to Swift Package Manager with an iOS 17 minimum deployment target.Legacy APIs (
OSSSpeech.shared,OSSVoice,OSSUtterance, delegate-based recognition) remain available but are deprecated to allow incremental migration.What's New
OSSSpeechEngine— Main-actor-isolated engine for speech synthesis and recognition with typedOSSSpeechErrorfailuresrecognitionEvents(locale:)returns anAsyncThrowingStreamofOSSSpeechRecognitionEvent(partial, completed, availability, cancelled)continuousRecognitionEvents(locale:)withpauseRecognition(),resumeRecognition(), andfinishRecognition()for long-running sessions with segment timestampsOSSLanguagecatalog — Display metadata, runtime synthesis voice lookup, recognition support checks, and UnicodeflagEmoji/ UIKitrenderedFlagImage(pointSize:)OSSVoiceConfigurationandOSSUtteranceConfigurationreplaceOSSVoice/OSSUtterancesubclassesPrivacyInfo.xcprivacybundled with the packageRecordingSessionViewController,RecordingSessionModel) demonstrating continuous recognitionREADME.md, newMIGRATION.mdandCHANGELOG.md, regenerated Jazzy API docsBreaking Changes
0.3.3pod remains resolvable but unsupported)OSSSpeech.sharedsingleton + delegatesOSSSpeechEnginewithasync/awaitOSSSpeechError.voiceUnavailabledidFinishListening, etc.)cancelRecognition()to stopOSSVoiceEnum.allCases+ image flagsOSSLanguage.catalog+flagEmoji/ rendered imagesDeprecated (still present)
OSSSpeech/OSSSpeech.sharedOSSVoice/OSSUtteranceOSSSpeechDelegateand delegate-based recognitionOSSVoiceEnumcatalog and image flag accessSee MIGRATION.md for side-by-side migration examples.
Infrastructure
PodfileremovedTest Plan
swift testpasses (package tests underExample/Tests)recognitionEvents) produces partial and final transcriptsOSSSpeechError(not silent failure)OSSSpeechError.voiceUnavailableOSSSpeechAPI still compiles with deprecation warnings1.0.0