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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cjm_transcription_plugin_system-0.0.6.tar.gz.
File metadata
- Download URL: cjm_transcription_plugin_system-0.0.6.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d0d65a38a6034b32254ebf8674ab9786f93bdb8db83ced07782730b6aaf2905
|
|
| MD5 |
25a8de08c3ac6f0c48546d570a2b41d3
|
|
| BLAKE2b-256 |
e923b8cf7419a0d86fd63904c37cf1e9fe44bdacba72c71aa4a659b0f56222cb
|
File details
Details for the file cjm_transcription_plugin_system-0.0.6-py3-none-any.whl.
File metadata
- Download URL: cjm_transcription_plugin_system-0.0.6-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e406381a2533822db2013ac99ec8b52ebf68babc13cd5bee980badff1faa650b
|
|
| MD5 |
3fbefa9651fd10f053a9ff9033180a6f
|
|
| BLAKE2b-256 |
6eb6690e38a4ae301e57493e87d6872f17e2f162455cb8e174f3442a91e6d904
|