Transform your notes (or articles via Obsidian Web Clipper) into an immersive audio experience with advanced text-to-speech technology. Enjoy high-quality customizable voices, real-time word highlighting, and convenient controls. Supports both online and on-device TTS for most devices.
- **Word Highlighting**: Real-time highlighting of spoken words. Works in both Edit and Reading views. Research shows word-by-word highlighting improves [reading comprehension](https://pmc.ncbi.nlm.nih.gov/articles/PMC7959096/).
1.**Community Plugins Store**: Open Obsidian, go to Settings → Community plugins → Browse, and search for "Note Reader". If available, select Install and then Enable. (Note: Plugin approval is taking several months, so if not found, use manual installation below.)
2.**Manual Installation**: Download the plugin files (`main.js`, `manifest.json`, `styles.css`) from the plugin's GitHub repository. Create a new folder in your Obsidian vault's plugins directory (e.g., `.obsidian/plugins/note-reader`). Place the downloaded files in this folder, then enable the plugin in Settings → Community plugins.
## Usage
To use Note Reader:
1. Open the note you want to listen to in Obsidian.
Additionally, enable phrase line filtering to ignore lines containing specific phrases, and prefix line filtering to skip lines that start with a specific prefix.
- **Voice**: Choose from available voices, grouped by locale with easy filtering by language and region.
- **Pitch**: -50 to +50 Hz
- **Speed**: 0.5x to 2.0x
### Audio File Generation
- **Storage location**: Choose where generated audio files are saved (Vault folder, Same folder as current file, Subfolder under current folder, or Specified folder).
- **Subfolder name**: Name for the subfolder when using subfolder storage option.
- **Persist reading position**: Save and restore reading position in note frontmatter.
- **Rewind persisted positions**: Rewind slightly to provide context when resuming reading.
- **Always start from beginning when note is modified**: Skip the prompt when opening a note that has been modified since it was read.
- **When re-triggering read command** (Enhanced Mode Only): Choose what happens when you use the 'read note' command again while reading - pause/play, stop/start, or reload from beginning.
- **When re-triggering read command with a new note** (Enhanced Mode Only): Choose what happens when 'read note' is used on a different note while already reading.
- **Sync across devices (plugin storage):** Stores counters in the plugin's settings so they will be included when you sync your vault (e.g., via Obsidian Sync or other vault-syncing solutions).
- **Local device only (browser storage):** Stores counters in the browser/localStorage for the current device only; these values are not synced across devices.
- **Read note from top**: Reads the document from the beginning. If text is selected, reads only the selected portion (from the start of the selection to the cursor/selection end). Otherwise, reads the entire note from the top (or from the persisted position if enabled).
- **Start reading from cursor**: Begins reading from the current cursor position in the active note.
- **Read from selected text**: Reads only the currently selected text. Only available when text is selected.
- **Reload active note**: Reloads and restarts reading of the currently active note from the beginning.
### Playback Control Commands
- **Toggle (pause or play)**: Pauses if currently playing, or resumes if paused.
- **Rewind 10 seconds**: Moves the playback position back by 10 seconds.
- **Stop and close**: Stops playback and closes the reader controls panel.
### Audio File Generation Commands
- **Generate audio file for current note**: Creates an audio file (MP3) for the currently active note. Requires online TTS provider.
- **Generate audio files for folder**: Opens a folder picker to select a folder and generates audio files for all markdown notes within it. Requires online TTS provider.
### Command Availability
> **Reference:** Reading commands require an active markdown or text file to be open. Playback controls are only available while actively reading. Audio file generation requires the online TTS provider (see [TTS Provider](#text-to-speech) in Settings).
### Hotkey Configuration
To assign custom hotkeys:
1. Go to **Settings** → **Hotkeys**
2. Search for "note reader" to see all available commands
3. Click the hotkey field and press your desired key combination
> **Note:** Not all commands may be available depending on the current state (e.g., playback controls are disabled when not reading).
- **Local mode**: Uses the browser's Web Speech API (speechSynthesis) for client-side TTS, processing everything locally without sending data to external servers. This API may not be available on all platforms, including some Android devices.
- **Online mode**: Uses Azure Cognitive Services, which sends text and a token to Microsoft servers for processing. They state all data transfers are encrypted and data is deleted immediately after processing. See their [data policy](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/speech-service/text-to-speech/data-privacy-security?tabs=custom-neural-voice) for more details.
**Voice Selection Dialog**: When using the voice selection dialog, country flags may be loaded from the network to display alongside voice options. If you prefer to avoid loading flags from the network, you can skip using the voice selection dialog and instead configure voices directly.