I recently tried the desktop app Handy (handy.computer) and found it working quite well, so I decided to port the concept to Android.

Since I use GrapheneOS, I was also missing the "Live Caption" feature from stock Android, so I implemented that too. It runs entirely offline, no data leaves the device.