43 lines
1.6 KiB
Swift
43 lines
1.6 KiB
Swift
import Foundation
|
|
|
|
enum WhisperStateError: Error, Identifiable {
|
|
case modelLoadFailed
|
|
case transcriptionFailed
|
|
case whisperCoreFailed
|
|
case unzipFailed
|
|
case unknownError
|
|
|
|
var id: String { UUID().uuidString }
|
|
}
|
|
|
|
extension WhisperStateError: LocalizedError {
|
|
var errorDescription: String? {
|
|
switch self {
|
|
case .modelLoadFailed:
|
|
return "Failed to load the transcription model."
|
|
case .transcriptionFailed:
|
|
return "Failed to transcribe the audio."
|
|
case .whisperCoreFailed:
|
|
return "The core transcription engine failed."
|
|
case .unzipFailed:
|
|
return "Failed to unzip the downloaded Core ML model."
|
|
case .unknownError:
|
|
return "An unknown error occurred."
|
|
}
|
|
}
|
|
|
|
var recoverySuggestion: String? {
|
|
switch self {
|
|
case .modelLoadFailed:
|
|
return "Try selecting a different model or redownloading the current model."
|
|
case .transcriptionFailed:
|
|
return "Check the default model try again. If the problem persists, try a different model."
|
|
case .whisperCoreFailed:
|
|
return "This can happen due to an issue with the audio recording or insufficient system resources. Please try again, or restart the app."
|
|
case .unzipFailed:
|
|
return "The downloaded Core ML model archive might be corrupted. Try deleting the model and downloading it again. Check available disk space."
|
|
case .unknownError:
|
|
return "Please restart the application. If the problem persists, contact support."
|
|
}
|
|
}
|
|
} |