Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.


Weeknotes 2024-11-25

, Jochen
Don't use a big word when a singularly unloquacious and diminutive linguistic expression will satisfactorily accomplish the contemporary necessity. --Dgar

This week brought some improvements and a new release for podcast-transcripts. Overall, though, it was more work and less play than usual—a pattern I suspect will continue through the end of the year.

Articles

Weeknotes

Software

Videos

Out of Context Images


🎙️ Introducing podcast-transcript: Audio Transcription Made Simple

, Jochen

Hey folks! I recently built a little command-line tool called podcast-transcript that turns audio into text. While it started as a podcast transcription project during the PyDDF autumn sprint, it works great for any speech audio. The coolest part? It can transcribe a 2-hour podcast in about 90 seconds!

Quick Start 🚀

pip install podcast-transcript  # or use pipx or uvx
transcribe https://d2mmy4gxasde9x.cloudfront.net/cast_audio/pp_53.mp3

Why Groq?

After trying different approaches, I landed on using the Groq API for transcription. Here's why:

  • It's blazing fast
  • Getting an API key is free and API usage is free (with reasonable limits: 8 hours of audio per day, 2 hours per hour)
  • The Whisper large-v3 model handles multiple languages well (especially noticeable for German content)

Technical Bits

The tool handles some interesting challenges under the hood:

  • Automatically resamples audio to 16kHz mono before upload (if you don't do it before, Groq will after upload)
  • Splits files larger than 25MB into chunks and stitches the transcripts back together
  • Uses httpx for direct API calls to get detailed JSON responses inspired by Simon Willison’s approach
  • Outputs in multiple formats: DOTe JSON, Podlove JSON, WebVTT, and plain text

Future Plans

I'm planning to add support for local transcription using the OpenAI Whisper model. While Whisper v2 works well enough for English content, v3 shows notable improvements for other languages (especially German). I initially skipped local processing because of the PyTorch dependency, but it's on the roadmap! I also plan to add multitrack support for handling audio files with separate speaker tracks.

The code is open source and contributions are welcome. Let me know if you try it out!


Weeknotes 2024-11-18

, Jochen

I learned all my HTML<br>
From a code camp held yearly in hell<br>
We started on `<s>`<br>
Then striked through the rest<br>
Now I have a career in DevRel --Heydon Pickering


Published a new podcast episode discussing Python 3.13. I’ve been using Jupyter notebooks to generate transcripts for the episodes and have started consolidating that workflow into a dedicated Python command-line application.

Articles

Books

Software

Out of Context Images


Weeknotes 2024-11-11

, Jochen
AAAAAAAAAAAAAAAAAAAAAAAHHHHHHHH --Endless Screaming

This is fine 🔥.

In other news, I attended the PyDDF autumn sprint! After putting off the transcripts feature for django-cast for quite some time, I finally started working on it. You can already see some transcript functionality in the web player on my podcast website. There’s still plenty to do, but at least it’s underway now.

Articles

Videos

Software

Fediverse

Out of Context Images


Weeknotes 2024-11-04

, Jochen
By age 35, your 500-foot burial pyramid should already be 80% complete. --batkaren

I’ve implemented some performance improvements on my podcast page and published an article about them: TIL: Podlove Web Player Performance Improvements. Additionally, I released a new version of django-cast that incorporates the new podlove-player web component and offers official support for Wagtail 6.3.

Articles

Software

Books

Fediverse

Weeknotes

Videos

Out of Context Images