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
PATHfor 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:
- Transcribe the audio file
- Show a progress bar during transcription
- Save the transcript as
audio_file.txtin 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e85f797e8da3bf20a0511892fcb39f291e0f90198a7e0372ac2a9fd3436129b
|
|
| MD5 |
e0247b0c272ca79baa9e77c215786a9d
|
|
| BLAKE2b-256 |
2637b40cc2ad7ad1bb15ed86a27cbfe4c0660ccca9e963074f490dbd571d41ac
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f390a2705d09efa9286274788985bdaf8d0990f8f41c8b9ef7643cee2dfc2bf3
|
|
| MD5 |
8852c057184f5d8c93338f9b23f054cd
|
|
| BLAKE2b-256 |
f09f4b0959270ff102cd38218a5ddf16cecc2adbaf088acd124da0715520e7a8
|