Applies to version: 2.0.0 · Last updated: 2026-08-20

LexVoice is an Obsidian plugin for audio recording, transcription, and AI-generated meeting notes: it records in the background, transcribes in segments or as a live stream, and has an AI turn the result into structured Markdown notes. It also provides dictation, audio import, a live outline, and knowledge capture. This manual is written for everyday users and covers installation, configuration, daily use, and troubleshooting.

1. Product overview

1.1 What it does

LexVoice turns Obsidian into a meeting minute-taker: while you record, the plugin automatically sends audio segments off for transcription (transcription being the service that converts speech into text — you supply your own cloud or local service), and once recording stops, a large language model (LLM, i.e. the AI processing service) merges and polishes the entire transcript into a single structured Markdown set of notes. Beyond meeting recordings, the plugin also offers instant dictation (short utterances written straight to the cursor), transcription of imported audio, a live outline, question-answering against your notes, and knowledge capture (people, tasks, learning cards, and hot words).

1.2 Core workflows

Recording pipeline (transcribe while recording)

Recording (sliced into segments, transcribed as you record)
   │
   ▼
Transcription (cloud or local speech recognition service, returning text segment by segment)
   │
   ▼
AI processing (the LLM merges and polishes using the selected template)
   │
   ▼
Structured notes (frontmatter + body + collapsible source material)

The moment recording starts, the plugin creates a placeholder note in the notes folder; each completed segment transcription is written to the note in real time. When you stop recording, the wrap-up sequence begins and the note is finally rewritten as a fully formatted set of notes, with a linked entry added to today's daily note.

Import pipeline (whole file)

Prepare audio → Speech transcription (whole file submitted) → Write raw text → AI processing → Write notes

Imports are not chunked locally; the entire file is submitted to the transcription service in one request, so speaker numbering stays consistent throughout. The five stages are shown one by one in the processing progress panel.

Two checkpoints: the raw transcript must be confirmed fully written to disk before AI processing may begin — so a failed AI pass never costs you the verbatim transcript. AI processing itself runs in batches sized to the volume of content, and completed batches are recorded, so a mid-way failure only re-runs the missing parts rather than everything.

1.3 System requirements


2. Installation and updates

2.1 Manual installation from a GitHub Release

This is the standard installation method documented in the repository:

  1. Open the releases page at https://github.com/Lynn-x/LexVoice/releases and download the three files of the latest version: main.js, manifest.json, and styles.css.
  2. Quit Obsidian.
  3. In your vault directory, go to .obsidian/plugins/, create a folder named lexvoice, and place the three files inside it (the full path is <vault>/.obsidian/plugins/lexvoice/).
  4. Reopen Obsidian, go to "Settings → Community plugins" (设置 → 第三方插件), turn off Safe Mode if it is still on, and enable "LexVoice" in the plugin list.

Note: LexVoice release tags are bare version numbers (for example 2.0.0, with no v prefix).

2.2 Installing through BRAT

The repository root contains manifest.json and versions.json, which satisfies the directory requirements of BRAT (Beta Reviewers Auto-update Tester, a community plugin for installing beta plugin builds). You can try this: in BRAT, choose "Add beta plugin" and enter the repository address Lynn-x/LexVoice to complete the installation. If BRAT gives you trouble, fall back to the manual installation described in section 2.1.

2.3 The plugin's built-in incremental updater

Once installed, you never need to swap files by hand again:

2.4 Notes on upgrading


3. Quick start: your first set of notes in three steps

Step 1: Configure a transcription service

The transcription service converts speech into text; it is mandatory.

  1. Open "Settings → Community plugins → LexVoice → API" (设置 → 第三方插件 → LexVoice → API).
  2. In the "Notes transcription" (纪要转写) section, pick a provider from the "Transcription service" (转写服务) dropdown (SiliconFlow is the default). The page then shows that provider's guide card: a description, pricing notes, setup steps, and a link to the official documentation.
  3. Register on the provider's website, obtain an access key (API key), and paste it into the "Access key" (访问密钥) field. The service address and model name can usually be left at their defaults.
  4. Click "Connectivity test → Test" (连通性测试 → 测试). The plugin sends a real transcription request using one second of silent audio; on success it shows the returned result, on failure the error message.

An easier route: if you use a platform that offers both transcription and LLM services — such as Xiaomi MiMo or SiliconFlow — go to "Settings → LexVoice (home) → Quick setup" (设置 → LexVoice(首页)→ 快速配置), choose the provider, enter your key once, and click "Apply" (应用). This configures the transcription service and the AI processing service at the same time and saves both as a single API profile. If you do this, you can skip straight to step 3.

Step 2: Configure the AI processing model

The AI processing service merges and polishes the transcribed text into structured notes. You can record and transcribe without it, but your notes will remain a raw text transcript.

  1. Open "Settings → API → AI processing service" (设置 → API → AI 整理服务).
  2. Choose a provider from the "Service preset" (服务预设) dropdown (19 presets are built in, including SiliconFlow, OpenAI, DeepSeek, Alibaba Cloud Bailian, Zhipu GLM, and local Ollama). The address is filled in automatically.
  3. Enter your access key (if transcription uses the same SiliconFlow or MiMo account, click "Reuse transcription key" (复用转写密钥)).
  4. Click "Fetch available models" (获取可用模型) and pick a model from the list the service returns, rather than typing it and risking a typo.
  5. Click "Test connection" (测试连接) to verify that the address, key, and model all match.

Step 3: Record and get your notes

  1. Click the microphone button on the floating bubble (or the microphone icon in the left ribbon, or the "New recording" (新建录音) button at the bottom of the live notes panel) to start recording. The plugin immediately creates a placeholder note and shows a notification describing the current audio source and segmentation strategy.
  2. Hold your meeting or talk normally. By default a segment is cut and sent for transcription every 5 minutes (with extra early cuts at 10, 60, and 180 seconds so text appears quickly). Each segment is written to the note as soon as it is transcribed, and the live outline refreshes along with it.
  3. When you are done, press the stop button on the floating bubble (or in the panel). The plugin automatically merges and polishes all transcripts, rewrites the note as structured notes, distills a topic and appends it to the file name, and opens the result. Your first set of notes is complete.

To capture sound playing on your computer (online meetings, online courses), you must first install a virtual audio device and switch the recording source under "Settings → General → Audio input" (设置 → 常规 → 音频输入). See section 4.3.


4. Recording and meeting notes

4.1 What it does

Meeting recording is the main LexVoice pipeline: everything from the start of recording to the finished notes is automated. You can pause partway through, watch the transcript and outline in real time, and when you stop, the AI writes everything up using the template you selected, then names, files, and logs the result in your daily note.

4.2 Start, pause, and stop

Ways to start recording:

When recording starts, the plugin immediately creates a placeholder note in the notes folder (named according to the "Notes file name format" (纪要文件名格式) setting, YYYY-MM-DD HHmm by default) and shows a notification describing the current audio source and segmentation strategy. If "Open the live notes panel automatically when recording starts" (录音开始时自动打开实时纪要面板) is enabled — it is by default — the sidebar panel opens as well.

Pause and resume: use the command "Pause/resume recording" (暂停/继续录音), the pause button on the floating bubble, or the pause button on the panel's recording status bar. The timer stops while paused, and paused time counts toward neither the recording duration nor the segment cut points.

