I’ve been dissatisfied with dictation when creating Day One entries. I was planning on creating some kind of automation using Whisper AI (which I use a lot for transcribing audio and find very good) to add a Day One entry with that transcription (perhaps through the Day One CLI?).
Before I take the time, I thought I’d ask if this is a thing someone else has done?
If not, I’ll put it together. If I do that, is anyone also interested in this workflow?
Had a few moments and threw together a VERY hacked together solution. Ha!
In short:
I invoke a KM script that opens my terminal app of choice and pastes the following ffmpeg -f avfoundation -i ":0" ~/automations/day_one_transcriptions/audiocapture.mp3
That script starts recording using ffmpeg and my default microphone, placing the capture in a folder (the day_one_transcriptions above)
When finished recording, I press ctrl + c to stop the recording
Hazel watches that folder and runs the following script: whisper $1 --language English --model large-v2 --fp16 False --output_dir . --output_format txt TRANSCRIPTION=$(cat "./audiocapture.txt") dayone2 --journal Journal new "$TRANSCRIPTION" --tags transcribed rm "./audiocapture.mp3" "./audiocapture.txt" curl "https://trigger.keyboardmaestro.com/t/2SAMPLE-SAMPLE?TriggerValue"
That script:
transcribes the audio file using whisper AI
saves the output as a TXT file
the file is read and passed to the DayOne CLI
both the audio and txt files are deleted
a keyboard maestro trigger is hit that notifies me the process is complete
This is definitely hacky, but works for now. Not sure I like all the movement between tools, so I may just make this all into a single terminal script, create a raycast extension, or something else. But figured I’d pass on what I did so far.
I wouldn’t mind figuring out how to get ffmpeg to stop recording after a break of 5 seconds or something, but the hour or so I’ve spent is probably sufficient. I’m happy enough with the result. Leaving this for anyone else who wants to pick it up and run.