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

License

MIT — see LICENSE for details.


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.1.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.1-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: soundscribe-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 1e85f797e8da3bf20a0511892fcb39f291e0f90198a7e0372ac2a9fd3436129b
MD5 e0247b0c272ca79baa9e77c215786a9d
BLAKE2b-256 2637b40cc2ad7ad1bb15ed86a27cbfe4c0660ccca9e963074f490dbd571d41ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: soundscribe-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f390a2705d09efa9286274788985bdaf8d0990f8f41c8b9ef7643cee2dfc2bf3
MD5 8852c057184f5d8c93338f9b23f054cd
BLAKE2b-256 f09f4b0959270ff102cd38218a5ddf16cecc2adbaf088acd124da0715520e7a8

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