Initial commit
This commit is contained in:
commit
1db16227b2
31 changed files with 2175 additions and 0 deletions
32
Sources/CoreSTT/STTEngine.swift
Normal file
32
Sources/CoreSTT/STTEngine.swift
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import Foundation
|
||||
import CoreUtils
|
||||
|
||||
public protocol STTEngine {
|
||||
func transcribe(audioData: Data, language: String?) async throws -> String
|
||||
func isModelLoaded() -> Bool
|
||||
func loadModel(at path: URL) async throws
|
||||
func unloadModel()
|
||||
}
|
||||
|
||||
public enum STTError: Error, LocalizedError {
|
||||
case modelNotFound
|
||||
case modelLoadFailed(String)
|
||||
case transcriptionFailed(String)
|
||||
case unsupportedFormat
|
||||
case invalidAudioData
|
||||
|
||||
public var errorDescription: String? {
|
||||
switch self {
|
||||
case .modelNotFound:
|
||||
return NSLocalizedString("error.model.not_found", comment: "Model not found error")
|
||||
case .modelLoadFailed(let reason):
|
||||
return NSLocalizedString("error.model.load_failed", comment: "Model load failed error") + ": \(reason)"
|
||||
case .transcriptionFailed(let reason):
|
||||
return NSLocalizedString("error.transcription.failed", comment: "Transcription failed error") + ": \(reason)"
|
||||
case .unsupportedFormat:
|
||||
return "Unsupported audio format"
|
||||
case .invalidAudioData:
|
||||
return "Invalid audio data"
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue