1---2name: audio-transcription3description: Transcribe local or remote audio into durable text and timestamp artifacts through PostPlus. Use this when the job is speech-to-text from audio files and you need request/response persistence, optional timestamps, and subtitle-ready outputs.4---56# Audio Transcription78## Use When9- The input is audio and the main job is speech-to-text, subtitle-ready timing,10 rough speech search, multilingual transcription, or durable transcript11 artifacts.12- Use `video-transcription` for video inputs and `video-analysis` for semantic13 video understanding.1415## Do Not Use When16- The task belongs to ideation, QA, or another released skill listed in the handoff section.17- Required inputs are missing and guessing would change the result.1819## Execution Boundary20- Hosted transcription runs through the public `postplus media transcribe` verb21 and is async. A submit records the run handle, current status, and completed22 artifacts when available.23- Pass a local path, HTTPS URL, existing PostPlus media reference, or data URI24 directly to `--audio`. The CLI validates and prepares local media before the25 single hosted submit.26- A higher-quality default model and a faster, cheaper variant are available;27 prefer the default when subtitle quality matters and use the cheaper variant28 for an explicit rough pass. The generated example below shows the default29 endpoint key.3031## Source And Path32- Supply the media duration so PostPlus can validate the request before it runs;33 a missing duration fails before submission.34- Request timestamps when the output will feed subtitles or edit decisions.35- Start with one source file or audio URL before larger batches.36- Keep internal requests, responses, manifests, normalized transcripts, and37 downloaded artifacts under `.postplus/audio-transcription`; keep final38 user-facing transcript exports outside `.postplus`.3940## Handoff41- If status is pending, return the manifest path, the `output.data.id` generation42 handle, and the poll command `postplus media poll --handle <output.data.id>`43 (waits in-command up to 45s per invocation; rerun while pending). Do not keep44 the conversation open just to poll.45- When completed, hand off downloaded artifacts and `normalizedTranscriptPath`46 to `subtitle-packager` if SRT/ASS is needed.4748## Stop Conditions49- Stop when required user intent, source evidence, or owned input artifacts are50 missing and guessing would change the result.51- If an owned CLI or script command fails, report the exact error and stop. Do52 not bypass the failure with metadata-only answers, readiness probing, local53 payload rewrites, alternate execution paths, or unpublished tools.5455## Public Command Boundary5657- Choose the smallest matching command or workflow from the user input and run58 it directly.59- Readiness diagnostics: `postplus doctor --skill audio-transcription`.60- If an owned CLI or script command fails, report the exact error and stop. Do61 not bypass the failure with metadata-only answers, readiness probing, local62 payload rewrites, alternate execution paths, or unpublished tools.63- Use `postplus media schema --json` only when you need the full endpoint, flag,64 and enum contract or are repairing an unknown request shape.65- Run the hosted transcription job with the generated command below; do not use66 another execution interface.67- Pass the source directly through `--audio`; do not pre-upload it or construct68 a manual request object.6970<!-- BEGIN GENERATED EXECUTION EXAMPLE -->71```bash72postplus media transcribe transcription \73 --audio ./reference.wav \74 --duration-seconds 1 \75 --wait \76 --output ./result.json77```78<!-- END GENERATED EXECUTION EXAMPLE -->7980- If the CLI returns a quote-confirmation challenge, run `postplus quote confirm --json --challenge-file <challenge.json>` and retry with the returned token.