# cjm-transcription-plugin-system
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
## Install
``` bash
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
``` mermaid
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
``` python
from cjm_transcription_plugin_system.core import (
AudioData,
TranscriptionResult
)
```
#### Classes
``` python
@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
```
``` python
@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
``` python
from cjm_transcription_plugin_system.plugin_interface import (
TranscriptionPlugin
)
```
#### Classes
``` python
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."
```
Raw data
{
"_id": null,
"home_page": "https://github.com/cj-mills/cjm-transcription-plugin-system",
"name": "cjm-transcription-plugin-system",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "nbdev jupyter notebook python",
"author": "Christian J. Mills",
"author_email": "9126128+cj-mills@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/0c/97/590f7ecbb7ade59a2b24175ba368e65556d68e22964a52fc99528606aa5f/cjm_transcription_plugin_system-0.0.9.tar.gz",
"platform": null,
"description": "# cjm-transcription-plugin-system\n\n\n<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->\n\n## Install\n\n``` bash\npip install cjm_transcription_plugin_system\n```\n\n## Project Structure\n\n nbs/\n \u251c\u2500\u2500 core.ipynb # Core data structures for audio transcription\n \u2514\u2500\u2500 plugin_interface.ipynb # Domain-specific plugin interface for audio transcription plugins\n\nTotal: 2 notebooks\n\n## Module Dependencies\n\n``` mermaid\ngraph LR\n core[core<br/>core]\n plugin_interface[plugin_interface<br/>Transcription Plugin Interface]\n\n plugin_interface --> core\n```\n\n*1 cross-module dependencies detected*\n\n## CLI Reference\n\nNo CLI commands found in this project.\n\n## Module Overview\n\nDetailed documentation for each module in the project:\n\n### core (`core.ipynb`)\n\n> Core data structures for audio transcription\n\n#### Import\n\n``` python\nfrom cjm_transcription_plugin_system.core import (\n AudioData,\n TranscriptionResult\n)\n```\n\n#### Classes\n\n``` python\n@dataclass\nclass AudioData:\n \"Container for audio data and metadata.\"\n \n samples: np.ndarray # Audio sample data as a numpy array\n sample_rate: int # Sample rate in Hz (e.g., 16000, 44100)\n duration: float # Duration of the audio in seconds\n filepath: Optional[Path] # Audio file path\n metadata: Dict[str, Any] = field(...) # Additional metadata\n```\n\n``` python\n@dataclass\nclass TranscriptionResult:\n \"Standardized transcription output.\"\n \n text: str # The transcribed text\n confidence: Optional[float] # Overall confidence score (0.0 to 1.0)\n segments: Optional[List[Dict]] = field(...) # List of transcription segments with timestamps and text\n metadata: Optional[Dict] = field(...) # Transcription metadata\n```\n\n### Transcription Plugin Interface (`plugin_interface.ipynb`)\n\n> Domain-specific plugin interface for audio transcription plugins\n\n#### Import\n\n``` python\nfrom cjm_transcription_plugin_system.plugin_interface import (\n TranscriptionPlugin\n)\n```\n\n#### Classes\n\n``` python\nclass TranscriptionPlugin(PluginInterface):\n \"\"\"\n Transcription-specific plugin interface.\n \n This extends the generic PluginInterface with transcription-specific\n requirements like supported audio formats and the execute signature.\n \n All transcription plugins must implement this interface.\n \"\"\"\n \n def supported_formats(\n self\n ) -> List[str]: # List of file extensions without the dot (e.g., ['wav', 'mp3', 'flac'])\n \"List of supported audio formats.\"\n \n def execute(\n self,\n audio: Union[AudioData, str, Path], # Audio data (AudioData object), file path (str), or Path object\n **kwargs # Additional plugin-specific parameters (e.g., language, model)\n ) -> TranscriptionResult: # Transcription result with text, confidence, segments, and metadata\n \"Transcribe audio to text.\"\n```\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "A flexible plugin system for audio transcription intended to make it easy to add support for multiple backends.",
"version": "0.0.9",
"project_urls": {
"Homepage": "https://github.com/cj-mills/cjm-transcription-plugin-system"
},
"split_keywords": [
"nbdev",
"jupyter",
"notebook",
"python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1a9620be44ab1b0b8a6b8025a6c094264b37330f40ee7eb745fa98871273fa78",
"md5": "11fa0539149e89c60a4a08f69737b3bb",
"sha256": "1650bbfd736bb3d34c889a56d341cc7dbc1dee99be670f87f8baa1903f8e2b2e"
},
"downloads": -1,
"filename": "cjm_transcription_plugin_system-0.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "11fa0539149e89c60a4a08f69737b3bb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 9794,
"upload_time": "2025-10-25T00:43:01",
"upload_time_iso_8601": "2025-10-25T00:43:01.939863Z",
"url": "https://files.pythonhosted.org/packages/1a/96/20be44ab1b0b8a6b8025a6c094264b37330f40ee7eb745fa98871273fa78/cjm_transcription_plugin_system-0.0.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0c97590f7ecbb7ade59a2b24175ba368e65556d68e22964a52fc99528606aa5f",
"md5": "f8a3c2c57663e6cd9c4112c9511f24a6",
"sha256": "89566c6a3c269ad5cd3b8e83d4cff8743ee525a4cc2199a371c1e4cef4f2cb8c"
},
"downloads": -1,
"filename": "cjm_transcription_plugin_system-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "f8a3c2c57663e6cd9c4112c9511f24a6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 9192,
"upload_time": "2025-10-25T00:43:02",
"upload_time_iso_8601": "2025-10-25T00:43:02.987899Z",
"url": "https://files.pythonhosted.org/packages/0c/97/590f7ecbb7ade59a2b24175ba368e65556d68e22964a52fc99528606aa5f/cjm_transcription_plugin_system-0.0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-25 00:43:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cj-mills",
"github_project": "cjm-transcription-plugin-system",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cjm-transcription-plugin-system"
}