@@ -29,6 +29,7 @@ public enum TTSModelState: Equatable {
2929@MainActor
3030public final class TTSService : ObservableObject {
3131 public static let shared = TTSService ( )
32+ private static let defaultPocketTtsLanguage : PocketTtsLanguage = . english
3233
3334 // MARK: - Published state
3435
@@ -160,6 +161,7 @@ public final class TTSService: ObservableObject {
160161 // Route through the downloader explicitly so we get progress callbacks.
161162 // When models are already cached this returns nearly instantly.
162163 _ = try await PocketTtsResourceDownloader . ensureModels (
164+ language: Self . defaultPocketTtsLanguage,
163165 directory: nil ,
164166 progressHandler: { progress in
165167 Task { @MainActor in
@@ -176,7 +178,10 @@ public final class TTSService: ObservableObject {
176178 }
177179 )
178180
179- let mgr = PocketTtsManager ( defaultVoice: voice)
181+ let mgr = PocketTtsManager (
182+ defaultVoice: voice,
183+ language: Self . defaultPocketTtsLanguage
184+ )
180185 try await mgr. initialize ( )
181186 await MainActor . run {
182187 guard let self else { return }
@@ -216,6 +221,10 @@ public final class TTSService: ObservableObject {
216221 . appendingPathComponent ( " fluidaudio " , isDirectory: true )
217222 . appendingPathComponent ( " Models " , isDirectory: true )
218223 . appendingPathComponent ( " pocket-tts " , isDirectory: true )
224+ . appendingPathComponent (
225+ Self . defaultPocketTtsLanguage. repoSubdirectory,
226+ isDirectory: true
227+ )
219228 let required = ModelNames . PocketTTS. requiredModels
220229 let fm = FileManager . default
221230 return required. allSatisfy { fm. fileExists ( atPath: repoDir. appendingPathComponent ( $0) . path) }
0 commit comments