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

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.6.tar.gz
Algorithm Hash digest
SHA256 6d0d65a38a6034b32254ebf8674ab9786f93bdb8db83ced07782730b6aaf2905
MD5 25a8de08c3ac6f0c48546d570a2b41d3
BLAKE2b-256 e923b8cf7419a0d86fd63904c37cf1e9fe44bdacba72c71aa4a659b0f56222cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e406381a2533822db2013ac99ec8b52ebf68babc13cd5bee980badff1faa650b
MD5 3fbefa9651fd10f053a9ff9033180a6f
BLAKE2b-256 6eb6690e38a4ae301e57493e87d6872f17e2f162455cb8e174f3442a91e6d904

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