closed-captioner

ClosedCaptioner

A beautiful iOS app for real-time speech-to-text with closed captioning capabilities.

Features

Controls (Portrait Mode)

Architecture

The app follows MVVM (Model-View-ViewModel) architecture for scalability and maintainability:

ClosedCaptioner/
โ”œโ”€โ”€ Models/              # Data models
โ”‚   โ”œโ”€โ”€ ColorMode.swift
โ”‚   โ””โ”€โ”€ CaptionText.swift
โ”œโ”€โ”€ Services/            # Business logic
โ”‚   โ”œโ”€โ”€ AudioService.swift
โ”‚   โ”œโ”€โ”€ SpeechService.swift
โ”‚   โ”œโ”€โ”€ EmojiService.swift
โ”‚   โ”œโ”€โ”€ PickupLineService.swift
โ”‚   โ””โ”€โ”€ ShakeDetectionService.swift
โ”œโ”€โ”€ ViewModels/          # UI state management
โ”‚   โ””โ”€โ”€ AppStateViewModel.swift
โ”œโ”€โ”€ Views/               # UI components
โ”‚   โ”œโ”€โ”€ ContentView.swift
โ”‚   โ”œโ”€โ”€ CaptionTextDisplay.swift
โ”‚   โ”œโ”€โ”€ ControlsView.swift
โ”‚   โ”œโ”€โ”€ HistoryView.swift
โ”‚   โ”œโ”€โ”€ KeyboardEditView.swift
โ”‚   โ””โ”€โ”€ DoneButton.swift
โ”œโ”€โ”€ Controllers/         # Feature controllers
โ”‚   โ””โ”€โ”€ MicController.swift
โ”œโ”€โ”€ Interfaces/          # Protocol definitions
โ”‚   โ””โ”€โ”€ MicControlProtocol.swift
โ”œโ”€โ”€ Managers/           # Feature managers
โ”‚   โ”œโ”€โ”€ HistoryManager.swift
โ”‚   โ””โ”€โ”€ ExportManager.swift
โ””โ”€โ”€ Assets.xcassets/     # Images and colors

Future Features (Architecture Ready)

Setup

  1. Open the project in Xcode
  2. Build and run on an iOS device
  3. Grant microphone and speech recognition permissions when prompted
  4. App runs in portrait mode (optimized for vertical viewing)

Requirements

Technology Stack

Development

The codebase is organized for:

License

MIT