aboutsummaryrefslogtreecommitdiffstats
path: root/transcribe
diff options
context:
space:
mode:
Diffstat (limited to 'transcribe')
-rwxr-xr-xtranscribe22
1 files changed, 22 insertions, 0 deletions
diff --git a/transcribe b/transcribe
new file mode 100755
index 0000000..289bcd2
--- /dev/null
+++ b/transcribe
@@ -0,0 +1,22 @@
+#!/bin/sh
+# Transcribe an audio file using OpenAI/GGML Whisper.cpp.
+
+set -e
+
+model="${XDG_DATA_HOME}/whisper/models/ggml-large-v3-turbo.bin"
+transcribe()
+{
+ echo "Transcribing '$1'" >&2
+ whisper-cli --language English -m "$model" --threads $(nproc) -osrt "$1"
+}
+
+ext="${1##*.}"
+if [ ! "$ext" = "wav" ]; then
+ wav=".${1}.wav"
+ echo "Converting to wav '$1' -> '$wav'" >&2
+ ffmpeg -i "$1" -ar 16k -ac 1 -c:a pcm_s16le "$wav"
+ transcribe "$wav"
+ rm "$wav"
+else
+ transcribe "$1"
+fi