Skip to content

Commit fc64f8b

Browse files
changes
1 parent 16356e8 commit fc64f8b

4 files changed

Lines changed: 71 additions & 43 deletions

File tree

Playground/YapRun/YapRun.xcodeproj/project.pbxproj

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
54398FFC2F497A34009D6B51 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54398FFB2F497A34009D6B51 /* WidgetKit.framework */; };
1212
54398FFE2F497A34009D6B51 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54398FFD2F497A34009D6B51 /* SwiftUI.framework */; };
1313
5439900B2F497A35009D6B51 /* YapRunActivityExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 54398FF92F497A34009D6B51 /* YapRunActivityExtension.appex */; platformFilter = ios; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
14-
543991CD2F498152009D6B51 /* RunAnywhere in Frameworks */ = {isa = PBXBuildFile; productRef = 543991CC2F498152009D6B51 /* RunAnywhere */; };
15-
543991CF2F498152009D6B51 /* RunAnywhereONNX in Frameworks */ = {isa = PBXBuildFile; productRef = 543991CE2F498152009D6B51 /* RunAnywhereONNX */; };
16-
543991D12F498152009D6B51 /* RunAnywhereWhisperKit in Frameworks */ = {isa = PBXBuildFile; productRef = 543991D02F498152009D6B51 /* RunAnywhereWhisperKit */; };
14+
54F2B9632F4BA43F00D2FB5A /* RunAnywhere in Frameworks */ = {isa = PBXBuildFile; productRef = 54F2B9622F4BA43F00D2FB5A /* RunAnywhere */; };
15+
54F2B9652F4BA43F00D2FB5A /* RunAnywhereONNX in Frameworks */ = {isa = PBXBuildFile; productRef = 54F2B9642F4BA43F00D2FB5A /* RunAnywhereONNX */; };
16+
54F2B9672F4BA43F00D2FB5A /* RunAnywhereWhisperKit in Frameworks */ = {isa = PBXBuildFile; productRef = 54F2B9662F4BA43F00D2FB5A /* RunAnywhereWhisperKit */; };
1717
/* End PBXBuildFile section */
1818

1919
/* Begin PBXContainerItemProxy section */
@@ -139,9 +139,9 @@
139139
isa = PBXFrameworksBuildPhase;
140140
buildActionMask = 2147483647;
141141
files = (
142-
543991CF2F498152009D6B51 /* RunAnywhereONNX in Frameworks */,
143-
543991D12F498152009D6B51 /* RunAnywhereWhisperKit in Frameworks */,
144-
543991CD2F498152009D6B51 /* RunAnywhere in Frameworks */,
142+
54F2B9672F4BA43F00D2FB5A /* RunAnywhereWhisperKit in Frameworks */,
143+
54F2B9652F4BA43F00D2FB5A /* RunAnywhereONNX in Frameworks */,
144+
54F2B9632F4BA43F00D2FB5A /* RunAnywhere in Frameworks */,
145145
);
146146
runOnlyForDeploymentPostprocessing = 0;
147147
};
@@ -236,9 +236,9 @@
236236
);
237237
name = YapRun;
238238
packageProductDependencies = (
239-
543991CC2F498152009D6B51 /* RunAnywhere */,
240-
543991CE2F498152009D6B51 /* RunAnywhereONNX */,
241-
543991D02F498152009D6B51 /* RunAnywhereWhisperKit */,
239+
54F2B9622F4BA43F00D2FB5A /* RunAnywhere */,
240+
54F2B9642F4BA43F00D2FB5A /* RunAnywhereONNX */,
241+
54F2B9662F4BA43F00D2FB5A /* RunAnywhereWhisperKit */,
242242
);
243243
productName = YapRun;
244244
productReference = 54398FBA2F4979D2009D6B51 /* YapRun.app */;
@@ -373,7 +373,7 @@
373373
mainGroup = 54398FB12F4979D2009D6B51;
374374
minimizedProjectReferenceProxies = 1;
375375
packageReferences = (
376-
543991CB2F498152009D6B51 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */,
376+
54F2B9612F4BA43F00D2FB5A /* XCRemoteSwiftPackageReference "runanywhere-sdks" */,
377377
);
378378
preferredProjectObjectVersion = 77;
379379
productRefGroup = 54398FBB2F4979D2009D6B51 /* Products */;
@@ -993,7 +993,7 @@
993993
/* End XCConfigurationList section */
994994

