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

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.11.tar.gz
Algorithm Hash digest
SHA256 95e6cd27b2b15565a58b219cadecf3500479327f493f0157171501e386c9207a
MD5 4d26bf592a901ac93865acc566533104
BLAKE2b-256 1311dce216c73aa2cff514267842d4ee2de867f54b70ee73b8009311c9253797

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cjm_transcription_plugin_system-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 07bd5bb7bf1493bdd3a0d9747056a70c29516efcd420f97bd4024da8efd50853
MD5 b1a8b4b42635526470800ed60058d21e
BLAKE2b-256 039e29ae9ea254a4b308927bb585c799348f2ad5db4ba6c6a2f492239896f1de

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