# Generate subtitles locally using Whisper

```bash
#!/bin/bash
# Single script to convert a file to wav and have it be transcribed by whisper

# Check if a filename is provided as an argument
if [ -z "$1" ]; then
  echo "Usage: $0 <filename>"
  exit 1
fi

fileName="$1"

# If the file is not already a WAV file, convert it
if [[ $(file -b --mime-type "$fileName") != audio/wav ]]; then
  echo "Converting to WAV file"
  # Modify the conversion command as needed
  ffmpeg -i "$fileName" -acodec pcm_s16le -ar 16000 "$(basename "$fileName" .${fileName##*.}).wav"
  convertedFileName="$(basename "$fileName" .${fileName##*.}).wav"
else
  convertedFileName="$fileName"
fi

if [ ! -f "$convertedFileName" ]; then
  echo "Error: Conversion failed."
  exit 1
fi

# Transcribe the WAV file
echo -e "\n\n\nTranscribing..\n\n\n"
~/code/whisper.cpp/main -osrt -m /Users/aldrinjenson/code/whisper.cpp/models/ggml-medium.en.bin "$convertedFileName" && echo "Transcribed successfully" || echo "Error in transcribing!"

```

### Next steps:

Add the above script to path

P.S. Do remember to change the path of whsiper.cpp to the correct location in your computer.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://til.aldrinjenson.com/ai-and-llms/generate-subtitles-locally-using-whisper.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
