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 this plugin can process
        "List of supported audio formats (e.g., ['wav', 'mp3']).

Returns:
    List of file extensions without the dot (e.g., ['wav', 'mp3', 'flac'])"
    
    def execute(
            self,
            audio: Union[AudioData, str, Path],  # Audio data or path to audio file
            **kwargs  # Additional plugin-specific parameters
        ) -> TranscriptionResult:  # Transcription result with text and metadata
        "Transcribe audio to text.

Args:
    audio: Audio data (AudioData object), file path (str), or Path object
    **kwargs: Additional plugin-specific parameters (e.g., language, model)
    
Returns:
    TranscriptionResult containing transcribed text, confidence, segments, and metadata"

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.7.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.7.tar.gz.

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.7.tar.gz
Algorithm Hash digest
SHA256 eaccf9674964cc6b12fead692208fff1d7504571d05bf3dc8436ed3069531764
MD5 2803ed9b23dc35dab3b473e8acc342bf
BLAKE2b-256 e365c139efed6ae9b85e05388d3aea391718c5961ed47a03e00fd8852f1223ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 75e395d2e4d8d7546c0719715ed1e6933f81dd01d78307cdb09c38693e4151da
MD5 5853658310fe37cd0cd2ca10e6236add
BLAKE2b-256 d85c06ae3f101619dc1dbe1e6d3f064a84752616a6483a8ff0769d16b2a02938

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