995995
/* Begin XCRemoteSwiftPackageReference section */
996-
543991CB2F498152009D6B51 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */ = {
996+
54F2B9612F4BA43F00D2FB5A /* XCRemoteSwiftPackageReference "runanywhere-sdks" */ = {
997997
isa = XCRemoteSwiftPackageReference;
998998
repositoryURL = "https://github.com/RunanywhereAI/runanywhere-sdks";
999999
requirement = {
@@ -1004,19 +1004,19 @@
10041004
/* End XCRemoteSwiftPackageReference section */
10051005

10061006
/* Begin XCSwiftPackageProductDependency section */
1007-
543991CC2F498152009D6B51 /* RunAnywhere */ = {
1007+
54F2B9622F4BA43F00D2FB5A /* RunAnywhere */ = {
10081008
isa = XCSwiftPackageProductDependency;
1009-
package = 543991CB2F498152009D6B51 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
1009+
package = 54F2B9612F4BA43F00D2FB5A /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
10101010
productName = RunAnywhere;
10111011
};
1012-
543991CE2F498152009D6B51 /* RunAnywhereONNX */ = {
1012+
54F2B9642F4BA43F00D2FB5A /* RunAnywhereONNX */ = {
10131013
isa = XCSwiftPackageProductDependency;
1014-
package = 543991CB2F498152009D6B51 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
1014+
package = 54F2B9612F4BA43F00D2FB5A /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
10151015
productName = RunAnywhereONNX;
10161016
};
1017-
543991D02F498152009D6B51 /* RunAnywhereWhisperKit */ = {
1017+
54F2B9662F4BA43F00D2FB5A /* RunAnywhereWhisperKit */ = {
10181018
isa = XCSwiftPackageProductDependency;
1019-
package = 543991CB2F498152009D6B51 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
1019+
package = 54F2B9612F4BA43F00D2FB5A /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
10201020
productName = RunAnywhereWhisperKit;
10211021
};
10221022
/* End XCSwiftPackageProductDependency section */

Playground/YapRun/YapRun/Core/ModelRegistry.swift

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,33 @@ enum ModelRegistry {
2020
}
2121

2222
/// Default model used during onboarding.
23-
static let defaultModelId = "asr-moonshine-tiny-en-int8"
23+
static let defaultModelId = "whisperkit-tiny.en"
2424

2525
/// All available ASR models (tar.gz for fast native gzip extraction on iOS/macOS).
2626
static let asrModels: [ASRModel] = [
27-
// ONNX models (CPU via sherpa-onnx)
27+
// ─── WhisperKit (Apple Neural Engine via Core ML) ───────────────
28+
// Optimized: runs on the Neural Engine, freeing CPU for other tasks.
29+
// Lower memory footprint and better battery efficiency.
30+
ASRModel(
31+
id: "whisperkit-tiny.en",
32+
name: "Whisper Tiny EN",
33+
url: URL(string: "https://github.com/RunanywhereAI/sherpa-onnx/releases/download/runanywhere-models-v2/whisperkit-tiny.en.tar.gz")!,
34+
archiveType: .tarGz,
35+
framework: .whisperKit,
36+
sizeBytes: 70_000_000
37+
),
38+
ASRModel(
39+
id: "whisperkit-base.en",
40+
name: "Whisper Base EN",
41+
url: URL(string: "https://github.com/RunanywhereAI/sherpa-onnx/releases/download/runanywhere-models-v2/whisperkit-base.en.tar.gz")!,
42+
archiveType: .tarGz,
43+
framework: .whisperKit,
44+
sizeBytes: 134_000_000
45+
),
46+
47+
// ─── ONNX (CPU via sherpa-onnx) ────────────────────────────────
48+
// CPU-intensive: runs entirely on CPU cores.
49+
// Higher memory usage and battery consumption.
2850
ASRModel(
2951
id: "asr-moonshine-tiny-en-int8",
3052
name: "Moonshine Tiny EN (int8)",
@@ -57,24 +79,6 @@ enum ModelRegistry {
5779
framework: .onnx,
5880
sizeBytes: 126_000_000
5981
),
60-
61-
// WhisperKit models (Apple Neural Engine via Core ML)
62-
ASRModel(
63-
id: "whisperkit-tiny.en",
64-
name: "Whisper Tiny EN (WhisperKit)",
65-
url: URL(string: "https://github.com/RunanywhereAI/sherpa-onnx/releases/download/runanywhere-models-v2/whisperkit-tiny.en.tar.gz")!,
66-
archiveType: .tarGz,
67-
framework: .whisperKitCoreML,
68-
sizeBytes: 70_000_000
69-
),
70-
ASRModel(
71-
id: "whisperkit-base.en",
72-
name: "Whisper Base EN (WhisperKit)",
73-
url: URL(string: "https://github.com/RunanywhereAI/sherpa-onnx/releases/download/runanywhere-models-v2/whisperkit-base.en.tar.gz")!,
74-
archiveType: .tarGz,
75-
framework: .whisperKitCoreML,
76-
sizeBytes: 134_000_000
77-
),
7882
]
7983

8084
/// Register all ASR models with the RunAnywhere SDK.

Playground/YapRun/YapRun/Features/Home/HomeViewModel.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,19 @@ extension ModelInfo {
238238
}
239239

240240
var frameworkBadge: String {
241-
framework.rawValue
241+
switch framework {
242+
case .whisperKit: return "Neural Engine"
243+
case .onnx: return "ONNX CPU"
244+
default: return framework.rawValue
245+
}
246+
}
247+
248+
var engineNote: String {
249+
switch framework {
250+
case .whisperKit: return "Optimized - runs on Apple Neural Engine with low CPU and memory usage"
251+
case .onnx: return "High CPU usage - runs entirely on CPU with higher memory consumption"
252+
default: return ""
253+
}
242254
}
243255

244256
var frameworkColor: Color {
@@ -247,7 +259,7 @@ extension ModelInfo {
247259
case .llamaCpp: return .purple
248260
case .foundationModels: return .blue
249261
case .coreml: return .cyan
250-
case .whisperKitCoreML: return .green
262+
case .whisperKit: return .green
251263
default: return .gray
252264
}
253265
}

Playground/YapRun/YapRun/Features/Home/ModelCardView.swift

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ struct ModelCardView: View {
2020
var body: some View {
2121
HStack(spacing: 12) {
2222
// Icon
23-
Image(systemName: "waveform")
23+
Image(systemName: model.framework == .whisperKit ? "brain" : "cpu")
2424
.font(.system(size: 18, weight: .medium))
2525
.foregroundStyle(model.frameworkColor)
2626
.frame(width: 40, height: 40)
@@ -42,9 +42,21 @@ struct ModelCardView: View {
4242
.background(model.frameworkColor.opacity(0.15), in: Capsule())
4343
}
4444

45-
Text(model.sizeLabel)
46-
.font(.caption)
47-
.foregroundStyle(AppColors.textTertiary)
45+
HStack(spacing: 6) {
46+
Text(model.sizeLabel)
47+
.font(.caption)
48+
.foregroundStyle(AppColors.textTertiary)
49+
50+
if !model.engineNote.isEmpty {
51+
Text("·")
52+
.font(.caption)
53+
.foregroundStyle(AppColors.textTertiary)
54+
55+
Text(model.framework == .whisperKit ? "Optimized" : "High CPU")
56+
.font(.system(size: 9, weight: .semibold))
57+
.foregroundStyle(model.framework == .whisperKit ? .green : .orange)
58+
}
59+
}
4860
}
4961

5062
Spacer()

0 commit comments

Comments
 (0)