Automate Podcast transcripts with OpenAI/Whisper

Today I transcribed the start of our latest podcast with OpenAI/Whisper and the result is nothing short of amazing.

Our podcasts are live one-take discussions or interviews with different speakers: they contain arbitrary names of things, the language is German sprinkled with English words, speakers stop mid-sentence, start over and interrupt one another.

Despite all that, the transcript I saw would not require additional editing. I am looking forward to provide transcripts for our podcasts using Whisper.

In this blog post I want to give a short summary about:

  • How to install Whisper in a Docker image
  • How to use Whisper to transcribe an audio file
  • The podcast transcript result

How to install Whisper in a Docker image

I like installing tools into Docker images for a number of reasons, ie conflicting version number, operating system support and easy uninstalling. Hence, I started writing the following Dockerfile.

FROM debian:11-slim RUN apt update && apt install -y --no-install-recommends \ ffmpeg \ git \ python3-pip \ python3.9-full \ && rm -rf /var/lib/apt/lists/* RUN mkdir /app WORKDIR /app RUN pip install git+https://github.com/openai/whisper.git # download language model ‘medium’ RUN whisper no-such-file.wav --model medium || echo “ignore missing file error”

Last but not least: we have to execute it to build the Docker image. Let's name it whisper.

docker build -t whisper .

How to use Whisper to transcribe an audio file

Whisper supports a lot of languages and I recommend taking a look at their documentation. In a nutshell: our podcast is in German so we need at least the medium language model.

You want to be patient and allocate as much resources to Docker as possible. I provide 12 CPU cores and 48 GB of RAM to Docker and Whisper used it all.

screenshot of the Docker host resource preferencesAllocate many resources to Docker

Let's start the container and execute Whisper.

docker run --rm -it -v ~/Desktop:/data whisper whisper /data/my-audio.file.mp4 --language German --model medium

Now the transcript slowly appears in the terminal on stdout.

Example: our latest podcast

As an example I used our latest podcast: Folge 45 - SaBeNa (in German). As mentioned above: this is not an audio book. It is a live discussion between two native speakers. The result looks very, very good.

Podcast Audio

Podcast Transcript

[00:00.000 --> 00:20.880] Herzlich willkommen zu einer neuen Folge vom Sandpapier, dem regelmäßig unregelmäßigen

[00:20.880 --> 00:28.960] Podcast von Sandstorm, in dem wir über unsere Herausforderungen und Themen aus unserem Alltag

[00:28.960 --> 00:39.040] als Softwareagentur sprechen. Heute haben wir eine Folge geplant über das Thema Sabena. Wer und

[00:39.040 --> 00:47.160] was das ist, besprechen wir heute. Dazu tauschen sich heute aus die Caro. Hallo Caro. Hallo lieber

[00:47.160 --> 00:58.360] Tobi. Und ich der Tobias, genau. Wir haben, wann hat es eigentlich angefangen Sabena? Caro, wann hat

[00:58.360 --> 01:03.800] das gestartet? Letztes Jahr? Letztes Jahr noch im Herbst. Ich habe im September angefangen und ich

[01:03.800 --> 01:09.680] glaube, ich bin ziemlich früh damit reingekommen. Da haben sich alle noch gefragt, was will sie denn

[01:09.680 --> 01:15.360] damit? Das könnte spätestens Oktober gewesen sein oder aller spätestens November, dass wir

[01:15.360 --> 01:23.360] darüber gesprochen haben, ob wir das machen. Also wir reflektieren heute mal ein Thema, ein Projekt,

[01:23.360 --> 01:35.280] was wir, was jetzt ein guter Jahr her ist, also gut ein Jahr uns beschäftigt und begleitet hat. Und es

[01:35.280 --> 01:41.160] hat wieder mit unserer Nachhaltigkeitsreise zu tun. Deswegen sehen wir das Ganze hier als Fortsetzung

[01:41.160 --> 01:47.960] unserer Serie zu dem Thema Nachhaltigkeit, die wir als Softwareagentur anstreben. Wir hatten ja

[01:47.960 --> 01:55.080] schon die Folgen Shift Happens und die letzte Folge zum Thema war Nachhaltige Software. Genau, mit

[01:55.080 --> 02:01.040] Christoph und Sebastian. Meinst du, wir kriegen noch zusammen, was alles seit Shift Happens so

[02:01.040 --> 02:11.600] passiert ist? Meinst du? Ich habe ein bisschen gespickt. Ich muss sagen, die Zeit ist so gerannt.

[02:11.600 --> 02:19.800] Also wenn ich jetzt grübe, ich würde solche Sachen wie Girl’s Day Academy wahrscheinlich

[02:19.800 --> 02:24.120] dazuzählen. Genau, die Girl’s Day Academy haben wir gemacht. War wieder mal ein Klimastreik?

Summary

Imho, the result is amazing. I am looking forward to create more transcripts with Whisper to make our content more accessible and easier to find. Please feel invited to do the same.
Thanks for reading and feel free to contact us and give feedback.

Edit

There is a new blog post about transcribing podcasts with Whisper with new ideas.

foto of a typewriter