Skip to main content

Audio transcription CLI tool using faster-whisper

Project description

SoundScribe

Audio transcription CLI tool using faster-whisper with a progress bar.

I got tired of running faster-whisper and staring at a blank terminal with no idea whether it was working, stuck, or halfway done. Long audio files could take minutes with zero feedback. So I wrapped it in a proper CLI with a live progress bar and time estimates — because knowing how long something will take is basic UX, even for a local dev tool.

Plus, I wanted something that does not reach out to the cloud to do the transcription.

Features

  • Fast transcription using faster-whisper
  • Progress bar with time estimates
  • Supports various audio formats (.m4a, .mp3, .wav, etc.)
  • Automatic output to .txt file

Supported Audio Formats

soundscribe relies on faster-whisper, which uses ffmpeg for audio decoding. Any format ffmpeg supports will work. Common formats include:

Format Extension
MPEG Audio Layer 3 .mp3
MPEG-4 Audio .m4a
Waveform Audio .wav
FLAC .flac
Ogg Vorbis .ogg
Opus .opus
WebM .webm
MP4 video (audio extracted) .mp4
AAC .aac

Note: ffmpeg must be installed and available on your PATH for formats other than WAV.

Installation

Install with pip (editable)

cd soundscribe
pip install -e .

First Run

On first run, faster-whisper will download the model from Hugging Face and cache it locally. You'll see download progress and a warning like:

Warning: You are sending unauthenticated requests to the HF Hub...

This is normal. The model is only downloaded once — subsequent runs load it from the local cache (~/.cache/huggingface/) with no network activity. Your audio is never sent anywhere.

To suppress the warning and get faster downloads, set a (free) Hugging Face token:

export HF_TOKEN=hf_your_token_here

Usage

Once installed, you can use the soundscribe command from anywhere:

soundscribe audio_file.m4a

This will:

  1. Transcribe the audio file
  2. Show a progress bar during transcription
  3. Save the transcript as audio_file.txt in the same directory

Example

$ soundscribe my_recording.m4a
✨ Transcribing... ████████████████████ 100% 0:00:45 0:00:00
✨ Transcript saved to: my_recording.txt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soundscribe-0.1.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

soundscribe-0.1.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file soundscribe-0.1.0.tar.gz.

File metadata

  • Download URL: soundscribe-0.1.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for soundscribe-0.1.0.tar.gz
Algorithm Hash digest
SHA256 28633735727f30524ebe2730c2f197bd613845fa3cfd785610987b587c5e9c44
MD5 acdb69750c276e7faa92b7563be7c46a
BLAKE2b-256 5b4d1fcc266e025ca1ca3fcdb154d4347b4f51a6f486667aa7b79e1ea2824afa

See more details on using hashes here.

File details

Details for the file soundscribe-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: soundscribe-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for soundscribe-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78ce8f38483001436ec5b2baf777d1d61ec7d051f33dcf65ef48384c7624cd9c
MD5 2fa5d83980003bbd9a3c60f95c7dfaba
BLAKE2b-256 ecebaef54be8c3484677e63414cb7e2a05f9182675dcc5c0ab0ce76c12d973e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page