B733 downloadsRecord and transcribe audio with Gemini, Groq, OpenAI, Deepgram, or a local endpoint. Minimal English/Arabic interface with vault storage and transcript recovery.
Record, import, and transcribe audio in Obsidian. A small, theme-native interface with English and Arabic localization, right-to-left layout, and audio saved in your vault before transcription.
Extract audioscribe-ai-1.1.0.zip into <vault>/.obsidian/plugins/. The resulting folder must contain:
.obsidian/plugins/audioscribe-ai/
main.js
manifest.json
styles.css
Enable AudioScribe AI in Obsidian → Settings → Community plugins. For an existing installation, replace those three files and reload the plugin. Keep data.json to retain your settings and API keys. Obsidian 1.5.0 or later is required.
Open Settings → AudioScribe AI, select a provider, enter its API key, and use Test connection. Model IDs are editable so you can use models available to your account. Connection tests check authentication or reachability; they do not guarantee that a model accepts your audio format.
You can save into a new note, insert at the original cursor, append to the original note, or append to a daily note. Switching tabs while the API runs does not redirect the output into another note. If the original editor is no longer available, cursor output falls back to a new note.
Cancel transcription prevents a late response from creating a note. Obsidian’s requestUrl does not expose a request abort handle, so an upload already sent may continue and incur provider charges. Another transcription is blocked until that request finishes. Failed requests have an explicit retry; there are no automatic paid retries except Gemini’s compatibility retry when its thinking configuration is rejected.
Choose Follow Obsidian, English, or العربية. Arabic uses RTL layout, with filenames and transcript text keeping their natural direction. Older Obsidian versions without getLanguage() fall back to the device language. Reload the plugin after changing interface language to refresh command-palette and ribbon labels.
Speech language is independent of interface language. Auto-detection preserves the spoken language and mixed scripts. The language selector includes more than 40 languages; actual recognition support depends on the selected provider and model. Generated note section labels are Arabic for Arabic output and English otherwise. Gemini summaries follow the dominant spoken language unless translation is selected.
| Provider | Transcript | Summaries / decisions / tasks | Translation | Speaker labels |
|---|---|---|---|---|
| Google Gemini | Yes | Intelligent notes mode | English or Arabic | Prompted identification |
| Groq Whisper | Yes | No | English, using whisper-large-v3 |
No |
| OpenAI Whisper | Yes | No | English | No |
| Deepgram | Yes | No | No | With diarization |
| Custom / local | Whisper-compatible multipart endpoint | No | No | Endpoint dependent; not requested |
Default model IDs: Gemini gemini-3.8-flash, Groq whisper-large-v3-turbo, OpenAI whisper-1, Deepgram nova-2. For OpenAI, use a Whisper-compatible model; other transcription model families can require different response options. Custom servers should accept a multipart file, model, optional language, and response_format=json, and return { "text": "…" } or text/plain.
The plugin accepts MP3, WAV, M4A, AAC, WebM, OGG, FLAC, Opus, and WMA files. Provider support varies; the plugin does not transcode or split audio. It rejects empty files and enforces conservative upload caps: 14 MiB raw audio for Gemini inline requests, 25 MiB for Groq/OpenAI, and 100 MiB for Deepgram/custom. Gemini's base64 expansion must fit its total inline request limit. Use shorter files for long recordings. Truncated Gemini responses are reported as errors rather than silently saved as complete.
Provider references: Gemini audio understanding, Groq speech to text, Gemini thinking configuration.
The default format is Transcript. Other formats include Summary & transcript, Meeting notes with explicit decisions, Action items, and Custom template. Summary-based sections require Gemini intelligent notes; unavailable sections are omitted. Choosing Transcript skips Gemini summary generation. Existing notes and daily notes do not receive generated frontmatter.
Custom templates support:
{{title}} {{date}} {{time}} {{audio_link}} {{audio_filename}}
{{transcript}} {{summary}} {{action_items}} {{decisions}}
{{duration}} {{language}} {{provider}} {{model}}
{{summary_callout_title}} {{actions_heading}} {{transcript_heading}}
Template values are substituted once. Dollar signs and template-like text inside the transcript remain literal. Built-in summaries quote every line correctly; optional properties use quoted YAML scalars.
Expand Storage & advanced to configure folders, filename prefixes, recording quality, embedded audio, and properties. Nested vault folders are created as needed. Unicode filenames are preserved; reserved filename characters and traversal paths are handled safely. Empty folder settings use the vault root.
For daily notes, set Daily notes folder and Daily note date format to match your Obsidian Daily notes configuration, for example Journal and YYYY-MM-DD. These are explicit plugin settings; the plugin does not discover the Daily notes plugin configuration. The exact dated path is used, a missing daily note is created, and content is appended under the configured heading before the next peer heading. Existing daily-note templates are not applied when creating a missing note.
Audio stays in your vault. Transcription sends audio and vocabulary to the provider you selected. Custom endpoints can be local. API keys and the last unsaved transcript are stored in the vault’s plugin data.json, not encrypted. Consider that file when configuring vault sync and backups. There is no analytics or telemetry.
npm ci
npm run check # TypeScript, regression tests, production build
npm run dev # Rebuild on source changes
npm run preview # Generate .cache/preview/index.html (isolated UI fixture)
The production build produces main.js. Install it alongside manifest.json and styles.css.
The regression suite uses a simulated Obsidian host, recorder, and provider responses. It covers settings persistence, literal template content, Unicode filenames, multipart encoding, provider payloads, output destinations, cancellation, recording save failures, and transcript recovery. The preview uses actual UI components with simulated recording and no API calls. It can be opened manually or served locally for inspection.
Live microphone, device-WebView, and authenticated provider tests must also be performed in Obsidian on each target platform. Android, iOS, and desktop use their available MediaRecorder codec; recording support depends on the device and microphone permissions. Import remains available where in-app recording is unsupported.
استخرج الحزمة داخل مجلد .obsidian/plugins/ في خزنتك، ثم فعّل AudioScribe AI من إضافات المجتمع. اختر المزوّد وأدخل مفتاح API من الإعدادات. يمكنك اختيار العربية للواجهة مع دعم اتجاه الكتابة من اليمين إلى اليسار.
اضغط أيقونة الميكروفون للتسجيل، ثم حفظ وتفريغ أو حفظ الصوت. إغلاق نافذة التسجيل يحفظ الصوت؛ زر حذف التسجيل يحذفه بعد التأكيد. يُحفظ الصوت في الخزنة قبل إرساله إلى المزوّد. لاستعادة آخر نتيجة مكتملة لم تُحفظ، استخدم أمر استعادة التفريغ غير المحفوظ. الترجمة إلى العربية متاحة مع Gemini، واللغة الأصلية تُحفظ افتراضيًا.
MIT license. See LICENSE.