Remove manual asset reservations
This commit is contained in:
parent
eefd8c9b2f
commit
848489c98b
@ -112,9 +112,7 @@ class NativeAppleTranscriptionService: TranscriptionService {
|
|||||||
throw ServiceError.localeNotSupported
|
throw ServiceError.localeNotSupported
|
||||||
}
|
}
|
||||||
|
|
||||||
// Properly manage asset allocation/deallocation
|
// Asset reservations are managed automatically by the system.
|
||||||
try await deallocateExistingAssets()
|
|
||||||
try await allocateAssetsForLocale(locale)
|
|
||||||
|
|
||||||
let transcriber = SpeechTranscriber(
|
let transcriber = SpeechTranscriber(
|
||||||
locale: locale,
|
locale: locale,
|
||||||
@ -149,29 +147,7 @@ class NativeAppleTranscriptionService: TranscriptionService {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@available(macOS 26, *)
|
|
||||||
private func deallocateExistingAssets() async throws {
|
|
||||||
#if canImport(Speech) && ENABLE_NATIVE_SPEECH_ANALYZER
|
|
||||||
// Deallocate any existing allocated locales to avoid conflicts
|
|
||||||
for locale in await AssetInventory.allocatedLocales {
|
|
||||||
await AssetInventory.deallocate(locale: locale)
|
|
||||||
}
|
|
||||||
logger.notice("Deallocated existing asset locales.")
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
@available(macOS 26, *)
|
|
||||||
private func allocateAssetsForLocale(_ locale: Locale) async throws {
|
|
||||||
#if canImport(Speech) && ENABLE_NATIVE_SPEECH_ANALYZER
|
|
||||||
do {
|
|
||||||
try await AssetInventory.allocate(locale: locale)
|
|
||||||
logger.notice("Successfully allocated assets for locale: '\(locale.identifier(.bcp47))'")
|
|
||||||
} catch {
|
|
||||||
logger.error("Failed to allocate assets for locale '\(locale.identifier(.bcp47))': \(error.localizedDescription)")
|
|
||||||
throw ServiceError.assetAllocationFailed
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Forward-compatibility: Use Any here because SpeechTranscriber is only available in future macOS SDKs.
|
// Forward-compatibility: Use Any here because SpeechTranscriber is only available in future macOS SDKs.
|
||||||
// This avoids referencing an unavailable SDK symbol while keeping the method shape for later adoption.
|
// This avoids referencing an unavailable SDK symbol while keeping the method shape for later adoption.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user