Local, free, multilingual audio transcription app powered by faster-whisper.
Project description
Massscriber
Massscriber is a local-first audio transcription app built on top of faster-whisper.
It is designed for people who want:
- no paid API dependency
- no upload requirement for private recordings
- unlimited local processing
- strong multilingual transcription quality
- both a simple UI and a scriptable CLI
Highlights
- Local transcription with
faster-whisper - Multilingual speech-to-text with automatic language detection
- Batch processing for multiple audio or video files
- Gradio UI for drag-and-drop use
- Local disk mode for direct file paths or folder scans without browser upload
- Live stage-by-stage progress for long-running transcriptions
- CLI mode for automation and power users
- Export formats:
txt,srt,vtt,json - Quality-first model option:
large-v3 - Speed-first model option:
turbo - Installable in supported browsers as a PWA
Supported Inputs
The UI currently accepts:
.mp3.wav.m4a.flac.ogg.aac.wma.mp4.mkv
faster-whisper handles media decoding through its own stack, so a manual ffmpeg install is usually not required.
Model Guidance
| Model | Best for | Notes |
|---|---|---|
large-v3 |
Highest accuracy | Best default for serious transcription work |
turbo |
Fastest practical transcription | Great speed/quality balance |
medium |
Mid-range systems | Useful fallback for lower VRAM devices |
small, base, tiny |
Lightweight testing | Faster, but lower accuracy |
Important note: no speech recognition model is perfectly error-free. For a fully free and local workflow, large-v3 is one of the strongest practical choices available today.
Quick Start
Windows helper scripts
install.bat
start_ui.bat
On Windows, install.bat now checks for nvidia-smi and, when an NVIDIA GPU is present, also installs the NVIDIA CUDA runtime Python packages that provide DLLs such as cublas64_12.dll and cudnn64_9.dll.
Manual setup
python -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip
python -m pip install -e .
Run the App
Launch the UI
.venv\Scripts\activate
python app.py
The default UI address is http://127.0.0.1:7860.
In supported browsers, the app can also be installed as a PWA for quicker relaunching.
If browser upload becomes unreliable for very large media, use the local disk mode in the UI:
- paste one or more absolute file paths
- or point the app at a folder and let it scan supported media files
Use the CLI
.venv\Scripts\activate
python app.py transcribe "C:\audio\meeting.mp3" --model large-v3 --formats txt srt json
You can also use the installed console entry point:
massscriber transcribe "C:\audio\meeting.mp3" --model turbo --formats txt srt
Recommended Settings
Best quality
- Model:
large-v3 - Beam size:
5 - VAD: enabled
- Word timestamps: enabled
Best speed
- Model:
turbo - Device:
cudawhen available - Compute type:
float16 - Batch size:
8or16
Outputs
By default, transcripts are written to the outputs directory:
txtsrtjson
You can also enable vtt from the UI or CLI.
GPU Notes
If you use an NVIDIA GPU, faster-whisper may require CUDA runtime libraries on your machine.
CPU mode works too; it is simply slower.
If CUDA libraries such as cublas64_12.dll are missing, Massscriber now falls back to CPU automatically and logs a clear warning instead of stopping the job.
On Windows, Massscriber also auto-registers NVIDIA runtime DLL folders from installed Python packages before loading ctranslate2, which helps GPU mode come up cleanly after install.bat.
According to the faster-whisper recommendations:
int8is a good default for CPU executionfloat16orint8_float16are good GPU options
If you hit CUDA DLL issues on Windows, follow the Windows notes in the official faster-whisper documentation.
First Run Behavior
The selected model is downloaded automatically on first use.
For large-v3, the first run can take a while because the model is large.
Development
Run tests
python -m unittest discover -s tests -v
Local verification
python -m py_compile app.py massscriber\__init__.py massscriber\types.py massscriber\exporters.py massscriber\transcriber.py massscriber\ui.py
Versioning and Releases
- Project version is defined in
massscriber.__version__ - Packaging reads the version dynamically from the package
- Human-readable release history lives in CHANGELOG.md
- Release steps are documented in RELEASING.md
- Pushing a tag like
v0.1.0triggers the GitHub release workflow
Roadmap
- Speaker diarization
- Better subtitle segmentation options
- Packaged desktop builds
- Folder watch / auto-transcribe workflows
License
This project is released under the MIT License. See LICENSE.
References
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 massscriber-0.1.2.tar.gz.
File metadata
- Download URL: massscriber-0.1.2.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c99eba759c81179b2bb6ae7ca001f2625efcd7ae4a7189483a47a099d894d8b4
|
|
| MD5 |
d79d623fccd62159c8a9e566e46990cc
|
|
| BLAKE2b-256 |
cb1059bd1039021f23824a40ab228fbe66c1d84a4de36b4711412d91ae484f2a
|
Provenance
The following attestation bundles were made for massscriber-0.1.2.tar.gz:
Publisher:
pypi-publish.yml on BarryAllen53/massscriber
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
massscriber-0.1.2.tar.gz -
Subject digest:
c99eba759c81179b2bb6ae7ca001f2625efcd7ae4a7189483a47a099d894d8b4 - Sigstore transparency entry: 1050150270
- Sigstore integration time:
-
Permalink:
BarryAllen53/massscriber@b21be88bdf04694c2a6233de6d1676fca173edac -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/BarryAllen53
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@b21be88bdf04694c2a6233de6d1676fca173edac -
Trigger Event:
push
-
Statement type:
File details
Details for the file massscriber-0.1.2-py3-none-any.whl.
File metadata
- Download URL: massscriber-0.1.2-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffcb845a7a42917ea2b9d1814ea3d8a04d08e3b58b360e1b58d471c184a66acf
|
|
| MD5 |
090627374cff95df9501aa0fc7181a5c
|
|
| BLAKE2b-256 |
3e49962f4e144220bcbd51631a611cd3ce90792219441786b7e7ba588a00c405
|
Provenance
The following attestation bundles were made for massscriber-0.1.2-py3-none-any.whl:
Publisher:
pypi-publish.yml on BarryAllen53/massscriber
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
massscriber-0.1.2-py3-none-any.whl -
Subject digest:
ffcb845a7a42917ea2b9d1814ea3d8a04d08e3b58b360e1b58d471c184a66acf - Sigstore transparency entry: 1050150280
- Sigstore integration time:
-
Permalink:
BarryAllen53/massscriber@b21be88bdf04694c2a6233de6d1676fca173edac -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/BarryAllen53
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@b21be88bdf04694c2a6233de6d1676fca173edac -
Trigger Event:
push
-
Statement type: