cjm-transcription-plugin-system
Install
pip install cjm_transcription_plugin_system
Project Structure
nbs/
├── core.ipynb # REMOVE-AFTER-OVERHAUL(option-c-cascade): class-identical legacy
├── forced_alignment_core.ipynb # REMOVE-AFTER-OVERHAUL(option-c-cascade): class-identical legacy
├── forced_alignment_interface.ipynb # Domain-specific plugin interface for word-level audio-text alignment
├── forced_alignment_storage.ipynb # REMOVE-AFTER-OVERHAUL(option-c-cascade): class-identical legacy
├── plugin_interface.ipynb # Domain-specific plugin interface for audio transcription
└── storage.ipynb # REMOVE-AFTER-OVERHAUL(option-c-cascade): class-identical legacy
Total: 6 notebooks
Module Dependencies
graph LR
core["core<br/>Core Data Structures (compat shim)"]
forced_alignment_core["forced_alignment_core<br/>Forced Alignment Core (compat shim)"]
forced_alignment_interface["forced_alignment_interface<br/>Forced Alignment Plugin Interface"]
forced_alignment_storage["forced_alignment_storage<br/>Forced Alignment Storage (compat shim)"]
plugin_interface["plugin_interface<br/>Transcription Plugin Interface"]
storage["storage<br/>Transcription Storage (compat shim)"]
forced_alignment_interface --> forced_alignment_core
plugin_interface --> core
2 cross-module dependencies detected
CLI Reference
No CLI commands found in this project.
Module Overview
Detailed documentation for each module in the project:
Forced Alignment Plugin Interface (forced_alignment_interface.ipynb)
Domain-specific plugin interface for word-level audio-text alignment
Import
from cjm_transcription_plugin_system.forced_alignment_interface import (
ForcedAlignmentPlugin
)
Classes
class ForcedAlignmentPlugin(PluginInterface):
"""
Abstract base class for all forced alignment plugins.
Extends PluginInterface with forced-alignment-specific requirements:
- `supported_formats`: List of audio file extensions this plugin can handle
- `execute`: Accepts an audio file path and transcript text, returns ForcedAlignResult
Input contract: plugins receive a path to a decodable audio file. Producing a
model-ready file (format / sample-rate / channel normalization) is the caller's
responsibility — e.g. an upstream ffmpeg step in the orchestration pipeline —
not the plugin's. This keeps the interface library dependency-light.
"""
def supported_formats(self) -> List[str]: # e.g., ['wav', 'mp3', 'flac']
"""List of supported audio file extensions (without the dot)."""
...
@abstractmethod
def execute(
self,
audio: Union[str, Path], # Path to a decodable audio file
text: str, # Transcript text to align against
**kwargs
) -> ForcedAlignResult: # Word-level alignment result
"List of supported audio file extensions (without the dot)."
def execute(
self,
audio: Union[str, Path], # Path to a decodable audio file
text: str, # Transcript text to align against
**kwargs
) -> ForcedAlignResult: # Word-level alignment result
"Perform forced alignment of text against audio.
`audio` is a path to a decodable audio file; the caller guarantees it is in
a form the plugin/model can consume."
Transcription Plugin Interface (plugin_interface.ipynb)
Domain-specific plugin interface for audio transcription
Import
from cjm_transcription_plugin_system.plugin_interface import (
TranscriptionPlugin
)
Classes
class TranscriptionPlugin(PluginInterface):
"""
Abstract base class for all transcription plugins.
Extends PluginInterface with transcription-specific requirements:
- `supported_formats`: List of audio file extensions this plugin can handle
- `execute`: Accepts an audio file path (str or Path), returns TranscriptionResult
Input contract: plugins receive a path to a decodable audio file. Producing a
model-ready file (format / sample-rate / channel normalization) is the caller's
responsibility — e.g. an upstream ffmpeg step in the orchestration pipeline —
not the plugin's. This keeps the interface library dependency-light (no audio
I/O deps such as numpy/soundfile in the shared consumer environment).
"""
def supported_formats(self) -> List[str]: # e.g., ['wav', 'mp3', 'flac']
"""List of supported audio file extensions (without the dot)."""
...
@abstractmethod
def execute(
self,
audio: Union[str, Path], # Path to a decodable audio file
**kwargs
) -> TranscriptionResult: # Transcription result with text, confidence, segments
"List of supported audio file extensions (without the dot)."
def execute(
self,
audio: Union[str, Path], # Path to a decodable audio file
**kwargs
) -> TranscriptionResult: # Transcription result with text, confidence, segments
"Transcribe audio to text.
`audio` is a path to a decodable audio file; the caller guarantees it is in
a form the plugin/model can consume."
Metadata
Release files for cjm-transcription-plugin-system 0.0.40
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cjm_transcription_plugin_system-0.0.40.tar.gz | 10.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cjm_transcription_plugin_system-0.0.40-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / cjm_transcription_plugin_system-0.0.40.tar.gz
| Download URL | cjm_transcription_plugin_system-0.0.40.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e707b47d634f0ef95b34032e4bff8d04c4d7795a4080dff83f73dbab5877246e
|
|
BLAKE2b-256 checksum How to use checksums |
0de5888b69ce62c18d175563b51806553bd43ed19cc7cd7d932d89ab4318594d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / cjm_transcription_plugin_system-0.0.40-py3-none-any.whl
| Download URL | cjm_transcription_plugin_system-0.0.40-py3-none-any.whl |
|---|---|
| Size | 13.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4c018e4701dcc65573417239145d5fa91b051363a668a40bb7a629744080d849
|
|
BLAKE2b-256 checksum How to use checksums |
2b4098d607b46f4faa2bc66eb1a98ca01fa8e309d87073f2657b8c417e9eb6aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Security for cjm-transcription-plugin-system 0.0.40
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.