## §OIP SYSTEM ARTICLE — Voice (4 operations)
A generated article for one OIP shelf. It lists every operation in this API/CLI/MCP/device/model/core subsystem, links each leaf article, and gives the ledger path for proof.

### Read Order
- scan operations
- open a leaf doc
- run via run_now or POST /api/dispatch
- open receipt
- repair/replay if needed

### Operations
- **VOICE_SAY** — Make a spoken-audio FILE and return its public URL (does NOT send it). INVOKE: [VOICE_SAY]<text>|<voice>[/VOIC
  when: you need to voice say
  args: $1 | $2
  doc: https://miscsubjects.com/api/dispatch?key=VOICE_SAY&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=VOICE_SAY&body=%3Carg1%3E%7C%3Carg2%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=VOICE_SAY
- **VOICE_TRANSCRIBE** — Transcribe inbound audio to TEXT (OpenAI whisper-1). INVOKE: [VOICE_TRANSCRIBE]<public_audio_url>[/VOICE_TRANS
  when: you need to voice transcribe
  args: $1
  doc: https://miscsubjects.com/api/dispatch?key=VOICE_TRANSCRIBE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=VOICE_TRANSCRIBE&body=%3Carg1%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=VOICE_TRANSCRIBE
- **VOICE_SEND** — Speak a reply INTO a chat (recommended audio-out). INVOKE: [VOICE_SEND]<chat>|<words to speak>|<voice>[/VOICE_
  when: you need to voice send
  args: $1 | $2 | $3
  doc: https://miscsubjects.com/api/dispatch?key=VOICE_SEND&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=VOICE_SEND&body=%3Carg1%3E%7C%3Carg2%3E%7C%3Carg3%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=VOICE_SEND
- **VOICE** — 
  doc: https://miscsubjects.com/api/dispatch?key=VOICE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=VOICE&body=%3Cyour%20request%20in%20plain%20words%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=VOICE

### Troubleshooting
- If a row's example has placeholders, replace only the placeholder values and preserve separators.
- If a call fails, open its receipt and repair it with POST /api/dispatch {key, body, repairs:'inv_ID'}.
- If token scope denies this system, ask the owner for a row:/rows:/pfx: token scoped to the exact operation set.

Back to the tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown