MR
Mayur Rathi
@mayurrathi
⭐ 40.7k GitHub stars

Podcast Generation

Podcast Generation is an data AI skill with a core value of Generate AI-powered podcast-style audio narratives using Azure OpenAI's GPT Realtime Mini model via WebSocket. It helps developers solve real-world problems in the data domain, boosting efficiency, automating repetitive tasks, and optimizing workflows.

Generate AI-powered podcast-style audio narratives using Azure OpenAI's GPT Realtime Mini model via WebSocket. Use when building text-to-speech features, audio narrative generation, podcast creatio...

Last verified on: 2026-07-07

Quick Facts

Category data
Works With Claude, ChatGPT
Source sickn33/antigravity-awesome-skills
Stars ⭐ 40.7k
Last Verified 2026-07-07
Risk Level Low
mkdir -p ./skills/podcast-generation && curl -sfL https://raw.githubusercontent.com/sickn33/antigravity-awesome-skills/main/skills/podcast-generation/SKILL.md -o ./skills/podcast-generation/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Podcast Generation with GPT Realtime Mini


Generate real audio narratives from text content using Azure OpenAI's Realtime API.


Quick Start


1. Configure environment variables for Realtime API

2. Connect via WebSocket to Azure OpenAI Realtime endpoint

3. Send text prompt, collect PCM audio chunks + transcript

4. Convert PCM to WAV format

5. Return base64-encoded audio to frontend for playback


Environment Configuration


env
AZURE_OPENAI_AUDIO_API_KEY=your_realtime_api_key
AZURE_OPENAI_AUDIO_ENDPOINT=https://your-resource.cognitiveservices.azure.com
AZURE_OPENAI_AUDIO_DEPLOYMENT=gpt-realtime-mini

**Note**: Endpoint should NOT include `/openai/v1/` - just the base URL.


Core Workflow


Backend Audio Generation


python
from openai import AsyncOpenAI
import base64

# Convert HTTPS endpoint to WebSocket URL
ws_url = endpoint.replace("https://", "wss://") + "/openai/v1"

client = AsyncOpenAI(
    websocket_base_url=ws_url,
    api_key=api_key
)

audio_chunks = []
transcript_parts = []

async with client.realtime.connect(model="gpt-realtime-mini") as conn:
    # Configure for audio-only output
    await conn.session.update(session={
        "output_modalities": ["audio"],
        "instructions": "You are a narrator. Speak naturally."
    })
    
    # Send text to narrate
    await conn.conversation.item.create(item={
        "type": "message",
        "role": "user",
        "content": [{"type": "input_text", "text": prompt}]
    })
    
    await conn.response.create()
    
    # Collect streaming events
    async for event in conn:
        if event.type == "response.output_audio.delta":
            audio_chunks.append(base64.b64decode(event.delta))
        elif event.type == "response.output_audio_transcript.delta":
            transcript_parts.append(event.delta)
        elif event.type == "response.done":
            break

# Convert PCM to WAV (see scripts/pcm_to_wav.py)
pcm_audio = b''.join(audio_chunks)
wav_audio = pcm_to_wav(pcm_audio, sample_rate=24000)

Frontend Audio Playback


javascript
// Convert base64 WAV to playable blob
const base64ToBlob = (base64, mimeType) => {
  const bytes = atob(base64);
  const arr = new Uint8Array(bytes.length);
  for (let i = 0; i < bytes.length; i++) arr[i] = bytes.charCodeAt(i);
  return new Blob([arr], { type: mimeType });
};

const audioBlob = base64ToBlob(response.audio_data, 'audio/wav');
const audioUrl = URL.createObjectURL(audioBlob);
new Audio(audioUrl).play();

Voice Options


| Voice | Character |

|-------|-----------|

| alloy | Neutral |

| echo | Warm |

| fable | Expressive |

| onyx | Deep |

| nova | Friendly |

| shimmer | Clear |


Realtime API Events


- `response.output_audio.delta` - Base64 audio chunk

- `response.output_audio_transcript.delta` - Transcript text

- `response.done` - Generation complete

- `error` - Handle with `event.error.message`


Audio Format


- **Input**: Text prompt

- **Output**: PCM audio (24kHz, 16-bit, mono)

- **Storage**: Base64-encoded WAV


References


- **Full architecture**: See references/architecture.md for complete stack design

- **Code examples**: See references/code-examples.md for production patterns

- **PCM conversion**: Use scripts/pcm_to_wav.py for audio format conversion


When to Use

This skill is applicable to execute the workflow or actions described in the overview.

🎯 Best For

  • Developers scaffolding new projects
  • Prototype builders
  • UI designers
  • Product designers
  • Claude users

💡 Use Cases

  • Bootstrapping React components
  • Creating API route handlers
  • Generating component mockups
  • Creating design system tokens

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or ChatGPT and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Podcast Generation to Your Work

    Provide context for your task — paste source material, describe your audience, or share existing work to guide the AI.

  4. 4

    Review and Refine

    Edit the AI output for accuracy, tone, and completeness. Add human insight where the AI lacks context.

❓ Frequently Asked Questions

Can I customize the generated output?

Yes — modify the skill's prompt instructions to match your project conventions and coding style.

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

How do I install Podcast Generation?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/podcast-generation/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Using generated code without understanding

Understand what generated code does before shipping it to production.

Skipping usability testing

AI-generated designs should be validated with real users before development.

Ignoring data quality

AI analysis inherits all data quality issues — profile your data first.

🔗 Related Skills