Local Chinese transcription¶
A local task prepares audio, chunks it, runs ASR, merges results, applies auditable corrections, and writes reading documents and QA. Local-only requires no model API key and does not upload audio to a summary service.
The validated primary path uses Apple Silicon, MLX Whisper, and large-v3-turbo for Chinese podcasts. These examples explicitly select zh to reproduce it. Other language choices do not imply the same validation evidence.
Before starting¶
- Confirm audio exists; subscription metadata can still show Audio pending.
- Run doctor for backend, weights, and tools.
- Select model/profile and spoken language.
- Test a short recording locally first.
App and CLI¶
Choose Transcribe locally only, or Command-Return in Swift. An explicit local reprocess uses Command-Shift-Return. Follow task stages; a download or chunk completing is not final task success.
atot exec transcribe path/to/episode.m4a --language zh --local-only --json
Use language auto to override stored hints. Current source supports repeated language flags; omission uses saved settings. ASR preserves speech rather than applying summary/subtitle translation language.
Work artifacts¶
| File | Purpose |
|---|---|
| transcript.corrected.txt | Faithful corrected text |
| transcript.readable.md | Deterministic reading layout |
| transcript.timestamped.md | Locate passages |
| transcript.srt / transcript.vtt | Timed captions |
| qa.json | Automated findings |
| corrections.json | Change audit |
| review.json / entity_consistency.json | Terminology/entity review |
| run.json | Source, model/backend, language requests, cache identity, evidence |
The library receives documents/transcript.md. Detailed evidence stays in the returned work directory used for QA/repair.
Long audio and chunks¶
Auto uses fixed windows for short audio and silence-aware boundaries for longer recordings. Start with defaults. For controlled experiments, durations are seconds:
atot exec transcribe path/to/episode.m4a --language zh --local-only \
--chunking smart --chunk-length 900 --max-chunk-length 1200 --overlap 10
| Option | Meaning |
|---|---|
| chunking auto/fixed/smart | Boundary strategy |
| chunk-length | Target duration |
| max-chunk-length | Smart maximum |
| silence-threshold | Silence threshold |
| min-silence | Minimum boundary silence |
| overlap | Context between chunks |
Overlap provides context; merging chooses retained segments. Do not concatenate overlapped transcripts as independent passages.
Caching and reprocessing¶
Source, model, decode parameters, selected hints, and effective prompt participate in cache identity. Saving settings does not rewrite existing documents. Explicit rebuild:
atot exec transcribe path/to/episode.m4a --language zh --local-only --force
Force is the current option, not force-transcribe. Reprocessing can replace work and the published transcript; back up versions you need. An older summary may no longer describe the new transcript, so check it and request regeneration deliberately.
Context and corrections¶
Use prompt-file/glossary-file for explicit context and repeatable rule-pack for shared rules. Corrections should be narrow and auditable, not a global replacement derived from a noisy result.
Current source avoids default Chinese-only prompts in auto/mixed/non-Chinese runs while preserving explicit custom context. QA guides review; verify important names, numbers, and quotes against audio.