Add Voice Recorder - Whisper transcription tool for Obsidian

Features:
- Audio recording with pause/resume and visual feedback
- Local Whisper transcription (tiny/base/small models)
- 7 note types: instructions, capture, meeting, idea, daily, review, journal
- Claude CLI integration for intelligent note processing
- PKM context integration (reads vault files for better processing)
- Auto-organization into type-specific folders
- Daily notes with yesterday's task carryover
- Language-adaptive responses (matches transcript language)
- Custom icon and Windows desktop shortcut helpers

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-27 19:51:53 -05:00
parent f0d093b0fd
commit 659bc7fb2e
10 changed files with 2250 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
@echo off
setlocal enabledelayedexpansion
:: ============================================
:: CONFIGURATION - Edit these paths as needed
:: ============================================
set "OUTPUT_DIR=C:\Users\antoi\antoine\My Libraries\Antoine Brain Extension\+\Transcripts"
set "CONDA_ENV=test_env"
set "CONDA_PATH=C:\Users\antoi\anaconda3\Scripts\activate.bat"
:: ============================================
:: MAIN SCRIPT - No edits needed below
:: ============================================
:: Check if file was dragged onto script
if "%~1"=="" (
echo.
echo ========================================
echo Voice Memo Transcriber
echo ========================================
echo.
echo Drag an audio file onto this script!
echo Or paste the full path below:
echo.
set /p "AUDIO_FILE=File path: "
) else (
set "AUDIO_FILE=%~1"
)
:: Generate timestamp for filename
for /f "tokens=1-5 delims=/:.- " %%a in ("%date% %time%") do (
set "TIMESTAMP=%%c-%%a-%%b %%d-%%e"
)
set "NOTE_NAME=Voice Note %TIMESTAMP%.md"
set "TEMP_FILE=%TEMP%\whisper_output.txt"
echo.
echo ========================================
echo Transcribing: %AUDIO_FILE%
echo Output: %NOTE_NAME%
echo ========================================
echo.
echo This may take a few minutes for long recordings...
echo.
:: Activate conda environment and run whisper
call %CONDA_PATH% %CONDA_ENV%
insanely-fast-whisper --file-name "%AUDIO_FILE%" --transcript-path "%TEMP_FILE%" --model-name openai/whisper-large-v3
:: Check if transcription succeeded
if not exist "%TEMP_FILE%" (
echo.
echo ERROR: Transcription failed!
echo Check that the audio file exists and is valid.
echo.
pause
exit /b 1
)
:: Create markdown note with YAML frontmatter
echo --- > "%OUTPUT_DIR%\%NOTE_NAME%"
echo created: %date% %time:~0,5% >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo type: voice-note >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo status: raw >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo tags: >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo - transcript >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo - voice-memo >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo --- >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo # Voice Note - %date% at %time:~0,5% >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo ## Metadata >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo - **Source file:** `%~nx1` >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo - **Transcribed:** %date% %time:~0,5% >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo --- >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo ## Raw Transcript >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
type "%TEMP_FILE%" >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo --- >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo ## Notes distillees >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo ^<!-- Coller le transcript dans Claude pour organiser et distiller --^> >> "%OUTPUT_DIR%\%NOTE_NAME%"
echo. >> "%OUTPUT_DIR%\%NOTE_NAME%"
:: Cleanup temp file
del "%TEMP_FILE%" 2>nul
echo.
echo ========================================
echo DONE!
echo Created: %NOTE_NAME%
echo Location: %OUTPUT_DIR%
echo ========================================
echo.
pause