How meizhong986/whisperjav works
WhisperJAV is a local Japanese-video subtitle generator, exposed through a command-line interface and a webview GUI. Its main workflow configures a transcription mode, discovers media, prepares and segments audio, runs speech recognition, then assembles and writes subtitles with per-file outcomes. The README also documents ensemble runs, multiple output formats, and a separate translation capability. Sampled source confirms pipeline, enhancement, and configuration responsibilities; several connections and product branches below follow documented behavior because their implementation was not sampled.
Main entry points: main.py Run coordinator · balanced_pipeline.py Balanced pipeline · qwen_pipeline.py Qwen pipeline · orchestrator.py Ensemble runner
Components 24
User entry
- CLI
whisperjav/cli.py - Webview GUI
whisperjav/webview_gui/main.py - GUI API
whisperjav/webview_gui/api.py - Run coordinator
whisperjav/main.py
Audio preparation
- Media discovery
whisperjav/modules/media_discovery.py - Audio extraction
whisperjav/modules/audio_extraction.py - Scene detection
whisperjav/modules/scene_detection.py - Speech enhancement
whisperjav/modules/speech_enhancement/pipeline_helper.py - Speech segmentation
whisperjav/modules/speech_segmentation/factory.py
Transcription
- Balanced pipeline
whisperjav/pipelines/balanced_pipeline.py - Qwen pipeline
whisperjav/pipelines/qwen_pipeline.py - Transformers pipeline
whisperjav/pipelines/transformers_pipeline.py - Ensemble runner
whisperjav/ensemble/orchestrator.py - ASR engines
whisperjav/modules
Subtitle and translation
- Subtitle pipeline
whisperjav/modules/subtitle_pipeline/orchestrator.py - Subtitle post-processing
whisperjav/modules/srt_postprocessing.py - Subtitle output
whisperjav/main.py - Run outcomes
whisperjav/utils/run_outcome.py - Translation service
whisperjav/translate/service.py - Translation providers
whisperjav/translate/providers.py - Ollama service
whisperjav/translate/ollama_manager.py
Configuration
- Config manager
whisperjav/config/manager.py - Config resolver
whisperjav/config/resolver_v3.py
Other components
- User
Connections 29
- User → CLI: invokes
- User → Webview GUI: uses
- Webview GUI → GUI API: calls
- CLI → Run coordinator: starts run
- GUI API → Run coordinator: starts run
- Run coordinator → Config manager: loads settings
- Run coordinator → Config resolver: resolves options
- Run coordinator → Media discovery: discovers files
- Run coordinator → Balanced pipeline: dispatches mode
- Run coordinator → Qwen pipeline: dispatches mode
- Run coordinator → Transformers pipeline: dispatches mode
- Run coordinator → Ensemble runner: dispatches ensemble
- Balanced pipeline → Audio extraction: extracts audio
- Balanced pipeline → Scene detection: detects scenes
- Balanced pipeline → Speech enhancement: prepares audio
- Balanced pipeline → Speech segmentation: segments speech
- Balanced pipeline → ASR engines: transcribes scenes
- Qwen pipeline → Subtitle pipeline: orchestrates subtitles
- Qwen pipeline → ASR engines: generates text
- Transformers pipeline → ASR engines: transcribes audio
- Ensemble runner → Balanced pipeline: runs pass
- Ensemble runner → Qwen pipeline: runs pass
- Subtitle pipeline → Subtitle post-processing: cleans subtitles
- Run coordinator → Subtitle post-processing: post-processes output
- Run coordinator → Subtitle output: writes subtitles
- Run coordinator → Run outcomes: records results
- User → Translation service: requests translation
- Translation service → Translation providers: uses provider
- Translation service → Ollama service: manages local models