How danilchugaev/voice-to-text-obsidian-plugin works
This Obsidian plugin records microphone audio and appends a Vosk transcription to the open note. The main workflow is documented and visible in src/main.ts and src/transcribe.py; the README also documents the required FFmpeg, Python, Vosk, and model dependencies. The graph separates capture, audio conversion, recognition, and note insertion, while grouping shared orchestration and support code. External dependency wiring follows the sampled calls; no other feature branch is documented.
Main entry points: main.ts Plugin orchestration · transcribe.py Vosk transcription · logger.ts File logger · locales.ts Localized messages
Components 20
Obsidian interaction
- Plugin orchestration
src/main.ts - Record button
src/main.ts - Note editor
src/main.ts - Status notices
src/main.ts
Audio processing
- Microphone capture
src/main.ts - Save WebM audio
src/main.ts - Convert to WAV
src/main.ts
Speech recognition
- Run transcription
src/main.ts - Vosk transcription
src/transcribe.py
Plugin support
- File logger
src/logger.ts - Localized messages
src/locales.ts
Other components
- User
- Obsidian editor
- Microphone
- Temporary WebM
- FFmpeg
- Temporary WAV
- Vosk recognizer
- Vosk model
- Plugin log files
Connections 27
- Obsidian editor → Plugin orchestration: dispatches file-open
- Plugin orchestration → Record button: adds button
- Obsidian editor → Plugin orchestration: registers command
- User → Record button: clicks to record
- User → Plugin orchestration: invokes command
- Record button → Plugin orchestration: starts transcription
- Plugin orchestration → Microphone capture: calls
- Microphone capture → Microphone: requests audio
- Microphone capture → Plugin orchestration: returns audio
- Plugin orchestration → Save WebM audio: calls
- Save WebM audio → Temporary WebM: writes audio
- Plugin orchestration → Convert to WAV: calls
- Convert to WAV → FFmpeg: runs conversion
- Convert to WAV → Temporary WebM: reads audio
- Convert to WAV → Temporary WAV: writes WAV
- Plugin orchestration → Run transcription: calls
- Run transcription → Vosk transcription: runs Python
- Vosk transcription → Temporary WAV: reads WAV
- Vosk transcription → Vosk model: loads model
- Vosk transcription → Vosk recognizer: recognizes speech
- Run transcription → Plugin orchestration: returns text
- Plugin orchestration → Note editor: inserts transcription
- Note editor → Obsidian editor: updates note
- Plugin orchestration → Status notices: shows completion or error
- Plugin orchestration → Localized messages: gets messages
- Plugin orchestration → File logger: logs events
- File logger → Plugin log files: appends and rotates