Skip to main content

A library for transcribing audio files using Whisper models

Project description

Whisper Transcriber

A Python library for transcribing audio files using Whisper models with intelligent silence detection and segmentation.

Installation

pip install whisper-transcriber

Requirements

  • Python 3.7 or higher
  • ffmpeg and ffprobe installed on your system

Features

  • Intelligent silence detection for natural segmentation
  • Adaptive audio analysis for optimal threshold detection
  • High-quality transcription using Whisper models
  • Support for various audio formats
  • Optional SRT subtitle output
  • Control over transcript output (quiet mode, JSON output)
  • Verbose/silent operation modes

Usage

Command Line

# Basic usage
whisper-transcribe audio_file.mp3

# Advanced usage
whisper-transcribe audio_file.mp3 -m openai/whisper-small \
  --min-segment 5 \
  --max-segment 15 \
  --silence-duration 0.2 \
  --sample-rate 16000 \
  --batch-size 8 \
  --normalize \
  --hf-token YOUR_HF_TOKEN \
  --no-timestamps

# Run in quiet mode (no transcript printing during processing)
whisper-transcribe audio_file.mp3 --quiet

# Output results as JSON
whisper-transcribe audio_file.mp3 --json

Available Arguments:

  • input: Input audio file or directory (required)
  • -o, --output: Output file path (optional)
  • -m, --model: Whisper model to use (default: openai/whisper-small)
  • --hf-token: HuggingFace API token
  • --min-segment: Minimum segment length in seconds (default: 5)
  • --max-segment: Maximum segment length in seconds (default: 15)
  • --silence-duration: Minimum silence duration in seconds (default: 0.2)
  • --sample-rate: Audio sample rate (default: 16000)
  • --batch-size: Batch size for transcription (default: 8)
  • --normalize: Normalize audio volume
  • --no-text-normalize: Skip text normalization
  • --no-timestamps: Don't print timestamps during processing
  • --quiet: Run in quiet mode (suppress transcript printing)
  • --json: Output results as JSON instead of text

Python Library

from whisper_transcriber import WhisperTranscriber

# Initialize the transcriber
transcriber = WhisperTranscriber(model_name="openai/whisper-small", hf_token="YOUR_HF_TOKEN")

# Transcribe an audio file with automatic transcript printing
results = transcriber.transcribe(
    "audio_file.mp3",
    min_segment=5,
    max_segment=15,
    silence_duration=0.2,
    sample_rate=16000,
    batch_size=8,
    normalize=True,
    normalize_text=True,
    print_timestamps=True,
    verbose=False
)



# Access the transcription results manually
for i, segment in enumerate(results):
    print(f"\n[{segment['start']} --> {segment['end']}]")
    print(f"Segment {i+1}: {segment['transcript']}")

# Optionally save to an SRT file
# If you want to save the transcription, provide an output path
results = transcriber.transcribe(
    "audio_file.mp3",
    output="transcript.srt"
)

Parameters Explained

  • model_name: Which Whisper model to use (e.g., "openai/whisper-tiny", "openai/whisper-small", "openai/whisper-medium", "openai/whisper-large")
  • min_segment: Minimum length in seconds for audio segments (shorter segments will be merged)
  • max_segment: Maximum length in seconds for audio segments (longer segments will be split)
  • silence_duration: How long a silence needs to be (in seconds) to be considered a natural break point
  • sample_rate: Audio sample rate in Hz for processing
  • batch_size: Number of segments to process at once (higher values use more memory but can be faster with GPU)
  • normalize: Whether to normalize audio volume
  • normalize_text: Whether to normalize transcription text
  • print_timestamps: Whether to include timestamps when printing transcripts
  • verbose: Whether to print processing information and transcripts during transcription

License

MIT

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

whisper_transcriber-0.2.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

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

whisper_transcriber-0.2.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file whisper_transcriber-0.2.0.tar.gz.

File metadata

  • Download URL: whisper_transcriber-0.2.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for whisper_transcriber-0.2.0.tar.gz
Algorithm Hash digest
SHA256 11f3aede0f55199c7f3f6d1ab97d8c9ce128ead6fac30c33ea9b60fba1fa8240
MD5 5d94de73d26808831b9eccf9c204a717
BLAKE2b-256 3927fb0e4accfb80aee219b03f9a44e882b79dc500a16730958a9f7ec785af84

See more details on using hashes here.

File details

Details for the file whisper_transcriber-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for whisper_transcriber-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 250b6cebbe17413e90f904af795f9ee321c13b406c4f66798b84e05c03b6aea6
MD5 c852b2303c753b0a9999a918edc180e2
BLAKE2b-256 2bbcde0e4bd6c9e13c87c7e5c90cbe7938a18bd734708180774cdbcc32771999

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