ModeTranscription.swift
34 lignes · 1291 octets
import Foundation import Speech /// Mode de transcription des notes vocales. enum ModeTranscription: String { /// Transcription on-device via SFSpeechRecognizer (fr_FR, données non transmises). case appareil /// Transcription déléguée au serveur (upload audio, transcription côté serveur). case serveur } /// Préférence locale du mode de transcription (UserDefaults). enum PreferencesAudio { private static let cleMode = "transcription_mode" /// `true` si SFSpeechRecognizer est disponible pour fr_FR sur cet appareil. /// Lorsque `false`, le mode est forcé à `.serveur`. static var speechRecognitionDisponible: Bool { SFSpeechRecognizer(locale: Locale(identifier: "fr_FR"))?.isAvailable == true } /// Mode persisté. Retourne toujours `.serveur` si la reconnaissance vocale est indisponible. static var modeTranscription: ModeTranscription { get { if !speechRecognitionDisponible { return .serveur } let raw = UserDefaults.standard.string(forKey: cleMode) ?? ModeTranscription.appareil.rawValue return ModeTranscription(rawValue: raw) ?? .appareil } set { UserDefaults.standard.set(newValue.rawValue, forKey: cleMode) } } }
GitRust