diff --git a/apps/desktop/src/components/settings/ai/stt/configure.tsx b/apps/desktop/src/components/settings/ai/stt/configure.tsx
index 1cd789f746..e854c8a3de 100644
--- a/apps/desktop/src/components/settings/ai/stt/configure.tsx
+++ b/apps/desktop/src/components/settings/ai/stt/configure.tsx
@@ -189,6 +189,11 @@ function HyprProviderCard({
displayName="Parakeet v3"
description="On-device model. English and European languages."
/>
+
diff --git a/apps/desktop/src/components/settings/ai/stt/select.tsx b/apps/desktop/src/components/settings/ai/stt/select.tsx
index 4140ec4812..fee76d09eb 100644
--- a/apps/desktop/src/components/settings/ai/stt/select.tsx
+++ b/apps/desktop/src/components/settings/ai/stt/select.tsx
@@ -229,10 +229,11 @@ function useConfiguredMapping(): Record<
const isAppleSilicon = targetArch.data === "aarch64";
- const [p2, p3, tinyEn, smallEn] = useQueries({
+ const [p2, p3, whisperLargeV3, tinyEn, smallEn] = useQueries({
queries: [
sttModelQueries.isDownloaded("am-parakeet-v2"),
sttModelQueries.isDownloaded("am-parakeet-v3"),
+ sttModelQueries.isDownloaded("am-whisper-large-v3"),
sttModelQueries.isDownloaded("QuantizedTinyEn"),
sttModelQueries.isDownloaded("QuantizedSmallEn"),
],
@@ -255,6 +256,10 @@ function useConfiguredMapping(): Record<
models.push(
{ id: "am-parakeet-v2", isDownloaded: p2.data ?? false },
{ id: "am-parakeet-v3", isDownloaded: p3.data ?? false },
+ {
+ id: "am-whisper-large-v3",
+ isDownloaded: whisperLargeV3.data ?? false,
+ },
);
}
diff --git a/apps/desktop/src/components/settings/ai/stt/shared.tsx b/apps/desktop/src/components/settings/ai/stt/shared.tsx
index 4de1f3fae0..e7875af92e 100644
--- a/apps/desktop/src/components/settings/ai/stt/shared.tsx
+++ b/apps/desktop/src/components/settings/ai/stt/shared.tsx
@@ -48,6 +48,9 @@ export const displayModelId = (model: string) => {
if (am == "am-parakeet-v3") {
return "Parakeet V3";
}
+ if (am == "am-whisper-large-v3") {
+ return "Whisper Large V3";
+ }
}
if (model.startsWith("Quantized")) {
@@ -74,6 +77,7 @@ export const PROVIDERS = [
"cloud",
"am-parakeet-v2",
"am-parakeet-v3",
+ "am-whisper-large-v3",
"QuantizedTinyEn",
"QuantizedSmallEn",
],
@@ -170,6 +174,105 @@ export const LANGUAGE_SUPPORT: LanguageSupportMap = {
"hr",
"cs",
],
+ "am-whisper-large-v3": [
+ "af",
+ "am",
+ "ar",
+ "as",
+ "az",
+ "ba",
+ "be",
+ "bg",
+ "bn",
+ "bo",
+ "br",
+ "bs",
+ "ca",
+ "cs",
+ "cy",
+ "da",
+ "de",
+ "el",
+ "en",
+ "es",
+ "et",
+ "eu",
+ "fa",
+ "fi",
+ "fo",
+ "fr",
+ "gl",
+ "gu",
+ "ha",
+ "he",
+ "hi",
+ "hr",
+ "ht",
+ "hu",
+ "hy",
+ "id",
+ "is",
+ "it",
+ "ja",
+ "jv",
+ "ka",
+ "kk",
+ "km",
+ "kn",
+ "ko",
+ "la",
+ "lb",
+ "lo",
+ "lt",
+ "lv",
+ "mg",
+ "mi",
+ "mk",
+ "ml",
+ "mn",
+ "mr",
+ "ms",
+ "mt",
+ "my",
+ "ne",
+ "nl",
+ "nn",
+ "no",
+ "oc",
+ "pa",
+ "pl",
+ "ps",
+ "pt",
+ "ro",
+ "ru",
+ "sa",
+ "sd",
+ "si",
+ "sk",
+ "sl",
+ "sn",
+ "so",
+ "sq",
+ "sr",
+ "su",
+ "sv",
+ "sw",
+ "ta",
+ "te",
+ "tg",
+ "th",
+ "tk",
+ "tl",
+ "tr",
+ "tt",
+ "uk",
+ "ur",
+ "uz",
+ "vi",
+ "yi",
+ "yo",
+ "zh",
+ ],
},
deepgram: {
// https://developers.deepgram.com/docs/models-languages-overview#nova-3
diff --git a/plugins/local-stt/src/model.rs b/plugins/local-stt/src/model.rs
index 6d9ebf5ddb..859b3c46cd 100644
--- a/plugins/local-stt/src/model.rs
+++ b/plugins/local-stt/src/model.rs
@@ -1,7 +1,7 @@
use hypr_am::AmModel;
use hypr_whisper_local_model::WhisperModel;
-pub static SUPPORTED_MODELS: [SupportedSttModel; 9] = [
+pub static SUPPORTED_MODELS: [SupportedSttModel; 10] = [
SupportedSttModel::Whisper(WhisperModel::QuantizedTiny),
SupportedSttModel::Whisper(WhisperModel::QuantizedTinyEn),
SupportedSttModel::Whisper(WhisperModel::QuantizedBase),
@@ -11,6 +11,7 @@ pub static SUPPORTED_MODELS: [SupportedSttModel; 9] = [
SupportedSttModel::Whisper(WhisperModel::QuantizedLargeTurbo),
SupportedSttModel::Am(AmModel::ParakeetV2),
SupportedSttModel::Am(AmModel::ParakeetV3),
+ SupportedSttModel::Am(AmModel::WhisperLargeV3),
];
#[derive(serde::Serialize, serde::Deserialize, specta::Type)]