diff --git a/README.md b/README.md index 9a2ba77..47f7fdd 100644 --- a/README.md +++ b/README.md @@ -4,162 +4,75 @@ ![App Icon](src-tauri/icons/128x128@2x.png) -## ✨ Features +## ✨ New in v1.2.0 -* **πŸŽ™οΈ Dual-Channel Recording**: seamlessly capture your voice and meeting audio from apps like Microsoft Teams, Zoom, or Google Meet. -* **πŸ“ Import Audio Files**: Upload existing recordings (MP3, MP4, WAV, M4A, FLAC, OGG, AAC, WMA) for transcription and summarization. -* **⏱️ Long Meeting Support**: Record meetings up to 2+ hours with automatic MP3 conversion and chunking. -* **🎡 Smart Auto-Stop**: - * **Universal Auto-Stop**: Automatically stops recording after **20 seconds of silence** in ALL modes (Voice Memo & Meeting). - * **Noise Filtering**: Enhanced VAD (Voice Activity Detection) ignores background noise and keyboard typing, only triggering on clear speech. -* **πŸ“… Microsoft 365 Integration**: - * **Upcoming Meetings**: View your daily schedule and join with **one click**. - * **Meeting Details**: View full agenda and **invited attendee status** (Accepted/Declined). -* **πŸ’Ύ Persistent History**: Automatically saves all transcripts and summaries to disk. Search and review past meetings anytime. -* **βœ‰οΈ Email Summaries**: Send professional, formatted HTML summaries (with preview) directly to attendees via your own SMTP server. -* **🧠 Powered by Infomaniak AI**: - * **Precision Transcription**: Standard-compliant formatting with **second-by-second timestamps**. - * **Smart Summaries**: Uses **Smart Templates** to automatically select the best format (Business Protocol vs. 1:1) based on meeting content. -* **πŸ”‡ Smart VAD**: Automatically filters out silence and stops recording when you stop talking. -* **🎨 White-Labeling**: Upload your **custom company logo** in Settings to brand the application. -* **πŸ”’ Privacy-First**: Data is processed securely via your own Infomaniak API keys. +* **🎧 Native System Audio**: No more BlackHole driver needed! Captures Teams/Zoom audio directly and securely via macOS ScreenCaptureKit. +* **πŸ” Auto-Loop (Standby Mode)**: The app automatically "re-arms" after a call finishes. Just leave it runningβ€”it will wake up, record your next call, and go back to sleep. +* **⚑ Smart VAD & Pre-Roll**: + * **3-Second Pre-Roll**: Catches the start of the sentence even if you speak before the trigger. + * **Noise Filtering**: Ignores typing and background noise. +* **πŸ›‘οΈ Empty Audio Guard**: Automatically discards silent recordings (e.g., false triggers) to save API costs and prevent errors. +* **✨ 48kHz Crystal Clear Audio**: Optimized audio pipeline prevents "robot voice" distortion. ---- +## πŸš€ Key Features -## πŸš€ Getting Started - -### Required - -* **macOS** (tested on macOS Monterey and later) -* **BlackHole 2ch Driver** ([Download here](https://existential.audio/blackhole/)) - * **MANDATORY** for system audio capture (MS Teams, Zoom, etc.) - * Without this, you can only record microphone input -* **ffmpeg** for audio processing - ```bash - brew install ffmpeg - ``` -* **Infomaniak AI Account**: You need an API Key and Product ID from the [Infomaniak Developer Portal](https://manager.infomaniak.com/). - -### 2. Installation -1. Download the latest `.dmg` file from the [Releases page](#). -2. Open the `.dmg` and drag **Hearbit AI** to your Applications folder. -3. Launch the app. - ---- - -## 🎧 Recording System Audio (Teams, Zoom, etc.) - -We've made this easy! **Note: You must have the BlackHole driver installed.** - -1. **Create "Hearbit Audio" Device**: - * Open the app and select **Meeting** mode. - * If you don't have the device yet, click the **"πŸͺ„ Create Hearbit Audio Device"** button. - * This creates a specialized "Multi-Output Device" that routes audio to both your headphones/speakers AND the app. - -2. **Configure Teams / Zoom / Webex**: - * **Speaker / Output**: Change this to **Hearbit Audio**. - * *Why?* This ensures the audio goes to the recording app *and* your ears. - * **Microphone / Input**: Leave this as your normal microphone (e.g., MacBook Pro Mic). - * *Note:* Do **not** select Hearbit Audio as your microphone in Teams. - -3. **Start Recording**: - * In Hearbit AI, ensure **Hearbit Audio** is selected as the input. +* **πŸŽ™οΈ Dual-Channel Recording**: Seamlessly capture your voice and meeting audio. +* **πŸ“ Import Audio Files**: Upload existing recordings (MP3, WAV, M4A, etc.). +* **⏱️ Long Meeting Support**: Handles meetings 2+ hours with automatic chunking. +* **πŸ“… Microsoft 365 Integration**: View upcoming meetings and join with one click. +* **πŸ’Ύ Persistent History**: Automatically saves all transcripts and summaries locally. +* **βœ‰οΈ Email Summaries**: Send formatted HTML summaries via your own SMTP server. +* **🎨 White-Labeling**: Upload your custom company logo. --- ## πŸ› οΈ Usage Guide -1. **Configuration**: - * Click the **Settings** (gear icon). - * Enter your **Infomaniak API Key** and **Product ID**. +### 1. Installation +1. Download the latest `.dmg` file from the [Releases page](#). +2. Open the `.dmg` and drag **Hearbit AI** to your Applications folder. +3. **Permission Check**: On first launch, grant "Screen Recording" permission (required for capturing System Audio). -2. **Connect M365 (Optional)**: - * Copy the **Application (client) ID**. - * Click the **Meetings** tab. - * Enter your **Client ID** and click "Connect". - * Proceed with MS login. - * View your upcoming meetings. +### 2. Configuration +1. Click **Settings** (gear icon). +2. Enter your **Infomaniak API Key** and **Product ID**. +3. (Optional) Configure **SMTP** for email sending and **Microsoft 365** for calendar integration. -3. **Recording**: - * Choose your **Template** (e.g., "Meeting Protocol"). - * Select your **Input Device**. - * Click **Start Recording**. +### 3. Recording a Meeting +1. **Select Mode**: Choose "Meeting" (captures Mic + System) or "Voice Memo" (Mic only). +2. **Auto-Start (Recommended)**: Check "Auto-start when audio detected". +3. **Standby**: Click "Standby (Auto-Start)". The app waits silently. +4. **Join Call**: Join your Teams/Zoom call. +5. **Trigger**: As soon as someone speaks, Hearbit starts recording automatically. +6. **Finish**: When the call ends (silence > 20s), Hearbit stops, transcribes, summarizes, and **goes back to Standby** for the next call. -4. **Processing**: - * Click **Stop** when finished. - * The app will transcribe the audio (with timestamps!) and generate a summary based on your selected template. - * You will be automatically taken to the **Transcription** tab to review the results. - ---- - -## 🎨 Custom Branding (White-Labeling) - -You can replace the default Livtec logo with your own company branding: - -1. Go to **Settings** (gear icon) β†’ **Branding**. -2. Click **Upload Logo**. -3. Select your file (PNG, JPG, SVG). -4. The content changes immediately across the app. -5. *Tip*: Use a transparent PNG for best results. - ---- - -## πŸ“§ Advanced Email Templates - -The email system supports **full HTML & JavaScript** templates. This allows for dynamic dashboards, charts, and interactive reports. - -**How to use:** -1. Go to **Settings** β†’ **Email**. -2. Create a new template. -3. Use `{{summary}}` as a placeholder for the raw AI JSON output. -4. In your HTML/Script, parse it: - ```javascript - const reportData = {{summary}}; - // Now you can use reportData.todos, reportData.updates, etc. - ``` -5. Use `{{date}}` for the current date and `{{subject}}` for the meeting title. - -*Example*: Create a "Daily Standup Dashboard" that visualizes Blocker/Updates/Todos in a grid layout. +### 4. Customizing Prompts +You can create custom AI templates in Settings -> Prompts. Example: +* **"Sales Call"**: Focus on budget, timeline, and decision makers. +* **"Daily Standup"**: Extract blockers and next steps. +* **"General Protocol"**: Standard meeting minutes. --- ## ❓ Troubleshooting ### "Hearbit AI is damaged and can't be opened" -This is a standard macOS warning for apps not signed with an Apple Developer Certificate. To fix it: - +If macOS blocks the app because it's not notarized: 1. Open **Terminal**. -2. Run the following command: - ```bash - sudo xattr -cr /Applications/Hearbit\ AI.app - ``` -3. Enter your password. -4. Open the app again. +2. Run: `sudo xattr -cr /Applications/Hearbit\ AI.app` +3. Enter your password and try again. -### Long Meetings (> 1 hour) +### Audio cuts off at the start? +v1.2.0 includes a **3-second buffer**. If this persists, ensure your "Auto-start" threshold isn't too high (though it's currently auto-calibrated). -**Automatic Handling**: The app automatically handles long recordings: -- **MP3 Conversion**: All recordings are converted to MP3 (64kbps) for 10x compression -- **Chunking**: Files β‰₯18 MB are automatically split into 10-minute segments -- **Processing**: Each segment is transcribed separately and merged with timestamps - -**Example**: A 2-hour meeting: -1. Records as WAV (~120 MB) -2. Converts to MP3 (~12 MB) -3. Stays under limit β†’ No chunking needed! - -**Very long meetings** (e.g., all-day workshops): -- Automatically chunks into segments -- Shows progress: "Processing chunk 1/15..." -- Merges all transcriptions seamlessly - -### No Audio / Can't Hear Meeting Participants +### "Batch processing failed" +This means the audio was empty or too short. The new **Empty Guard** prevents this in most cases. If it happens, check your microphone selection. --- ## πŸ‘¨β€πŸ’» Development -Built with **Tauri**, **React**, and **TypeScript**. +Built with **Tauri v2**, **React**, and **TypeScript**. ### Setup ```bash @@ -175,7 +88,6 @@ npm run tauri dev ```bash npm run tauri build ``` -*The build artifact will be located in `src-tauri/target/release/bundle/dmg/*`* ---