Speech Transcribe
Use the native audio_transcribe tool when the user asks to transcribe,
caption, diarize, timestamp, or identify speakers in an audio or video clip.
Workflow
- Call
audio_transcribe with action: "list" if you need provider
readiness or the user asks what is configured.
- Pass
audio as a current attachment filename/ref, /workspace path,
/discord-media-cache path, /uploaded-media-cache path, or HTTPS media
URL.
- Use
provider: "auto" unless the user asks for openai, deepgram, or
assemblyai, or unless diarization is required. Auto mode honors the tenant
skills.speechToText.defaultProvider config when it is set. Prefer Deepgram
or AssemblyAI for speaker labels.
- Pass
language only when the user gives a known language. Omit it for
provider language detection.
- Set
diarization: true when the user asks for speaker labels.
- Set
timestamps to word, segment, or none based on the request.
- Return the structured result fields that matter: transcript text, provider,
detected language, duration, cost, warnings, and artifact paths.
The native tool owns provider credentials, provider fallback, output schema,
long-audio chunking for local and remote OpenAI uploads when ffmpeg/ffprobe
are available, transcript artifact persistence, and usage-cost accounting.
Output Contract
The tool returns JSON shaped like:
{
"text": "Transcript text",
"segments": [{ "start": 0, "end": 1.2, "speaker": "speaker_0", "text": "..." }],
"language": "en",
"provider": "deepgram",
"duration_sec": 12.3,
"cost_usd": 0.001
}
Transcript text and segment JSON are also persisted as private workspace
artifacts. Treat transcripts as operator-private until the user explicitly asks
to share, post, email, or publish them.
1---2name: speech-transcribe3description: Transcribe audio with the native audio_transcribe tool, including provider override, diarization, timestamps, language detection, and transcript artifacts.4---56# Speech Transcribe78Use the native `audio_transcribe` tool when the user asks to transcribe,9caption, diarize, timestamp, or identify speakers in an audio or video clip.1011## Workflow12131. Call `audio_transcribe` with `action: "list"` if you need provider14 readiness or the user asks what is configured.152. Pass `audio` as a current attachment filename/ref, `/workspace` path,16 `/discord-media-cache` path, `/uploaded-media-cache` path, or HTTPS media17 URL.183. Use `provider: "auto"` unless the user asks for `openai`, `deepgram`, or19 `assemblyai`, or unless diarization is required. Auto mode honors the tenant20 `skills.speechToText.defaultProvider` config when it is set. Prefer Deepgram21 or AssemblyAI for speaker labels.224. Pass `language` only when the user gives a known language. Omit it for23 provider language detection.245. Set `diarization: true` when the user asks for speaker labels.256. Set `timestamps` to `word`, `segment`, or `none` based on the request.267. Return the structured result fields that matter: transcript text, provider,27 detected language, duration, cost, warnings, and artifact paths.2829The native tool owns provider credentials, provider fallback, output schema,30long-audio chunking for local and remote OpenAI uploads when `ffmpeg`/`ffprobe`31are available, transcript artifact persistence, and usage-cost accounting.3233## Output Contract3435The tool returns JSON shaped like:3637```json38{39 "text": "Transcript text",40 "segments": [{ "start": 0, "end": 1.2, "speaker": "speaker_0", "text": "..." }],41 "language": "en",42 "provider": "deepgram",43 "duration_sec": 12.3,44 "cost_usd": 0.00145}46```4748Transcript text and segment JSON are also persisted as private workspace49artifacts. Treat transcripts as operator-private until the user explicitly asks50to share, post, email, or publish them.