Skip to main content

A flexible plugin system for audio transcription intended to make it easy to add support for multiple backends.

Project description

cjm-transcription-plugin-system

Install

pip install cjm_transcription_plugin_system

Project Structure

nbs/
├── core.ipynb             # Core data structures for audio transcription
└── plugin_interface.ipynb # Domain-specific plugin interface for audio transcription plugins

Total: 2 notebooks

Module Dependencies

graph LR
    core[core<br/>core]
    plugin_interface[plugin_interface<br/>Transcription Plugin Interface]

    plugin_interface --> core

1 cross-module dependencies detected

CLI Reference

No CLI commands found in this project.

Module Overview

Detailed documentation for each module in the project:

core (core.ipynb)

Core data structures for audio transcription

Import

from cjm_transcription_plugin_system.core import (
    AudioData,
    TranscriptionResult
)

Classes

@dataclass
class AudioData:
    "Container for audio data and metadata."
    
    samples: np.ndarray  # Audio sample data as a numpy array
    sample_rate: int  # Sample rate in Hz (e.g., 16000, 44100)
    duration: float  # Duration of the audio in seconds
    filepath: Optional[Path]  # Audio file path
    metadata: Dict[str, Any] = field(...)  # Additional metadata
@dataclass
class TranscriptionResult:
    "Standardized transcription output."
    
    text: str  # The transcribed text
    confidence: Optional[float]  # Overall confidence score (0.0 to 1.0)
    segments: Optional[List[Dict]] = field(...)  # List of transcription segments with timestamps and text
    metadata: Optional[Dict] = field(...)  # Transcription metadata

Transcription Plugin Interface (plugin_interface.ipynb)

Domain-specific plugin interface for audio transcription plugins

Import

from cjm_transcription_plugin_system.plugin_interface import (
    TranscriptionPlugin
)

Classes

class TranscriptionPlugin(PluginInterface):
    """
    Transcription-specific plugin interface.
    
    This extends the generic PluginInterface with transcription-specific
    requirements like supported audio formats and the execute signature.
    
    All transcription plugins must implement this interface.
    """
    
    def supported_formats(
            self
        ) -> List[str]:  # List of file extensions without the dot (e.g., ['wav', 'mp3', 'flac'])
        "List of supported audio formats."
    
    def execute(
            self,
            audio: Union[AudioData, str, Path],  # Audio data (AudioData object), file path (str), or Path object
            **kwargs  # Additional plugin-specific parameters (e.g., language, model)
        ) -> TranscriptionResult:  # Transcription result with text, confidence, segments, and metadata
        "Transcribe audio to text."

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

cjm_transcription_plugin_system-0.0.10.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file cjm_transcription_plugin_system-0.0.10.tar.gz.

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.10.tar.gz
Algorithm Hash digest
SHA256 6088b125415aac3507e1f9b86de3e401b9a8eecd8b199bb98d521564d41ae677
MD5 d1fe1e7796239f34e9bb98aee26cce01
BLAKE2b-256 49e8a68e7ca485ee65a596870ce0eb70a38b9e7afb696f1ac1ec8733196751da

See more details on using hashes here.

File details

Details for the file cjm_transcription_plugin_system-0.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 6f40c43e89df78dfde8d02e3ba8c7a67b13394edcda007f18fe305d53ce2de68
MD5 b8cbba5833200014d1b2e3510ada8613
BLAKE2b-256 58d41e27b6f4ad65840977ceafb9ad9df6554eb629612f61f9c63e7bed4f6647

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