Skip to content

Commit 3eca0c9

Browse files
authored
New speechTranscriberNotAvailable error (#19)
Check if SpeechTranscriber.isAvailable before running, display relevant error if not Currently, yap displays a misleading unsupportedLocale on platforms where transcription is not available at all (eg: virtualized macOS 26)
1 parent 49f5209 commit 3eca0c9

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

Sources/yap/Transcribe.swift

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,15 @@ import Speech
4545
Noora()
4646
}
4747

48-
let supported = await SpeechTranscriber.supportedLocales
49-
guard supported.map({ $0.identifier(.bcp47) }).contains(locale.identifier(.bcp47)) else {
50-
noora.error(.alert("Locale \"\(locale.identifier)\" is not supported. Supported locales:\n\(supported.map(\.identifier))"))
48+
let speechTranscriberIsAvailable = SpeechTranscriber.isAvailable
49+
guard speechTranscriberIsAvailable else {
50+
noora.error(.alert("SpeechTranscriber is not available on this device"))
51+
throw Error.speechTranscriberNotAvailable
52+
}
53+
54+
let supportedLocales = await SpeechTranscriber.supportedLocales
55+
guard supportedLocales.map({ $0.identifier(.bcp47) }).contains(locale.identifier(.bcp47)) else {
56+
noora.error(.alert("Locale \"\(locale.identifier)\" is not supported. Supported locales:\n\(supportedLocales.map(\.identifier))"))
5157
throw Error.unsupportedLocale
5258
}
5359

@@ -136,5 +142,6 @@ import Speech
136142
extension Transcribe {
137143
enum Error: Swift.Error {
138144
case unsupportedLocale
145+
case speechTranscriberNotAvailable
139146
}
140147
}

0 commit comments

Comments
 (0)