Initial commit
Add BeamScribe iOS app for real-time transcription with multipeer connectivity. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
52
README.md
Normal file
52
README.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# BeamScribe 🎤📡
|
||||
|
||||
**BeamScribe** is an accessibility-focused iOS application designed to facilitate immediate, real-time communication between hearing speakers and Deaf or Hard of Hearing individuals.
|
||||
|
||||
It functions as a **live transcription broadcast system**, allowing a host to transcribe speech via their iPhone and broadcast the text in real-time to up to **7 connected guest devices** nearby.
|
||||
|
||||
## 🌟 Key Features
|
||||
|
||||
### 📡 Live Broadcasting (Multipeer Connectivity)
|
||||
* **Host Mode:** A hearing person hosts a session. Their speech is converted to text instantly.
|
||||
* **Guest Mode:** Up to **7 Deaf or Hard of Hearing participants** can join the host's session wirelessly.
|
||||
* **Real-Time Sync:** Guests see the transcription appear on their iPhones in real-time as the host speaks.
|
||||
* **No Internet Required for Connection:** Uses Apple's Multipeer Connectivity framework (Wi-Fi/Bluetooth peer-to-peer) to link devices, meaning guests don't need a data plan or active Wi-Fi connection to the internet to receive text (though the Host needs a connection for high-accuracy online transcription).
|
||||
* **Late Joiner Support:** Guests who join a session late automatically receive the full transcript history so they don't miss context.
|
||||
|
||||
### 📝 Transcription Engine
|
||||
* **High-Accuracy Speech-to-Text:** Powered by Apple's `SFSpeechRecognizer`.
|
||||
* **Offline Support:** capable of falling back to on-device speech recognition if the internet is unavailable.
|
||||
* **Smart Formatting:** Auto-punctuation and intelligent paragraph handling.
|
||||
* **Silent Reset Detection:** Automatically handles internal speech engine timeouts to ensure continuous, uninterrupted recording.
|
||||
|
||||
### 🎧 Audio & Hardware Support
|
||||
* **Bluetooth Microphone Support:** Detects external Bluetooth microphones (like lapel mics or headsets) and prompts the user to switch inputs for better audio clarity in noisy environments.
|
||||
* **Background Audio:** Continues transcribing even if the screen is locked or the app is backgrounded.
|
||||
* **Battery Monitoring:** Alerts guests if the Host's battery is critically low.
|
||||
|
||||
### 🎨 Accessibility & Customization
|
||||
* **High Contrast Themes:** Includes Light, Dark, and High-Contrast (Lightbulb) themes.
|
||||
* **Typography Control:** Users can adjust font size (up to 48pt) and choose specific fonts (Rounded, Serif, Monospaced, Marker Felt) for better readability.
|
||||
* **Keep Awake:** Option to prevent the screen from dimming during long sessions.
|
||||
|
||||
### 📂 File Management & Export
|
||||
* **Solo Mode:** Use the app for personal note-taking without broadcasting.
|
||||
* **Auto-Save:** Transcripts are automatically saved to the device.
|
||||
* **History Browser:** View, manage, and delete past sessions.
|
||||
* **PDF Export:** Generate clean, formatted PDFs of transcripts to share via email or other apps.
|
||||
|
||||
## 📱 How to Use
|
||||
|
||||
### For the Host (Speaker)
|
||||
1. Open BeamScribe and select **"Host Session"**.
|
||||
2. Enter a name for the event (e.g., "Biology Lecture" or "Family Dinner").
|
||||
3. Tap **Start Transcribing**.
|
||||
4. If a Bluetooth mic is connected, confirm the prompt to use it for better quality.
|
||||
5. Wait for guests to join. You will see a counter of connected listeners.
|
||||
|
||||
### For the Guest (Listener)
|
||||
1. Open BeamScribe and select **"Join Session"**.
|
||||
2. The app will browse for nearby hosts.
|
||||
3. Tap the desired session name (e.g., "Biology Lecture").
|
||||
4. Once connected, the text will appear on your screen automatically.
|
||||
5. You can customize the font size and theme in **Settings** (Gear icon) for easier reading.
|
||||
Reference in New Issue
Block a user