Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Whisperer Watch App

A voice-powered ChatGPT client for Apple Watch that provides seamless AI chats through speech recognition and text-to-speech synthesis.

Features

  • Voice Input: Record audio and get instant transcriptions via OpenAI Whisper
  • AI Chat: Powered by ChatGPT for intelligent chats
  • Text-to-Speech: Hear responses with customizable voice synthesis
  • Watch-Optimized UI: Designed specifically for Apple Watch interaction
  • Secure API: Uses Vercel proxy for secure OpenAI API access
  • Real-time Status: Live connection status indicator
  • Chat History: Save and manage multiple chats

Quick Start

Prerequisites

  • macOS with Xcode installed
  • Apple Watch Simulator or physical Apple Watch
  • Vercel account (for API deployment)

Setup Development Environment

# Clone the repository
git clone <your-repo-url>
cd Whisperer

# Setup development environment (installs watchOS SDK if needed)
make setup

# Build and run on simulator
make run

Available Make Commands

make setup             # Set up development environment (install Xcode and watchOS SDK)
make build             # Build the watchOS app
make install           # Build and install app on Watch Simulator
make run               # Build, install, and launch app on Watch Simulator
make debug             # Build, install, and launch app ready for debugging
make deploy            # Deploy Vercel API endpoints
make list-simulators   # List available Watch Simulators
make clean             # Clean build artifacts
make open              # Open project in Xcode
make help              # Show help message

Architecture

Core Components

  • APIService: Manages OpenAI API connections with continuous health monitoring
  • AudioManager: Handles voice recording and audio processing
  • ChatManager: Manages chats and message history
  • VoiceSynthesis: Provides text-to-speech functionality
  • Settings: User preferences and configuration

API Integration

The app uses a Vercel-hosted proxy for secure OpenAI API access:

  • Chat API: /api/chat - ChatGPT completions
  • Transcription API: /api/transcribe - Whisper audio transcription
  • Status API: /api/stats - Health check endpoint

Vercel Deployment

For secure API key management and production deployment, see README-VERCEL.md for detailed setup instructions.

Quick Vercel Setup

# Install Vercel CLI
npm install -g vercel

# Deploy API endpoints
make deploy

Configuration

App Configuration

Update the Vercel deployment URL in APIService.swift:

private let baseURL = "https://your-vercel-app.vercel.app"

Environment Variables (Vercel)

Set in your Vercel dashboard:

OPENAI_CHAT_API_KEY=your_openai_chat_key
OPENAI_TRANSCRIBE_API_KEY=your_openai_transcribe_key
OPENAI_CHAT_MODEL=gpt-4o-mini
WHISPERER_REQUEST_SIGNING_SECRET=your_long_random_secret
WHISPERER_CLIENT_ID=whisperer-watch
# Optional fallback:
# OPENAI_API_KEY=legacy_key_for_all_endpoints

Set this in the watch app Info.plist (or Xcode build setting for Info.plist key):

WHISPERER_API_SIGNING_SECRET=must_match_vercel_WHISPERER_REQUEST_SIGNING_SECRET

Development

Project Structure

Whisperer/
├── Whisperer/              # iOS/watchOS app source
│   ├── APIService.swift    # API communication
│   ├── AppView.swift       # Main UI
│   ├── AudioManager.swift  # Audio recording
│   ├── ChatManager.swift   # Chat logic
│   └── ...
├── api/                    # Vercel API functions
│   ├── chat.js            # ChatGPT proxy
│   ├── transcribe.js      # Whisper proxy
│   └── stats.js           # Health check
└── Makefile               # Build automation

Building and Testing

# Clean build
make clean

# Build only
make build

# Run with debugging
make debug

# List available simulators
make list-simulators

Features in Detail

Voice Recognition

  • High-quality audio recording optimized for Apple Watch
  • Real-time audio level monitoring
  • Automatic transcription via OpenAI Whisper

AI Chats

  • Context-aware ChatGPT responses
  • Chat history management
  • Customizable response length and behavior

Text-to-Speech

  • Multiple voice options
  • Adjustable speech rate
  • Automatic playback of AI responses

User Interface

  • Minimalist design optimized for small screens
  • Real-time connection status indicator
  • Intuitive gesture-based navigation
  • Settings panel for customization

Troubleshooting

Common Issues

  1. Build Failures: Run make setup to ensure all dependencies are installed
  2. API Connection Issues: Check Vercel deployment and API key configuration
  3. Simulator Issues: Use make list-simulators to see available devices

Debug Mode

# Launch with debugger attached
make debug

# View detailed logs in Xcode console

Contributing

Contributions and suggestions are welcome! The source is public so the community can review it and help improve it.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly with make run
  5. Submit a pull request

Note: forks are permitted only for the purpose of submitting contributions back to this project. By submitting a contribution you agree to the terms in the LICENSE.

License

Copyright (c) 2024-2026 Alex Spaulding. All rights reserved.

Whisperer is source-available but not open source. You may view the code and fork it to contribute improvements back, but you may not use, sell, redistribute, deploy, or incorporate it into other software. See the full LICENSE for details. For commercial or other permissions, contact the author.

Support

For issues and questions:

  • Check the troubleshooting section
  • Review Vercel deployment logs
  • Open an issue on GitHub

About

ChatGPT with Whisper for Apple Watch

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages