@@ -152,14 +152,14 @@ open class WhisperKit {
152
152
return modelSupport ( for: deviceName)
153
153
}
154
154
155
- public static func recommendedRemoteModels( from repo: String = " argmaxinc/whisperkit-coreml " ) async -> ModelSupport {
155
+ public static func recommendedRemoteModels( from repo: String = " argmaxinc/whisperkit-coreml " , downloadBase : URL ? = nil ) async -> ModelSupport {
156
156
let deviceName = Self . deviceName ( )
157
- let config = await Self . fetchModelSupportConfig ( from: repo)
157
+ let config = await Self . fetchModelSupportConfig ( from: repo, downloadBase : downloadBase )
158
158
return modelSupport ( for: deviceName, from: config)
159
159
}
160
160
161
- public static func fetchModelSupportConfig( from repo: String = " argmaxinc/whisperkit-coreml " ) async -> ModelSupportConfig {
162
- let hubApi = HubApi ( )
161
+ public static func fetchModelSupportConfig( from repo: String = " argmaxinc/whisperkit-coreml " , downloadBase : URL ? = nil ) async -> ModelSupportConfig {
162
+ let hubApi = HubApi ( downloadBase : downloadBase )
163
163
var modelSupportConfig = Constants . fallbackModelSupportConfig
164
164
165
165
do {
@@ -176,8 +176,8 @@ open class WhisperKit {
176
176
return modelSupportConfig
177
177
}
178
178
179
- public static func fetchAvailableModels( from repo: String = " argmaxinc/whisperkit-coreml " , matching: [ String ] = [ " * " ] ) async throws -> [ String ] {
180
- let modelSupportConfig = await fetchModelSupportConfig ( from: repo)
179
+ public static func fetchAvailableModels( from repo: String = " argmaxinc/whisperkit-coreml " , matching: [ String ] = [ " * " ] , downloadBase : URL ? = nil ) async throws -> [ String ] {
180
+ let modelSupportConfig = await fetchModelSupportConfig ( from: repo, downloadBase : downloadBase )
181
181
let supportedModels = modelSupportConfig. modelSupport ( ) . supported
182
182
var filteredSupportSet : Set < String > = [ ]
183
183
for glob in matching {
@@ -290,10 +290,10 @@ open class WhisperKit {
290
290
self . modelFolder = URL ( fileURLWithPath: folder)
291
291
} else if download {
292
292
// Determine the model variant to use
293
- let modelSupport = await WhisperKit . recommendedRemoteModels ( )
293
+ let repo = modelRepo ?? " argmaxinc/whisperkit-coreml "
294
+ let modelSupport = await WhisperKit . recommendedRemoteModels ( from: repo, downloadBase: downloadBase)
294
295
let modelVariant = model ?? modelSupport. default
295
296
296
- let repo = modelRepo ?? " argmaxinc/whisperkit-coreml "
297
297
do {
298
298
self . modelFolder = try await Self . download (
299
299
variant: modelVariant,
0 commit comments