# πŸŽ™οΈ Obsidian Voice Briefing Plugin Convert your Obsidian notes into 1-2 minute audio briefings using AI and Text-to-Speech, with cloud sharing support via Google Drive. ## ✨ Features ### πŸ€– Multi-Provider AI Script Generation - **Google Gemini** (Recommended - Free) - **XAI/Grok** - **OpenAI GPT-4** - **Anthropic Claude** ### πŸ”Š Dual TTS Support - **Edge TTS** - Free, built-in Microsoft voices - **ElevenLabs** - Premium, natural-sounding voices ### ☁️ Google Drive Cloud Sharing - Upload audio files to Google Drive - Generate public sharing links - Three link format options: - HTML Audio Player (recommended) - Markdown Link - Direct URL ### 🌐 Multi-Language Support - πŸ‡°πŸ‡· Korean (ν•œκ΅­μ–΄) - πŸ‡ΊπŸ‡Έ English (US) - πŸ‡―πŸ‡΅ Japanese (ζ—₯本θͺž) - πŸ‡¨πŸ‡³ Chinese (δΈ­ζ–‡) - πŸ‡ͺπŸ‡Έ Spanish (EspaΓ±ol) - πŸ‡«πŸ‡· French (FranΓ§ais) - πŸ‡©πŸ‡ͺ German (Deutsch) ### 🎨 Three Briefing Styles - **Metaphorical** - Easy analogies for complex concepts - **Feynman Technique** - Teaching-style explanations - **News Anchor** - Professional presentation style - **Custom** - Define your own style with prompts ## πŸ“¦ Installation ### Prerequisites 1. **Obsidian** v0.15.0 or higher 2. **Node.js** v16 or higher (for development) 3. **Edge TTS** (for free TTS option): ```bash pip install edge-tts ``` ### Install Plugin 1. Download the latest release from [GitHub](https://github.com/reallygood83/voice-note-obsidian) 2. Extract to `.obsidian/plugins/voice-note-obsidian/` 3. Enable the plugin in Obsidian Settings β†’ Community Plugins ## βš™οΈ Configuration ### 1️⃣ AI Provider Setup #### Google Gemini (Recommended - Free) 1. Get API key from [Google AI Studio](https://makersuite.google.com/app/apikey) 2. In plugin settings: - AI Provider: **Google Gemini** - API Key: `your-gemini-api-key` - Model: `gemini-2.0-flash` (default) #### Other Providers - **XAI**: Get key from [XAI Console](https://console.x.ai/) - **OpenAI**: Get key from [OpenAI Platform](https://platform.openai.com/) - **Anthropic**: Get key from [Anthropic Console](https://console.anthropic.com/) ### 2️⃣ TTS Engine Setup #### Option A: Edge TTS (Free) 1. Install Edge TTS: ```bash pip install edge-tts ``` 2. In plugin settings: - TTS Engine: **Edge TTS (Free)** - Select voice based on your language #### Option B: ElevenLabs (Premium) 1. Sign up at [ElevenLabs](https://elevenlabs.io/) 2. Get API key from account settings 3. In plugin settings: - TTS Engine: **ElevenLabs (Premium)** - API Key: `your-elevenlabs-api-key` - Voice ID: `voice-id-from-elevenlabs` ### 3️⃣ Google Drive Setup (Optional) #### Get OAuth 2.0 Access Token 1. Go to [Google Cloud Console](https://console.cloud.google.com/) 2. Create a new project or select existing one 3. Enable Google Drive API 4. Create OAuth 2.0 credentials: - Application type: **Desktop app** - Download credentials JSON 5. Use OAuth Playground or script to get access token: ```bash # Example using OAuth Playground https://developers.google.com/oauthplayground/ ``` 6. In plugin settings: - Enable Cloud Sharing: **ON** - Paste access token - Click **Test Connection** to verify #### Optional: Create Upload Folder 1. Create folder in Google Drive 2. Copy folder ID from URL: `https://drive.google.com/drive/folders/YOUR_FOLDER_ID` 3. Paste folder ID in plugin settings ## πŸš€ Usage ### Generate Voice Briefing 1. Open any note in Obsidian 2. Run command: `Generate Voice Briefing` (Ctrl/Cmd+P) 3. Wait for AI script generation and audio conversion 4. Audio will be embedded at the bottom of your note ### Link Format Examples #### HTML Audio Player (Recommended) ```markdown ## 🎧 Voice Briefing *Generated on 2025-01-24 β€’ Duration: ~90s* *[View in Google Drive](https://drive.google.com/file/d/FILE_ID/view)* ``` #### Markdown Link ```markdown ## 🎧 Voice Briefing [πŸ”Š Play Audio](https://drive.google.com/uc?export=download&id=FILE_ID) *Generated on 2025-01-24 β€’ Duration: ~90s* *[View in Google Drive](https://drive.google.com/file/d/FILE_ID/view)* ``` #### Direct URL ```markdown ## 🎧 Voice Briefing https://drive.google.com/uc?export=download&id=FILE_ID *Generated on 2025-01-24 β€’ Duration: ~90s* ``` ## πŸ”§ Troubleshooting ### Common Issues #### "Edge TTS: command not found" - **Solution**: Install Edge TTS with `pip install edge-tts` - **Verify**: Run `edge-tts --help` to confirm installation #### "Invalid API key" - **Solution**: Check API key format and provider selection - Ensure API key has proper permissions #### "Google Drive upload failed" - **Solution**: Test connection in settings - Check access token validity (tokens expire after ~1 hour) - Verify folder ID if using custom folder #### "Audio not playing in shared notes" - **Solution**: Use HTML or Markdown link format instead of local files - Local `![[file.mp3]]` syntax only works in your vault ## πŸ› οΈ Development ### Build from Source ```bash # Clone repository git clone https://github.com/reallygood83/voice-note-obsidian.git cd voice-note-obsidian # Install dependencies npm install # Build plugin npm run build # Development mode (watch) npm run dev ``` ### Project Structure ``` voice-note-obsidian/ β”œβ”€β”€ main.ts # Plugin main file β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ ai/ β”‚ β”‚ └── script-generator.ts # AI script generation β”‚ β”œβ”€β”€ tts/ β”‚ β”‚ β”œβ”€β”€ edge-tts-handler.ts # Edge TTS integration β”‚ β”‚ β”œβ”€β”€ elevenlabs-handler.ts # ElevenLabs integration β”‚ β”‚ └── tts-generator.ts # Unified TTS interface β”‚ └── cloud/ β”‚ └── google-drive-client.ts # Google Drive API client β”œβ”€β”€ styles.css # Plugin styles β”œβ”€β”€ manifest.json # Plugin metadata └── package.json # Dependencies ``` ## πŸ“‹ Roadmap - [x] Multi-provider AI script generation - [x] Edge TTS and ElevenLabs support - [x] Google Drive cloud sharing - [x] Multi-language support - [ ] OAuth 2.0 flow UI - [ ] Batch processing for multiple notes - [ ] Custom voice cloning (ElevenLabs) - [ ] Audio transcription for existing recordings ## πŸ“ License MIT License - see LICENSE file for details ## πŸ™ Acknowledgments - Built with [Obsidian API](https://github.com/obsidianmd/obsidian-api) - AI powered by Google Gemini, XAI, OpenAI, and Anthropic - TTS by Microsoft Edge TTS and ElevenLabs - Cloud storage by Google Drive ## πŸ› Bug Reports & Feature Requests Please open an issue on [GitHub](https://github.com/reallygood83/voice-note-obsidian/issues) ## πŸ‘€ Author **λ¬Έμ •** (reallygood83) - GitHub: [@reallygood83](https://github.com/reallygood83) ## 🌟 Support If you find this plugin useful, please consider: - ⭐ Starring the repository - πŸ› Reporting bugs and issues - πŸ’‘ Suggesting new features - πŸ“– Contributing to documentation --- **Made with ❀️ for the Obsidian community** 🚧 **Development Status**: Active development, ready for testing