# Deepgram

Deepgram speech AI: transcribe audio to text and synthesize speech (TTS).

- Repository: https://github.com/Anil-matcha/awesome-muse-connectors (1403 stars)
- Category: Media
- License: MIT
- Last updated: 2026-10-13
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Anil-matcha/awesome-muse-connectors --skill deepgram -g -a claude-code -y`
Codex: `npx skills add Anil-matcha/awesome-muse-connectors --skill deepgram -g -a codex -y`
Cursor: `npx skills add Anil-matcha/awesome-muse-connectors --skill deepgram -g -a cursor -y`
Gemini CLI: `npx skills add Anil-matcha/awesome-muse-connectors --skill deepgram -g -a gemini-cli -y`

## Description

Deepgram speech AI: transcribe audio to text and synthesize speech (TTS). Trigger phrases: deepgram, transcribe audio, speech to text, STT, deepgram tts.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Deepgram

## Purpose
Transcribe prerecorded audio files to text (with optional diarization, summaries, topics, sentiment) and synthesize speech with Deepgram's Aura voices. Reach for this when the user has an audio file to transcribe or wants spoken audio generated from text.

## Tooling
All commands go through `bin/deepgram.py`. Auth uses exactly `Authorization: Token <api_key>` (not Bearer); the CLI wires it through the credential surrogate.

```bash
bin/deepgram.py auth
# {"ok": true, "projects": 2} on success

bin/deepgram.py projects
# list Deepgram projects (id, name)

bin/deepgram.py transcribe --file meeting.wav
# upload a local audio file, print the transcript JSON

bin/deepgram.py transcribe --file call.mp3 --model nova-3 --diarize --summarize --topics --sentiment
# transcript with speaker labels plus summary, topics and sentiment

bin/deepgram.py tts --text "Thanks for listening." --out thanks.mp3
# synthesize with an Aura voice to a local MP3 file; prints the saved path
```

Notes:
- `transcribe` reads a local audio file, posts the bytes to `POST /v1/listen`, and prints the full transcript JSON. Content type is guessed from the file extension (wav, mp3, m4a, flac, ogg supported).
- `tts` posts `{"text": "..."}` to `POST /v1/speak?model=<model>&encoding=mp3` (default model `aura-2-thalia-en`, 2,000-char limit) and saves the audio to `--out` (default `deepgram-output.mp3`).
- Live WebSocket STT (`/v1/listen` streaming) is real-time and outside CLI scope.

## Auth
- Provider id: `deepgram` (credential is collected as `custom.deepgram`)
- Collection: Deepgram API key via the secure credential flow (`credentials.request_api_access`); create one in the Deepgram console
- Allowed hosts: `api.deepgram.com`
- Connect placement: `custom_header:Authorization` (the **stored credential value must be exactly `Token <api_key>`**, with the `Token ` prefix; Bearer is not accepted)
- Status check: `bin/deepgram.py auth`

The rest: https://github.com/Anil-matcha/awesome-muse-connectors/blob/HEAD/connectors/deepgram/SKILL.md
