tellme/Sources/App/MenuWhisperApp.swift
Felipe M. 5663f3c3de
Implement Phase 2: Real offline speech-to-text with whisper.cpp
- Add SwiftWhisper integration for real whisper.cpp support with Metal acceleration
- Implement complete WhisperCPPEngine with audio transcription and text normalization
- Build ModelManager with curated catalog, downloads, and Core ML encoder support
- Create preferences window with model management UI (download, select, delete)
- Add NSStatusItem menu bar with model status display
- Integrate STT pipeline: hotkey → audio capture → whisper transcription
- Add model setup alerts when no model is loaded
- Support offline operation with performance targets met (<4s for 10s audio)
- Store models in ~/Library/Application Support/MenuWhisper/Models/

Phase 2 TECHSPEC requirements fully implemented and tested.
2025-09-19 08:31:35 +02:00

26 lines
648 B
Swift

import SwiftUI
import CoreUtils
class AppDelegate: NSObject, NSApplicationDelegate {
private let appController = AppController()
func applicationDidFinishLaunching(_ notification: Notification) {
appController.start()
}
}
@main
struct MenuWhisperApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
// Use a hidden window scene since we're using NSStatusItem for the menu bar
WindowGroup {
EmptyView()
}
.windowStyle(.hiddenTitleBar)
.windowResizability(.contentSize)
.defaultSize(width: 0, height: 0)
}
}