Stopping: use the "Start/stop recording" command, the ribbon icon, the stop button on the floating bubble (labelled "Stop and merge/polish" (停止并合并润色)), or the panel's stop button. Once stopped, the wrap-up sequence runs automatically:

  1. The final audio segment is cut and the master recording for the whole session (the complete recording file) is saved;
  2. The plugin waits for the final segment transcription and merges all segment transcripts;
  3. The LLM merges and polishes the text using the template for the selected mode;
  4. The whole note is rewritten according to "Consolidated notes layout" (纪要整合排版); if that setting is off, a "## Consolidated version" (## 整合版) block is appended instead;
  5. The AI distills a topic of at most 15 characters and appends it to the file name;
  6. An entry is written to the "Today's meeting summary" (今日会议概要) section of today's daily note;
  7. Cached segment audio for successfully transcribed segments is cleaned up;
  8. A "LexVoice processing complete" (LexVoice 处理完成) notification appears and the notes open automatically (you can turn this off under "Settings → General → After completion" (设置 → 常规 → 完成后动作)).

If AI processing fails, the retryable task enters the pending queue and the notes keep the raw transcript, so nothing is lost.

4.3 The three audio source modes

Choose a mode under "Settings → General → Audio input → Recording source" (设置 → 常规 → 音频输入 → 录音来源), or from the "Audio" (音频) dropdown in the panel's idle state:

Mode Best for Description
Microphone only In-person meetings, dictation The default mode; captures from the microphone
Microphone + system audio Online meetings, narrating while you watch Both sources are mixed down into a single track
System audio only Videos, online courses, podcasts Captures only what your computer plays

The two "system audio" modes require a virtual audio device to be installed and explicitly selected in settings: VB-Cable on Windows, BlackHole on macOS, or a PulseAudio/PipeWire monitor device on Linux. If no device is selected, the plugin reports an error rather than guessing. The "System audio guide" (电脑音频指引) button on the settings page opens an installation walkthrough, and the "Auto-recommend" (自动推荐) button can switch you to mixed or system-audio-only mode in one click when a virtual audio device is detected.

Every transcription segment records which audio source it came from. Note that mixed mode records a single track, so the plugin cannot tell from the audio alone which sentence came from you and which came from your computer. See section 13.2.

4.4 Choosing recording devices

"Settings → General → Audio input" offers two device dropdowns, "Microphone" (麦克风) and "System audio input" (电脑音频输入), shown according to the current mode. They list every audio input device on the system, and likely virtual audio devices are tagged "(recommended · virtual audio device)" ((推荐 · 虚拟声卡)). Leaving the microphone blank means the system default input is used. Once you select a specific device, the plugin opens exactly that device; if it is unavailable, you get an error asking you to choose again — it will never silently substitute another device. While recording, the bottom of the panel shows a device status bar and a 12-bar level meter for each input, displaying "Muted" (静音) when there is no signal.

4.5 Segmentation (instant segment transcription)

With "Instant segment transcription" (即时分段转写) enabled — it is by default — the recording is sliced automatically at the segment interval and each slice is sent for transcription immediately. Results are written in real time into the note's segment section (formatted as "### Segment N (MM:SS–MM:SS)" (### 段落 N (MM:SS–MM:SS))) with a clickable audio anchor for playback, and a "Segment N transcribed" (段 N 已转写) notification appears.

Key segmentation parameters:

Parameter Value Description
Default segment interval 5 minutes Adjust under "Settings → Advanced → Recording and transcription → Segment interval" (设置 → 进阶 → 录音与转写 → 分段间隔) or in the panel's "More settings" (更多设置)
Segment interval range 0.5–30 minutes A hard floor of 30 seconds is enforced at runtime
Early cut points 10 s, 60 s, 180 s Each is cut once at the start of a session so results appear quickly; the regular interval resumes afterwards

Other behavior:

4.6 Where recordings are stored and how they are cleaned up

4.7 Structure of a notes file

With consolidated layout enabled (the default), the finished notes are laid out from top to bottom as follows:

  1. YAML frontmatter (the document properties section): the plugin injects fields such as mode, time, 时长 (duration), and 人物 (people); content fields such as 主题 (topic) and 参会人 (attendees) are filled in by the AI according to the mode template, with "未提及" (not mentioned) used for anything absent from the transcript; 状态: 已整理 (status: processed) is set; tags automatically includes the system tag lexvoice/<mode> plus AI-suggested Chinese tags for topic, project, company, industry, and so on.
  2. The title: "# Date and time · Mode prefix".
  3. The AI-written body: a summary callout block at the top, followed by a body organized into level-3 headings that follow the flow of the discussion, with tasks written using - [ ] task syntax.
  4. The "## Source material" (## 原始材料) section below a horizontal rule: recording details, in-meeting materials, the live outline, the playback timeline, the original audio, and the "Segment raw transcripts" (分段原始转写) are each stored in their own collapsed block, every segment carrying its time range and playback anchor.

With consolidated layout disabled, the note keeps the original segments in chronological order and appends a "## Consolidated version" block at the end. If the AI output was truncated, a warning is inserted at the top of the body.

4.8 Continuing a recording into existing notes

Right-click an entry in the panel's "Notes" (纪要) list and choose "Continue recording into this note" (继续录音到这篇): the plugin starts a new recording using that note's raw transcript as the base, offsetting the timestamps of new segments by the original note's total duration. When you stop, old and new segments are merged and reprocessed, and the whole note is rewritten. The same menu also offers "Merge with the previous recording" (与上一段录音合并). The target must be a note that contains LexVoice raw transcript segments; otherwise you will be told that recording cannot be continued.

4.9 Daily note integration (Today's meeting summary)

Once notes have been processed successfully, the plugin finds or creates a "Today's meeting summary" heading in today's daily note (this relies on Obsidian's Daily notes feature; if the daily note does not exist, it is created from its template) and appends a summary entry. By default this includes the time, a link to the notes, metadata for mode/duration/segments/model, the key summary, and the task block. Reprocessing the same meeting updates the entry in place rather than appending a duplicate. The related settings live under "Settings → General → After completion": the toggle (on by default), the heading text, and the summary template are all customizable, and the template supports placeholders such as {{date}}, {{note_link}}, {{summary}}, and {{todos_block}}.

4.10 The floating bubble

By default the floating bubble stays on screen at all times. It can be dragged, remembers its position, collapses into a docked style when snapped to an edge, and returns inside the viewport when the window is resized. It has three states:

The floating bubble is always visible and never hides itself. You can turn it off with the command "Show/hide floating bubble (master switch)" (显示/隐藏悬浮气泡(总开关)) or under "Settings → General → Floating controls → Show floating bubble" (设置 → 常规 → 悬浮控制 → 显示悬浮气泡). "Floating window size" (悬浮窗大小) offers three settings: large, medium, and small (large by default).

4.11 Speaker separation (multi-channel microphones)

When you record with a one-receiver/multi-transmitter microphone system (a DJI Mic, for example), each speaker occupies a separate channel, and the plugin uses that to distinguish speakers during transcription rather than making the AI guess from context.

Where to configure it: Settings → General → Audio input → "Speaker separation" (说话人区分). This field only appears when "Recording source" is set to "Microphone only" and you are on desktop.

Option Behavior
Automatic (recommended) (自动(推荐)) Separates speakers only when the recording is confirmed to contain multiple independent channels
Off (关闭) Treats every recording as a single speaker
Separate by channel (按声道区分) Attempts to separate speakers by independent channel; falls back automatically for mono recordings

Test before you record: click the "Test" (测试) button beside the field and speak into each microphone in turn as prompted. The plugin records a 5-second sample, decodes and analyzes it, and reports four lines:

Result line Meaning
Input device (输入设备) The channel count negotiated with the system
Test recording (测试录音) The channel count actually preserved in the recorded file
Sound detected (检测到声音) Which channels picked up speech
Speaker separation (说话人区分) Separated / identical content / mono / unconfirmed

"Separated" (已分离) means you are good to go. "Identical content" (内容相同) means both channels captured the same audio; set the receiver's output to "Stereo" (立体声) and test again. "Unconfirmed" (未确认) means there was not enough evidence — speak into each microphone separately and run the test once more.

How "Automatic" decides: when the device reports multiple channels, the plugin first enters a pending state, and only enables per-channel transcription once a segment genuinely analyzes as having independent channels. If it concludes the recording is mono, or that two channels carry duplicate content, the whole session is treated as a single speaker. This prevents a single microphone that the driver duplicated across left and right channels from being mistaken for two people.

Transcription output: each utterance begins with a label such as "说话人1:" (Speaker 1), and invisible anchors are written into the body so speakers can be renamed precisely later.

Filling in real names: once transcription finishes and before AI processing begins, a "Confirm speakers" (确认说话人) dialog appears listing each speaker number with up to two sample utterances. You can enter names directly or choose "Not now" (暂不填写). You can also fill them in later at any time from the "Edit speakers" (编辑说话人) card at the top of the "Outline" (大纲) or "Capture" (沉淀) tab in the sidebar. Once names are filled in, the AI writes up utterances, conclusions, and tasks using them; the names are written back into the body of the notes and the raw transcript section, and recorded in the lexvoice_speakers frontmatter field. If you rename speakers after the notes have already been processed, use the command "Reprocess current notes (using speaker names)" (重新整理当前纪要(使用说话人姓名)) to have the body rewritten with the names.

Limitations:

4.12 Things to be aware of


5. Live outline and meeting workbench

5.1 What it does

The live notes panel is the LexVoice meeting workbench: during a recording it shows the AI outline in real time and accepts in-meeting additions and instant questions; outside of recording it lets you review your notes, run knowledge capture, ask questions about a set of notes, and manage recent notes.

5.2 Opening the panel

On desktop the panel opens in the right sidebar; on mobile it is a full-screen tab. Only one instance exists, so opening it again simply focuses the existing panel.

The top of the panel is the recording control area, which changes with the current state:

Below that are four tabs: Outline (大纲), Capture (沉淀), Ask (问一问), and Notes (纪要). You can switch between them both during recording and while idle; renaming or deleting a file refreshes the notes list automatically.

5.3 The Outline tab: the live outline

Whenever a segment finishes transcribing during a recording, the plugin automatically asks the AI to incrementally synthesize everything transcribed so far into an outline with time anchors; the timestamp at the start of each outline entry can be clicked to play back that position. When recording ends, a final outline pass runs and is saved into the notes file as a collapsed "Live outline during recording" (录音中实时大纲) block.

One thing you really need to understand about the refresh rhythm: the live outline updates after each segment finishes transcribing, so its perceived refresh rate is roughly equal to the segment interval. The default interval is 5 minutes, which means the outline only refreshes about every 5 minutes. If you set a long interval (15–30 minutes, say), the outline will sit still for a long time and look "stuck" — this is normal, not a fault. If you want it to refresh more often, shorten the segment interval (use the scroll wheel on "Segment" in the panel's "More settings"; the minimum is 0.5 minutes). For a typical meeting, 3–5 minutes is a good choice.

The full trigger rules are:

Other behavior:

While idle, opening any LexVoice notes file in the editor automatically switches the Outline tab to review mode: an inline audio player (play/pause/progress/mute), the saved live outline (click a time anchor to seek playback), and the playback timeline.

5.4 The in-meeting workbench (in-meeting additions and the instant assistant)

While recording and with the panel on the Outline tab, an input bar appears at the bottom (placeholder: "Note it down · #concept ?question !key @assign /task" (记下来 · #概念 ?问题 !重点 @指派 /待办)). Enter sends, Shift+Enter inserts a line break, and beside it are camera and attachment buttons (mobile adds a photo library button).

Whatever you type is inserted into the outline timeline as a timestamped "in-meeting addition" at the current recording position, and is used as source material when the final notes are produced. Different prefixes trigger different handling:

Prefix Effect Calls the AI
(no prefix) An ordinary in-meeting addition, recorded on the timeline No
#概念 (concept) Asks the AI to explain a concept on the spot (the longest reply format) Yes
?问题 (question) Asks the AI to answer immediately based on the current outline and surrounding transcript Yes
!重点 (key point) Marks something as key and attaches a brief AI comment Yes
@指派 (assign) Records an owner in structured form No
/待办 (task) Records a task in structured form No

Instant AI replies are attached beneath the entry; each has a 35-second timeout and shows an error on failure. Photos and attachments are saved to the meeting materials folder (LexVoice/会议资料/<session timestamp>/ by default; the path is set under "Settings → General → Files and naming" (设置 → 常规 → 文件与命名)) and appear on the timeline as material entries — click a material tag to open the file. Every addition can be removed individually.

5.5 The Ask tab

Ask questions about the current notes: while idle, the target is the LexVoice notes file open in the editor; during or just after a recording, it is the note for that session. Enter sends, Shift+Enter inserts a line break, and quick-question tags are shown below.

Note: question-and-answer history lives only in the panel's memory (kept separately per notes path) and is cleared when you close the panel or restart Obsidian — only entries you wrote to the notes are preserved. A single answer times out after 75 seconds; you cannot ask questions when the notes contain fewer than 40 usable characters; and if no LLM is configured you will be prompted to finish configuring one first.

5.6 The Capture tab

Runs a knowledge capture scan over the current notes, producing four groups of candidates — people, tasks, learning cards, and transcript hot words — which you confirm group by group. See section 10.1 for details.

5.7 The Notes tab (recent notes list)

Shows recent LexVoice notes grouped by date (the most recent 120 are scanned and the first 48 shown). Today's group carries a "Today" (今日) badge, and each row shows the mode icon, the title, and the time, template, and duration. The toolbar at the top offers keyword search (filtering as you type), a time filter (today / this week / this month / all, defaulting to this week), and a template filter. Click a row to open the notes; hover to reveal a "Rename" (重命名) button (editing in place); and if a note has failed transcription segments, a "Retry transcription" (重试转写) button appears along with failed/in-progress status badges.

The right-click menu is the main entry point for reworking notes:

Derived versions such as cleaned transcripts hang beneath their parent note as indented sub-rows, with a right-click menu offering open parent, regenerate, and delete this version (deletion requires confirmation and does not affect the parent).

5.8 Things to be aware of


6. Dictation (quick voice capture)

6.1 What it does

Dictation is for short spoken input: trigger it once to start recording a short passage, trigger it again to finish. The plugin transcribes it, has the AI clean it into structured form, and writes the finished text into the editor at the cursor (or to the clipboard) in one go. Dictation is entirely separate from the meeting recording pipeline: it creates no notes file and does not enter session management.

6.2 Entry points

6.3 Two transcription forms: batch and streaming

Form Trigger condition Experience Platform
Batch (default) No dictation service configured, or the address is https The whole passage is transcribed after you finish speaking; the bubble shows "Listening…" then "AI processing…" Desktop and mobile
Streaming (live captions) The dictation service address is wss:// and address, key, and model are all filled in Live captions appear as you speak, and processing begins the moment you finish Desktop only

6.4 Output destination

Under "Settings → API → Instant dictation → Dictation destination" (设置 → API → 即时听写 → 听写落点):

Once the text lands, the floating bubble briefly shows "Written".

6.5 The AI processing template

After dictation ends, the main AI processing service performs a structured cleanup. The built-in default template includes rules such as:

You can override the default template under "Settings → API → Instant dictation → Custom processing prompt" (设置 → API → 即时听写 → 自定义整理提示词), using {{转写}} as a placeholder for the raw transcript (if you omit it, the transcript is appended at the end automatically). "Restore default" (恢复默认) clears your custom content and follows the built-in template, which is updated automatically when the plugin is upgraded. The processing call times out after 25 seconds, is never retried automatically, and forcibly disables chain-of-thought for speed.

6.6 Recalling the raw transcript

The command "Dictation · Copy last raw transcript" (听写 · 复制上次转写原文) copies the raw transcript of your most recent dictation — the pre-AI version — to the clipboard. The raw text is kept whether or not processing succeeded, but it lives in memory only, only the most recent one is kept, and it is lost when Obsidian restarts.

6.7 Failure behavior

Dictation is designed never to lose content silently:

6.8 Things to be aware of


7. Importing audio and the watched folder

7.1 What it does

The import feature transcribes existing audio files — old recordings, files from an external voice recorder, exports from meeting software — and turns them into notes, sharing the same transcription and AI processing configuration as the recording pipeline. The watched folder takes this further: drop audio into a designated folder and it is transcribed automatically.

7.2 Import entry points

Imported output is written to the notes folder with a file name of the form "YYYY-MM-DD HHmm · 导入.md", including an import header (file count / mode / model). Transcribed text is appended segment by segment, then the same AI processing pipeline as recording is applied.

7.3 Supported formats

webm, mp3, m4a, aac, acc, wav, ogg, flac, mp4, mpeg, mpga, oga.

7.4 Whole-file transcription

Imported audio is submitted to the transcription service as a single complete file rather than being split into several local ASR jobs. The "Import details" (导入信息) header of the note notes this as "Transcription: whole file" (转写:整文件).

The benefit is that speaker numbering stays consistent throughout (chunked transcription often produces numbering that does not line up across chunks); the cost is that no live outline is generated during transcription — the outline only exists in the record-and-transcribe workflow.

7.5 Speaker recognition (imported audio)

For imported audio you can have the transcription service distinguish speakers directly. This complements the multi-channel separation used while recording (see 4.11): multi-channel relies on hardware channels, whereas this relies on the provider's server-side speaker separation algorithm.

Where to configure it: Settings → Speakers → Imported audio.

Field Description
Transcription service (转写服务) Used for imported audio only; does not affect live recording
Service address / Access key / Model name (服务地址 / 访问密钥 / 模型名称) Fill in according to the service you chose; "Fetch models" (获取模型) retrieves the available models
Connection test (连接测试) Verifies that the address, key, and model work; no recording content is uploaded
Recognition language (识别语言) Blank or auto means automatic detection
Separate speakers (区分说话人) After transcription, confirm the names behind "Speaker 1, 2, 3" before AI processing begins
Number of speakers (说话人数) Blank means detect automatically; entering a known count improves separation stability

Available services:

Service Characteristics
Alibaba Cloud Bailian Fun-ASR (default) Asynchronous whole-file transcription with speaker separation support; up to 12 hours for ordinary transcription, under 2 hours recommended with speaker separation
OpenAI · speaker separation The gpt-4o-transcribe-diarize model; requires an OpenAI key
WhisperX · speaker separation Locally hosted, free but consumes your own compute; the service response must carry speaker labels

If two or more speakers are recognized once transcription finishes, a "Confirm speakers" dialog appears listing each speaker number with sample utterances so you can enter names. AI processing only begins after you fill them in, and the result uses the real names directly. You can also choose "Not now" and fill them in later from the "Edit speakers" card in the sidebar.

7.6 Retries and the queue

7.7 Automatic import from a watched folder

Designate a folder and any new audio synced into it is transcribed and turned into notes automatically. This can be either a vault-relative path or a sync folder on your computer (Nutstore, iCloud, and so on).

Where to configure it: Settings → Advanced → Automatic audio import (设置 → 进阶 → 自动导入音频).

Field Description
Watched folder (监听文件夹) Enter a vault-relative path, or click "Choose" (选择) to pick a folder on your computer; leaving it blank disables the feature
Process new files automatically (自动处理新文件) When off, new files are no longer processed automatically
Archive subfolder (归档子文件夹) Applies to in-vault folders only; processed files are moved into this subfolder. Source audio in a computer sync folder is neither moved nor deleted
Wait before processing (milliseconds) (开始处理前等待(毫秒)) Waits for the cloud sync to finish; 3000 by default, 3000–10000 recommended
Scan the watched folder now (立即扫描监听文件夹) Catches up on anything missed, or processes a backlog of existing files after first configuring the feature

In-vault folders: triggered by Obsidian's file events; the file is imported once it has settled, and moved into the archive subfolder afterwards. Files with sync-conflict names are skipped automatically with a prompt to resolve them by hand.

Computer sync folders (desktop only): polled every 30 seconds while also watching for file system changes. A file is only considered fully synced once its size and modification time have been observed unchanged twice in a row. Processing copies the file to a cache first and transcribes from there; the source file always stays where it is and is never moved or deleted. Recursion goes at most 6 levels deep, and a single scan covers at most 2,000 files. Failures back off at 1 minute, 5 minutes, and 15 minutes, for at most 3 attempts.

Automatic import always uses the "General notes" (综合纪要) mode, the note lands in the transcription notes folder, and the header is marked "Source: automatic import" (来源:自动导入). Automatic import does not start while a recording is in progress; it waits until the current recording has finished.

The command palette offers "Scan watched folder" (扫描监听文件夹) for a manual sweep. When using a manual scan, keep "Process new files automatically" turned on.

7.8 Progress and the status bar

Notifications are shown when an import begins and for each file's progress. The LexVoice section of the status bar shows a spinner and "Import transcription i/N" (导入转写 i/N); once transcription completes, it switches to showing the AI processing sub-stage and a percentage. When idle with retryable jobs pending, it shows "N awaiting transcription" (N 个待转写) — click it to open the queue panel. When completely idle, it shows "LexVoice ready" (LexVoice 就绪). The processing progress panel (see section 12.4) can be expanded to see the current file and step.

7.9 Things to be aware of


8. Transcription service configuration

8.1 What it does

The transcription service turns audio into text and is the first link in the whole chain. LexVoice ships with several providers built in. Meeting segments, imported audio, and queued re-transcriptions all use the currently active transcription service; instant dictation can use a separate service of its own.

Live recording and imported audio use two independent transcription service configurations. The provider system described in this chapter applies to live recording (Settings → API → Live recording (设置 → API → 实时录音)). Imported audio uses whole-file transcription and is configured separately under "Settings → Speakers → Imported audio". The two do not affect each other; see 7.5.

8.2 The provider system

Choose from the "Settings → API → Notes transcription → Transcription service" (设置 → API → 纪要转写 → 转写服务) dropdown; there are 9 providers. Once one is selected, only its configuration fields are shown, along with a guide card (description, pricing notes, setup steps, and a link to the official documentation):

Service Type Default address / model
SiliconFlow (default) Segmented https://api.siliconflow.cn/v1/audio/transcriptions / FunAudioLLM/SenseVoiceSmall
OpenAI chunked transcription Segmented https://api.openai.com/v1/audio/transcriptions / gpt-4o-transcribe
Xiaomi MiMo (APIMiMo V2.5 ASR) Segmented (proprietary protocol) https://api.xiaomimimo.com/v1/chat/completions / mimo-v2.5-asr
OpenAI Realtime · speech transcription Streaming wss://api.openai.com/v1/realtime / gpt-realtime-whisper
OpenAI Realtime · speech translation Streaming wss://api.openai.com/v1/realtime/translations / gpt-realtime-translate; target language defaults to Chinese
Alibaba Cloud Bailian Paraformer Realtime Streaming wss://dashscope.aliyuncs.com/api-ws/v1/inference / paraformer-realtime-v2
Local transcription service Segmented http://127.0.0.1:8000/v1/audio/transcriptions / whisper-large-v3
WhisperX (local, with speaker separation) Segmented Same as above; speakers returned by the server are normalized to [说话人N]
Other transcription service (custom) Segmented Entirely blank; enter your own OpenAI-compatible address

Configuration and testing:

Request timeouts: cloud services get a 120-second base plus an allowance based on upload size (roughly 1 second per 50 KB, capped at an extra 180 seconds). Local services (127.0.0.1 and the like) are relaxed to 10 minutes and may be used without a key.

Keys are stored obfuscated — not encrypted — in the plugin settings file inside your vault and are never uploaded. Be aware, though, that syncing or sharing your whole vault folder with someone else exposes them.

8.3 Xiaomi MiMo in detail

When you select MiMo (or when the address or model matches MiMo's signature), transcription switches to its proprietary protocol, which behaves quite differently from the other services:

Tip: with MiMo you can use "Settings → LexVoice (home) → Quick setup" to configure both transcription and AI processing with a single key.

8.4 Streaming live transcription and speech translation (meeting recording)

Once you select OpenAI Realtime (transcription or translation) or Alibaba Cloud Bailian Paraformer as your transcription service, simply starting a recording puts you in streaming mode: a single WebSocket connection is held for the entire recording, audio is encoded and pushed in real time, and the note maintains a "Transcribing live…" (实时转写中…) quote block where text appears as you speak (throttled to refresh about every 1.5 seconds). When you stop recording, the full text is taken, the local vocabulary corrections are applied, and normal AI processing begins.

8.5 How hot words and the vocabulary list affect transcription

The vocabulary list (see section 10.3) improves transcription accuracy through two mechanisms:

  1. Hot word prompts: for segmented and import-style transcription, the plugin assembles vocabulary entries, personal-name hot words (requires authorization; at most 80), and up to 20 common misspellings into prompt text (truncated to 800 characters in total, including anti-hallucination instructions) that is uploaded with the audio. Whether this takes effect depends on whether the service supports the prompt parameter; MiMo and streaming services do not.
  2. Local correction: after transcribed text comes back from any service, the plugin applies the "wrong spelling => correct spelling" rules from the "Common misspellings" (易错写法) section of the vocabulary list as local replacements (longer terms first; English is case-insensitive). This applies to instant dictation as well.

8.6 Transcription concurrency

"Settings → Advanced → Recording and transcription → Transcription concurrency" (设置 → 进阶 → 录音与转写 → 转写并发数) offers 1 (most stable) / 2 (balanced) / 3 (faster), defaulting to 1. It only applies to parallel chunk uploads when importing long audio; live segment transcription during recording is always processed sequentially. MiMo chunks are uploaded sequentially by design, so raising concurrency does nothing for it. If you frequently see 429/500 errors, set it back to 1.


9. AI processing and the mode system

9.1 What it does

The AI processing service (the LLM) handles every intelligent task: merging and polishing the notes, the live outline, the Ask tab, knowledge capture, dictation cleanup, title generation, and translation. The shape of the output is determined by the "processing mode" (the template).

9.2 LLM configuration

Under "Settings → API → AI processing service":

API profiles (at the top of "Settings → API"):

Quick setup: "Settings → LexVoice (home) → Quick setup" supports the two "one key does it all" providers, Xiaomi MiMo and SiliconFlow. Enter a key once, click "Apply", and both transcription and AI processing are configured and saved as an API profile of the same name (re-using the name overwrites rather than stacking). For MiMo, the endpoint is chosen automatically from the key's characteristics.

9.3 The list of processing modes

The processing mode determines the prompt template and frontmatter structure of your notes. Set the default under "Settings → AI processing → Notes template" (设置 → AI 整理 → 纪要模板), or pick one per use from the panel's "Template" dropdown, the import dialog, or the right-click menu:

Mode Best for Output characteristics
General notes (default) Anything A three-layer structure: overview / body / reference
Work notes Work meetings Oriented around decisions, tasks, risks, and progress
Interview Interviews and research Turns Q&A into insight; frontmatter records interviewee and interviewer
Personal notes Dictation, ideas, retrospectives Monologue cleanup
Study notes Courses, videos, podcasts Structures knowledge
Seminar Multi-party discussions Organizes positions, disagreements, and evidence
Transcription only, no processing (off) When you only want the text Makes no LLM calls

Output length adapts across four tiers based on recording duration and transcript volume (4096/8192/16000/32000 tokens), capped by the current model's output ceiling.

Structure level: "Settings → AI processing → Notes generation → Structure level" (设置 → AI 整理 → 纪要生成 → 结构化程度) offers loose / balanced / strict (balanced by default), controlling how heavily the body is layered and formatted.

9.4 Thinking level (chain-of-thought control)

The panel's "More settings → Thinking" offers three levels (this setting exists only in the panel; there is no equivalent on the settings page):

The plugin injects the appropriate parameter for each provider (DeepSeek, Volcano, and Zhipu use the thinking parameter; SiliconFlow, Alibaba Cloud Bailian, and MiMo use enable_thinking; OpenAI's o-series, Grok, Gemini 2.5, and similar use reasoning_effort). Services that do not support chain-of-thought control show "Not supported" in the dropdown. Some internal tasks have a fixed level (dictation cleanup, for example, always uses fast mode).

9.5 Reprocessing

Right-click in the panel's "Notes" list → "Reprocess as" (重新整理为): the entire set of notes is rebuilt from the "Segment raw transcripts" saved at the bottom of the note. You can first tick one preference modifier (more detailed / more concise / more structured / more natural / expanded detail — the ticked state is remembered), then click the target mode to run it. The role mapping in the frontmatter is applied during the run (substituting real names for code names in the transcript), and your edits to the frontmatter are preserved. The output is saved as a version that you can view or delete from the panel. The command palette also has "Reprocess current notes (apply YAML role mapping)" (重新整理当前纪要(应用 yaml 角色映射)), for re-running in the original mode after changing the people mapping. The "Additional prompt for reprocessing preferences" (重新整理偏好追加提示词) field under "Settings → AI processing → Notes generation" lets you add your own requirements to reprocessing runs that have a preference ticked.

9.6 Translation (notes language policy)

"Settings → AI processing → Language and translation" (设置 → AI 整理 → 语言与翻译) sets a single output language for your notes during processing (processing and translation happen in one pass; there is no separate translation command):

The target language can be Chinese, English, Japanese, Korean, or a custom choice. "Keep proper nouns in the original language" (保留专有名词原文) is on by default, and you can add extra language requirements. The language policy only affects the processed output; the raw transcript at the bottom of the notes always stays in the original language. Do not confuse this with "live speech translation" in section 8.4, which is a streaming translation service at the transcription stage.

9.7 Custom prompt templates

"Settings → AI processing → Notes template → Open template library" (设置 → AI 整理 → 纪要模板 → 打开模板库): built-in prompts can only be set as the default, not modified. "New custom prompt" (新建自定义提示词) creates a complete standalone template, which must contain the {{TRANSCRIPT}} placeholder or it cannot be saved. Once saved, it appears as a new mode everywhere modes can be chosen and can be set as the global default. The "AI-optimize prompt" (AI 优化提示词) button asks the LLM to rewrite your draft into a structured processing prompt. Deleting a custom template that happens to be the default falls back to the study notes mode.

9.8 Title generation and automatic renaming

Once processing is complete, the plugin takes the first 2,500 characters of the processed text and asks the LLM to distill a Chinese topic tag of at most 15 characters — it prefers a "specific object–core issue" format, such as "合同审查-供应商独家条款" (contract review–supplier exclusivity clause) — then appends it to the file name and renames the file, with links inside the vault updated automatically. On failure, the original file name is kept silently. The toggle is at "Settings → Advanced → Add scenario tag to file name automatically" (设置 → 进阶 → 自动加场景标签到文件名), on by default. No renaming happens in "transcription only" mode or when the processed output is empty.

9.9 AI polishing of a selection

The editor command "AI polish: selection or whole note" (AI 润色:当前选区或整篇) treats the selected text — or the whole note if nothing is selected — as a raw transcript, processes it with the current default template, and replaces it in place. Note that this overwrites the original text directly with no version saved, so use it carefully on important notes.


10. Knowledge layer

The knowledge layer distills information scattered across your notes into reusable assets — people profiles, tasks, learning cards, and transcript hot words — and provides aggregate views and reworked outputs (visual reports, email drafts). The related settings are collected under "Settings → Information objects" (设置 → 信息对象).

10.1 Knowledge capture (people / tasks / knowledge / words)

Entry point: the panel's "Capture" tab. The first time you open it, you see "The AI hasn't read this set of notes yet" (AI 还没读过这篇纪要) and a "Scan this note" (扫描本篇) button; triggering it again after a previous scan brings up a "Rescan this note?" (重新扫描本篇?) confirmation. Click "Scan this note" and the AI reads the current notes end to end and produces four groups of candidates, advanced group by group along a "people → tasks → knowledge → words" (人 → 事 → 知 → 词) relay bar:

Interaction details of the pipeline:

There are two supply paths:

  1. Pre-extraction (no extra calls): while the AI is processing the notes, a "capture pre-extraction" instruction is included automatically, and the candidates are stored in a hidden block at the end of the note, visible as soon as you open the Capture tab;
  2. Manual scan: when pre-extraction is unavailable or you want to extract again, click "Scan this note" for a larger LLM call (internally it uses continuation stitching to avoid truncation; the scan can be cancelled, and a failure only produces a notification without affecting the notes).

Automatic capture: with "Capture automatically after transcription" (转写完成后自动沉淀) enabled under "Settings → Information objects" (off by default), every completed processing run triggers a background scan; learning cards and tasks are added directly, while people and hot words still go through manual confirmation. It is off by default to save tokens.

10.2 People (the people library)

One Markdown profile per person, with frontmatter for name, role, common forms of address, organization, email, source, last updated, and remarks. Each page automatically aggregates "Related notes" (相关纪要), a table of notes linking to this person, which requires Obsidian Bases support, and "Related tasks" (相关待办), which requires the Dataview plugin. The people library lives at LexVoice/人员 by default, with an overview file at LexVoice/人员库.base that provides two views: a people table and people cards.

10.3 The vocabulary list (transcription word list)

A single-file Markdown hot word list (LexVoice/词汇表.md by default) with six fixed sections: personal names, brands/organizations, projects/products, industry terminology, common misspellings (in the format "wrong spelling => correct spelling"), and other proper nouns. You can edit it by hand, or fill it in through "Add to hot word library" during capture or "Settings → Information objects → Extract transcription word list" (设置 → 信息对象 → 提取转写词表), which scans past notes in bulk. Its two-layer effect on transcription is described in section 8.5. Lines beginning with #, >, <!--, or // are ignored.

10.4 The learning wall, task wall, concept wall, and object overview

The commands "Open the learning card wall" (打开学习卡片瀑布墙), "Open the concept wall" (打开概念墙), "Open the task wall" (打开待办墙), and "Open the object overview" (打开对象总览) — or the corresponding buttons under "Settings → Information objects" — generate aggregate view pages in the views folder (LexVoice/视图 by default):

View What it aggregates
Learning card wall Every card in the learning cards folder
Concept wall Learning cards of the concept type
Task wall The task cards folder plus every task line in the vault carrying a LexVoice task marker
Object overview All of the above, with an "All / Learning cards / Concepts / Tasks" filter bar

10.5 Visual reports (HTML / PDF)

Use the commands "AI-generate an HTML report for the current notes" (AI 生成当前纪要 HTML 报告) and "AI-generate a PDF report for the current notes (full page, no truncation)" (AI 生成当前纪要 PDF 报告(整页不截断)), or right-click a note in the panel → "Generate" → the corresponding item. The plugin reworks the notes into a visual report you can share on its own:

10.6 Semantic Canvas

Turns a finished set of notes into an Obsidian Canvas diagram: the session's core proposition sits at the center, main branches extend to the right, and key points and details unfold layer by layer. It is well suited to reviewing a session yourself or walking someone else through it.

Entry point: open a completed set of notes in the sidebar → the icon button to the right of the "AI outline" (AI 整理大纲) block heading, whose tooltip reads "Generate or update the semantic Canvas" (生成或更新语义 Canvas). The button only appears when outline nodes can be parsed out of the notes, and the outline must have at least 2 nodes.

Output: a file in the same folder as the notes, named " · 语义图.canvas", which opens automatically in a new tab. If a file of that name already exists it is updated in place rather than duplicated.

Structure:

Regeneration preserves your manual adjustments: as long as a node still carries the marker the plugin wrote into it, regeneration keeps the position and size you dragged it to. Nodes and edges you added yourself are also kept as they are.

Generation requires a configured LLM. If the outline is too thin, you will see "The current outline has too little content to generate a semantic diagram yet" (当前大纲内容太少,暂时无法生成语义图).

10.7 Email drafts

Right-click a note in the panel → "Generate" → "Email draft" (邮件草稿); there is no command palette entry. An .eml draft is generated locally and opened in your system's default email client. Recipients are filled in automatically by matching attendee-type fields in the notes frontmatter against the "email" field of profiles in the people library. The body has four sections: summary, decisions, tasks, and follow-up. Attachments include the original notes, an automatically rendered PDF of them, and any reports already generated under the same name. Drafts are stored in LexVoice/邮件草稿. This feature is purely local: it sends no email and makes no LLM calls. If no email address matches, the draft is still generated, with a notification.


11. Settings reference

The settings page has 7 permanent tabs: LexVoice (home) (LexVoice(首页)), General (常规), API, AI processing (AI 整理), Information objects (信息对象), Advanced (进阶), and Update (更新). The main settings are listed below by tab.

11.1 LexVoice (home)

A navigation page with no persistent settings of its own. It contains:

11.2 General

Setting Default Description
Recording source (录音来源) Microphone only Microphone only / Microphone + system audio / System audio only
Microphone (麦克风) System default input Once selected, the device is opened exactly as chosen, with no silent fallback
System audio input (电脑音频输入) Not selected Required for system audio modes (a virtual audio device)
Speaker separation (说话人区分) Automatic (recommended) Automatic / Off / Separate by channel; only shown for the "Microphone only" source on desktop, see 4.11
LexVoice recordings folder (LexVoice 录音文件夹) LexVoice/录音 Changes affect new files only
Notes save location (纪要保存位置) LexVoice/转写纪要
Meeting materials folder (会中材料文件夹) LexVoice/会议资料 Where workbench photos and attachments are stored
Notes file name format (纪要文件名格式) YYYY-MM-DD HHmm
Open notes automatically when finished (完成后自动打开纪要) On
Write to today's meeting summary (写入今日会议概要) On Requires Obsidian's Daily notes feature
Daily summary heading (日记概要标题) 今日会议概要
Daily summary template (日记概要模板) Built-in template Supports placeholders; can be restored to the default in one click
Show floating bubble (显示悬浮气泡) On
Floating window size (悬浮窗大小) Large Large / Medium / Small

There are also three action buttons: "Auto-recommend", "Device detection" (设备检测), and "System audio guide".

11.3 API

Setting Default Description
API profile (API 方案) None (temporary configuration) Save, switch, check, and delete transcription + AI processing as a set
Transcription service (转写服务) SiliconFlow 9 to choose from, see section 8.2
Address / key / model / language per service See the table in section 8.2 Stored separately per provider; "Restore recommended values" does not overwrite keys
Target language (translation services only) (目标语言) Chinese 13 to choose from
Dictation service (address / key / model / language) (听写服务) All blank Blank = reuse the notes transcription service; a wss address means streaming
Dictation destination (听写落点) Insert at cursor (smart fallback to clipboard) Or always copy to clipboard
Custom dictation processing prompt (听写自定义整理提示词) Blank (follows the built-in template) {{转写}} placeholder
AI processing service preset (AI 整理服务预设) SiliconFlow 19 presets
AI processing service address (AI 整理服务地址) https://api.siliconflow.cn/v1/chat/completions
AI processing access key (AI 整理访问密钥) Blank May be left blank for local services
AI processing model ID (AI 整理模型标识) Blank Chosen via "Fetch available models"

11.4 Speakers

Used for imported audio only; not involved in live recording segmentation.

Setting Default Description
Transcription service (转写服务) Alibaba Cloud Bailian Fun-ASR OpenAI · speaker separation and WhisperX · speaker separation are also available
Service address (服务地址) Follows the selected service The transcription endpoint for imported audio
Access key (访问密钥) Blank Fill in as required by the selected service; may be left blank for a local WhisperX service
Model name (模型名称) Follows the selected service "Fetch models" retrieves the models the service supports
Connection test (连接测试) Verifies that the address, key, and model work; no recording content is uploaded
Recognition language (识别语言) Follows the selected service Blank or auto means automatic detection
Separate speakers (区分说话人) On After transcription, confirm the names behind "Speaker 1, 2, 3" before AI processing begins
Number of speakers (说话人数) Automatic Blank detects automatically; entering a known count improves separation stability

11.5 AI processing

Setting Default Description
Structure level (结构化程度) Balanced Loose / Balanced / Strict
Additional prompt for reprocessing preferences (重新整理偏好追加提示词) Blank Only affects reprocessing runs with a preference ticked
Language policy (语言策略) Follow the source Follow the source / Standardize on target language / Bilingual parenthetical
Target language (目标语言) Chinese (zh-CN) Custom values supported
Keep proper nouns in the original language (保留专有名词原文) On
Extra language requirements (额外语言要求) Blank
HTML report folder (HTML 报告保存文件夹) LexVoice/HTML报告
Open reports automatically after generation (报告生成后自动打开) On
Company name in the report footer (报告页脚公司名) Blank When blank, the notes' "公司/" tag is used (seminar template)
Default notes template (默认纪要模板) General notes See section 9.3 for the list of modes
Template library (模板库) Custom prompt management, see section 9.7

11.6 Information objects

Setting Default Description
Capture automatically after transcription (转写完成后自动沉淀) Off When on, cards and tasks are added automatically; people and hot words still require confirmation
Learning cards folder (学习卡片文件夹) LexVoice/学习卡片
Task cards folder (待办卡片文件夹) LexVoice/待办卡片 Used only as a fallback when daily notes are unavailable
People folder (人员文件夹) LexVoice/人员
People library overview file (人员库总览文件) LexVoice/人员库.base
People data usage policy (人员资料使用策略) Privacy first Privacy first / Name hot words (requires authorization) / Local enhancement
Transcription word list file (转写词表文件) LexVoice/词汇表.md
Views folder (视图文件夹) LexVoice/视图 Where object walls and .base views are stored

There are also action buttons for bulk extraction (people suggestions / transcription word list), clearing scan records, deduplicating people, and opening the object walls and detail tables.

11.7 Advanced

Setting Default Description
Instant segment transcription (即时分段转写) On When off, everything is transcribed in one pass on stop
Discard recordings under 3 seconds (过滤 3 秒内录音) On Accidental recordings are discarded outright
Segment interval (分段间隔) 5 minutes Range 0.5–30 minutes; no effect with streaming services
Transcription concurrency (转写并发数) 1 1–3; only affects imports of long audio
Keep background slice audio (保留后台切片音频) Off When on, successfully transcribed slices are kept too
Consolidated notes layout (纪要整合排版) On When off, the original segments are kept and a consolidated block is appended
Add scenario tag to file name automatically (自动加场景标签到文件名) On The AI distills a topic of at most 15 characters
Live outline (实时大纲) On When off, only manual refresh is available
Open the live notes panel automatically when recording starts (录音开始时自动打开实时纪要面板) On
Local diagnostic log (本地诊断日志) On A "Copy diagnostic report" (复制诊断报告) button sits on the same row
Diagnostic log folder (诊断日志文件夹) LexVoice/诊断日志
Watched folder (监听文件夹) Blank (disabled) A vault-relative path, or a sync folder on your computer
Process new files automatically (自动处理新文件) On When off, only manual scans work
Archive subfolder (归档子文件夹) processed Blank = no archiving (files may be processed repeatedly)
Wait for cloud sync to finish (milliseconds) (等待云盘同步完成(毫秒)) 3000 Range 0–60000
Maximum retries (最大重试次数) 3 Range 1–10 (the automatic retry ceiling for the queue)

There are also action buttons for "Scan the watched folder now", "Open queue" (打开队列), "Retry all" (重试全部), and "Clear diagnostic logs" (清空诊断日志).

11.8 Update

Setting Default Description
Check automatically at startup (启动时自动检查) On At most once every 24 hours

The status line shows the current version, the available version, the last check, the last error, the number of fallback sources, and the target directory. The action buttons are described in section 2.3.

11.9 Settings available only in the panel

The following have no entry on the settings page and are adjusted only in the live notes panel's "More settings": the thinking level (default: "Default mode") and processing preferences (default: none). "Template", "Audio", "Segment interval", and "Profile" share their storage with the settings page when changed in the panel and are saved immediately.


12. Troubleshooting

12.1 The diagnostic report

When you run into a problem and need help or want to report it, copy the diagnostic report first:

12.2 Common errors

Symptom Cause and plugin behavior Suggested action
Transcription returns 429 / rate limited Server-side rate limiting. The plugin retries automatically after the server's Retry-After delay (capped at 90 seconds) or a random 30–45 second backoff, with at most 3 requests per chunk Set "Transcription concurrency" back to 1; MiMo users should mind the 10K TPM quota, where waits of tens of seconds between chunks are normal pacing
Transcription request times out Cloud timeouts are 120 seconds base plus a size-based allowance (capped at an extra 180 seconds); local services are relaxed to 10 minutes Check your network and proxy; compress the bitrate of large files first; confirm your local service is running
Transcription returns an empty result The service responded successfully but with no text. Segments of at least 30 seconds are treated as a "soft failure" and enter the retry queue, with "transcription failed (empty result)" as a placeholder in the body; segments under 30 seconds are taken to have no content Wait for the queue to retry automatically; if results are repeatedly empty, check whether the wrong audio device was selected (recording silence)
Content missing from the end of a MiMo transcription The 2K output ceiling was hit. The plugin keeps what was transcribed and appends the marker "This segment is long; a small amount at the end may not have been transcribed" Shorten the segment interval, or use another transcription service for long passages
A queued job shows "missing" / the audio does not exist The temporary slice was cleaned up or lost Click "Retry" on each entry in the queue panel; the plugin re-cuts the audio from the complete recording (the master) using the time offsets
A queued job shows "blocked" The LLM configuration is missing or the service is failing, so the processing job is waiting Fix the "AI processing service" configuration, then run the command "Retry all failed jobs" (重试所有失败任务)
A streaming transcription segment failed The wss connection failed or dropped; such segments do not enter the retry queue (they cannot be retried offline) The recording and audio are unaffected; reprocess the whole note, or switch to a segmented service
The outline does not update for a long time The outline only refreshes when a segment finishes transcribing, so a long segment interval means slow updates Shorten the segment interval (3–5 minutes recommended) or click "Refresh" manually
The plugin cannot be installed or enabled A file location or version problem Confirm the three files are in .obsidian/plugins/lexvoice/, that Obsidian is at least 1.10.0, and that Safe Mode is off; when an update fails, the plugin automatically tries several download sources
A warning that main.js and the manifest versions do not match Local files are out of step Go to "Settings → Update" and run the one-click update again (reinstalling works even when the version is unchanged)
Microphone access denied The system revoked microphone permission Follow the overlay's instructions to grant permission in system settings; you can choose "Save recording only" for what has already been recorded
Almost no sound was detected during the session Audible content in under 2% of valid samples, usually the wrong device (for example a virtual device with no input) Check your device selection under "Settings → General → Audio input" and verify it with "Device detection"
An imported file was skipped (0 bytes) A cloud-storage placeholder file has not finished downloading Wait until the file has downloaded fully, then import it again
A file in the watched folder is not processed and a conflict is reported A cloud sync conflict copy (Nutstore/Dropbox/OneDrive conflict naming) Resolve the conflict by hand, then put the file back in the watched folder or scan manually
The dictation result was not written into the note When insertion fails, the text is redirected to the clipboard with a notification Just paste it; if the clipboard also failed, recover the text with the command "Dictation · Copy last raw transcript"
A transcoding prompt appears before AAC audio is imported AAC must be converted locally to a temporary WAV to ensure compatibility across transcription services This is normal; just wait. If you handle AAC often, consider recording in mp3/wav instead
MiMo cannot re-transcribe older recordings (m4a/mp4) MiMo only accepts wav/mp3, and the older recordings' codec cannot be converted locally Re-transcribe with a different service, or stick with MiMo going forward (its recordings automatically use a compatible codec)

12.3 How the job queue works

Retryable jobs — failed transcriptions, failed AI processing, and so on — enter a persistent queue automatically. If the queue is not empty at startup, the plugin reports "N pending jobs found; retrying in the background…" (发现 N 个待处理任务,后台重试中…) and runs one round of retries automatically. Each failure counts as one retry, and once "Maximum retries" is reached (3 by default, adjustable from 1 to 10), automatic retries stop and you can retry entries by hand. Permanent errors — no key configured, an unaccepted format, an oversized file — are never pointlessly retried. Manual entry points: the command "Retry all failed jobs", "Retry all" on the Advanced settings page, the "Retry transcription" button on a note's row in the panel, or the right-click item "Retry failed transcription segments".

12.4 Using the processing progress panel

How to open it: the command "Open the pending queue" (打开待处理队列), clicking the progress indicator in the status bar, "Settings → Advanced → Open queue", or the progress entry point in the panel. The panel shows three groups of entries: completed (with elapsed time and token usage), in progress (current file, step, and percentage), and pending (retry count and the most recent error). Each pending job can be individually retried or deleted; at the bottom are "Retry all" and "Clear pending" (清空待处理), the latter requiring confirmation. After clearing, the corresponding spots in your notes stay as they are, and you can start over from the right-click menu in the notes.


13. Known limitations and best practices

13.1 What is supported on mobile

Available on mobile: microphone-only recording (system default input), segmented or whole-passage cloud transcription, AI processing, text import, browsing notes, the settings page (single-column layout), and the live panel (as a main-area tab).

Restricted on mobile:

13.2 Notes on speaker attribution (important)

There are three sources for "who said this" in a set of notes, in descending order of reliability. Judge accordingly:

  1. Multi-channel hardware separation (most reliable). When you record with a one-receiver/multi-transmitter microphone and "Speaker separation" reports "Separated", the speaker is determined by the physical channel, with no inference involved. See 4.11.
  2. Speaker recognition on imported audio. When you import audio with "Separate speakers" enabled, the transcription service (Alibaba Cloud Bailian Fun-ASR, OpenAI, WhisperX, and so on) performs speaker separation across the whole file; accuracy depends on the service itself and on recording quality. See 7.5.
  3. AI inference from context (risky). When neither of the above applies — for example, an ordinary mono microphone, or a mixed source (microphone + system audio) recorded down to a single track — transcription produces continuous text with no speaker distinction, and attribution in the notes is inferred by the AI from forms of address, context, and relationships between people. Misattribution is possible.

Therefore: when the content matters — assigning responsibility, recording commitments, attributing key decisions — play back the original audio using the playback anchors in the notes and verify, rather than taking the AI's attribution as evidence. If you deal with such situations often, use a one-receiver/multi-transmitter microphone, or enable speaker recognition when importing.

One more thing: with segmented recording, speaker numbering may not line up across segments (the same person can be numbered differently in different segments). The "Confirm speakers" dialog warns you when this happens; check the sample utterances before entering names.

13.3 MiMo constraints in live scenarios

MiMo's TPM pacing and 2-minute chunking make it better suited to imports and to scenarios without dense segmentation. A very short segment interval (0.5–1 minute) combined with the live outline easily triggers rate-limit queuing, which feels like transcription running half a beat behind. When you want a smooth live meeting experience, choose a segmented service such as SiliconFlow, or a streaming service.

13.5 What to expect when importing long audio

Importing long audio requires your machine to fully decode the audio before chunking, which briefly consumes a fair amount of memory and temporary storage inside the vault (the chunked WAV files). Transcription time depends on the audio duration, the concurrency setting, and the provider's rate limits. Audio several hours long is best handled on desktop with a stable network, with "Transcription concurrency" set to 2–3 according to what the service can take (except for MiMo, where 1 is fine).

13.6 Other known limitations


14. Appendices

Appendix A: The complete command palette list (29 commands)

All of these commands appear in the command palette (Ctrl/Cmd+P) with the "LexVoice:" prefix:

Command Effect
Start/stop recording (开始/停止录音) Starts recording when idle; stops and begins processing while recording
Pause/resume recording (暂停/继续录音) Pauses or resumes the current recording
Start recording · Microphone only (开始录音 · 仅麦克风) Starts recording with the audio source set for this session only
Start recording · Microphone + system audio (开始录音 · 麦克风 + 电脑音频) Starts recording with a mixed source for this session only
Start recording · System audio only (开始录音 · 仅电脑音频) Starts recording from system audio for this session only
Dictation · Start/finish (听写 · 开始/结束) Starts or finishes quick voice capture
Dictation · Copy last raw transcript (听写 · 复制上次转写原文) Recalls the raw transcript of the most recent dictation
Import an existing audio file: transcribe + polish (导入已有音频文件转写+润色) Opens the audio import picker
Import existing text / structure a Markdown file (导入已有文本 / MD 结构化整理) Sends an existing text transcript to the AI
AI polish: selection or whole note (AI 润色:当前选区或整篇) Processes the selection or whole note with the default template and replaces it in place
Reprocess current notes (apply YAML role mapping) (重新整理当前纪要(应用 yaml 角色映射)) Re-runs processing in the original mode, applying the people mapping
Migrate older notes to the new frontmatter structure (迁移历史笔记到新 frontmatter 结构) Upgrades the structure of notes from older versions
Scan watched folder (扫描监听文件夹) Manually scans for and processes unprocessed audio
Open live notes panel (打开实时纪要面板) Opens the sidebar workbench
Show/hide floating bubble (master switch) (显示/隐藏悬浮气泡(总开关)) Toggles the floating bubble
Open the learning card wall (打开学习卡片瀑布墙) Generates and opens the learning card aggregate view
Open the concept wall (打开概念墙) Generates and opens the concept aggregate view
Open the task wall (打开待办墙) Generates and opens the task aggregate view
Open the object overview (打开对象总览) Generates and opens the all-object aggregate view
AI-generate an HTML report for the current notes (AI 生成当前纪要 HTML 报告) Generates a visual HTML report
AI-generate a PDF report for the current notes (full page, no truncation) (AI 生成当前纪要 PDF 报告(整页不截断)) Generates a single-page PDF report (desktop)
Open the pending queue (打开待处理队列) Opens the processing progress panel
Retry all failed jobs (重试所有失败任务) Retries every failed job in the queue
Clean up blank short recordings (清理空白短录音) Cleans up notes and recordings no longer than 10 seconds with no usable transcript
Clean up expired segment audio cache (清理过期分段音频缓存) Cleans up cached audio older than 7 days that the queue does not reference
Copy diagnostic report (复制诊断报告) Copies the redacted diagnostic report to the clipboard
AI-scan the notes library for people suggestions (AI 扫描纪要库提取人员建议) Scans past notes in bulk to produce people candidates
Check for updates (检查更新) Manually checks for a new plugin version
Install available update (安装可用更新) Runs the one-click incremental update

Appendix B: Where data is stored

Data Default location
Plugin settings (including obfuscated API keys, API profiles, queued jobs, and update state) .obsidian/plugins/lexvoice/data.json
Complete recordings (master recordings) LexVoice/录音
Transcription notes LexVoice/转写纪要
In-meeting materials (photos/attachments) LexVoice/会议资料/<session timestamp>/
Segment audio cache LexVoice/.cache/segments (cleaned up automatically after 7 days)
HTML / PDF reports LexVoice/HTML报告
Email drafts and attachments LexVoice/邮件草稿, LexVoice/邮件草稿/附件
Diagnostic logs LexVoice/诊断日志 (daily .jsonl files)
Vocabulary list LexVoice/词汇表.md
People profiles / people library LexVoice/人员, LexVoice/人员库.base
Learning cards / task cards LexVoice/学习卡片, LexVoice/待办卡片
Aggregate views LexVoice/视图
Update backups .obsidian/plugins/lexvoice/.lexvoice-update-backups/<timestamp>/ (includes a data.json snapshot)

Every path can be changed on the corresponding settings tab; changes affect new files only, and existing files are not migrated automatically. The plugin uses no cloud storage of any kind.

Appendix C: Privacy notes


This manual was compiled from the LexVoice 2.0.0 source code. The plugin is under continuous development, so the settings page of the version you have installed is the authority on the exact interface and default values. If you find the documentation at odds with actual behavior, please file feedback at https://github.com/Lynn-x/LexVoice.