Skip to main content

Easy speech-to-text transcription from audio files or live microphone input using Whisper.

Project description

EasyTranscribe

A simple Python-based voice assistant that captures speech from your microphone or from recorded file, detects silence, and transcribes spoken words to text using OpenAI Whisper. Easily extensible for integration with LLMs like Ollama or Gemma.

Features

  • Real-time microphone audio capture
  • Automatic silence detection and recording stop
  • Speech-to-text transcription using Whisper
  • Comprehensive transcription logging with detailed metrics
  • Easy integration with other AI models

Installation

  1. Clone the repository:

    git clone https://github.com/akhshyganesh/easytranscribe.git
    cd easytranscribe
    
  2. Install dependencies:

    pip install -r requirements.txt
    

Usage

Run the main script:

python main.py

Speak into your microphone. The assistant will automatically stop recording after a few seconds of silence and transcribe your speech.

easytranscribe

PyPI version Python 3.8+ License: MIT

Easy speech-to-text transcription from audio files or live microphone input using OpenAI's Whisper.

✨ Features

  • 🎤 Live microphone transcription with automatic silence detection
  • 📁 Audio file transcription supporting multiple formats
  • 📊 Automatic logging with timestamps and performance metrics
  • 🔧 Simple CLI interface for quick usage
  • 🐍 Easy Python API for integration into your projects
  • 📈 Log analysis tools to view transcription history and statistics

🚀 Quick Start

Installation

pip install easytranscribe

Python API

Live microphone transcription:

from easytranscribe import capture_and_transcribe

# Start live transcription (speaks and waits for silence)
text = capture_and_transcribe(model_name="base")
print(f"You said: {text}")

Audio file transcription:

from easytranscribe import transcribe_audio_file

# Transcribe an audio file
text = transcribe_audio_file("path/to/audio.wav", model_name="base")
print(f"Transcription: {text}")

View transcription logs:

from easytranscribe import view_logs

# View today's logs with statistics
logs = view_logs(date="today", stats=True)
print(f"Total entries: {logs['total_count']}")

Command Line Interface

Live transcription:

easytranscribe live --model base

File transcription:

easytranscribe file path/to/audio.wav --model base

View logs:

# View today's logs
easytranscribe logs --date today --stats

# View last 10 entries
easytranscribe logs --tail 10

# List available log dates
easytranscribe logs --list-dates

📋 Available Whisper Models

Model Size Speed Accuracy Use Case
tiny 39MB Fastest Good Real-time, low resource
base 74MB Fast Better Balanced performance
small 244MB Medium Good Higher accuracy
medium 769MB Slow Very Good Professional use
large 1550MB Slowest Best Maximum accuracy
turbo 809MB Fast Excellent Best balance (default)

🔧 Configuration

Audio Settings (Live Recording)

The package automatically handles:

  • ✅ Silence detection (3 seconds of silence stops recording)
  • ✅ Minimum recording time (2 seconds)
  • ✅ Audio level monitoring
  • ✅ Automatic microphone input

Logging

Transcriptions are automatically logged to logs/transcription_YYYY-MM-DD.log with:

  • 📅 Timestamp
  • 🤖 Model used
  • ⏱️ Processing time
  • 🎵 Audio duration (for live recording)
  • 📝 Transcribed text

🛠️ Development

Install from Source

git clone https://github.com/akhshyganesh/easytranscribe.git
cd easytranscribe
pip install -e .

Run Tests

python test/test_integration.py

📄 Requirements

  • Python 3.8+
  • OpenAI Whisper
  • sounddevice (for microphone input)
  • numpy

📖 Documentation

For comprehensive documentation, examples, and API reference, visit:

🌐 EasyTranscribe Documentation

The documentation includes:

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

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

easytranscribe-0.1.2.tar.gz (57.6 kB view details)

Uploaded Source

Built Distribution

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

easytranscribe-0.1.2-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file easytranscribe-0.1.2.tar.gz.

File metadata

  • Download URL: easytranscribe-0.1.2.tar.gz
  • Upload date:
  • Size: 57.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for easytranscribe-0.1.2.tar.gz
Algorithm Hash digest
SHA256 73d6677d46cfacb8bfac4147faca0c882753492e1194678a621939d6cb0eb30f
MD5 695e88ccca188393bceea237dceac885
BLAKE2b-256 ee75138cad053714aeb83d4df60287c6ace86e5b59705e0dd3b2123c0635c122

See more details on using hashes here.

File details

Details for the file easytranscribe-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: easytranscribe-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for easytranscribe-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a3572e28b159fafaea66d106f7a3749c87d01920853ff66a30dcb143f1ba7165
MD5 c29fadd726137a960dbc5a2bb06275a4
BLAKE2b-256 edf944f85d0178f9ec05cc8d909a4b77e03fb9bc7787c3533ed16a54adf21376

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