К основному содержанию
скилл Claude Code GitHub Copilot

podcast-generation · microsoft — скилл для Claude Code: обзор и установка

Генерирует озвучку текстов в формате подкаста через модель Azure OpenAI GPT Realtime Mini по WebSocket. Помогает настроить стриминг аудио от FastAPI до React.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add microsoft/skills --skill podcast-generation -a claude-code
Открыть на GitHub

Что делает podcast-generation

Скилл содержит архитектурные инструкции и примеры кода для сквозной генерации аудиоисторий. На бэкенде используется Python с библиотекой AsyncOpenAI, которая подключается к модели gpt-realtime-mini по протоколу WebSocket. Агент получает инструкции по обработке событий стриминга, сборке фрагментов PCM-аудио (24 кГц, 16 бит, моно) и их конвертации в WAV с помощью скрипта scripts/pcm_to_wav.py.

Для клиентской части скилл предлагает паттерны на React: декодирование base64-строки в Blob и воспроизведение через Web Audio API. Доступны шесть вариантов голоса: alloy, echo, fable, onyx, nova и shimmer. Текстовая расшифровка собирается параллельно через события транскрипции.

Для запуска понадобятся настроенный ресурс Azure OpenAI с деплоем gpt-realtime-mini, API-ключ и базовый endpoint без суффикса /openai/v1/. Ставить скилл стоит, если вы строите синтез речи со стримингом на стеке FastAPI и React.

Какие задачи решает

  • наладить стриминг аудио через Azure OpenAI Realtime API по WebSocket
  • преобразовать сырой поток PCM 24 кГц в формат WAV на бэкенде
  • воспроизвести полученный base64-звук на фронтенде в React
  • собрать текстовую расшифровку параллельно с генерацией голоса

Примеры запросов агенту

  • Настрой генерацию подкаста по тексту статьи через Azure OpenAI Realtime
  • Добавь в FastAPI WebSocket-клиент для модели gpt-realtime-mini с голосом nova
  • Сделай воспроизведение аудиопотока из base64 на React

Как установить podcast-generation

1Через Skills CLI (Vercel)

npx skills add microsoft/skills --skill podcast-generation -a claude-code

2Вручную: положить файлы

~/.claude/skills/podcast-generation/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/podcast-generation/

Из того же набора18

Весь набор →
Planner microsoft Planner изучает требования и кодовую базу, затем составляет план реализации без изменения кода. Подойдёт, если перед работой нужно определить затронутые файлы и этапы. Claude Code GitHub Copilot 406установок frontend-design-review microsoft Скилл проверяет и создаёт интерфейсы с учётом дизайна, доступности и дизайн-системы. Подходит для ревью UI, PR и адаптивной вёрстки. Claude Code GitHub Copilot 237установок deploy microsoft Запускает развёртывание проверенных IaC-шаблонов в Azure и проверяет состояние ресурсов. Срабатывает автоматически на четвертом шаге оркестратора azure-app-onboard. Claude Code GitHub Copilot 126установок microsoft-docs microsoft Скилл отвечает на вопросы о технологиях Microsoft через официальную документацию. Подойдёт для туториалов, настроек, лимитов и разбора концепций. Claude Code GitHub Copilot 118установок cloud-solution-architect microsoft Превращает ИИ-агента в архитектора облачных решений по стандартам Azure Architecture Center. Помогает выбирать архитектурные стили и проверять дизайн систем по правилам WAF. Claude Code GitHub Copilot 117установок mcp-builder microsoft Пошаговое руководство по созданию MCP-серверов на TypeScript, Python и C# для интеграции сторонних API с языковыми моделями. Claude Code GitHub Copilot 108установок skill-creator microsoft Помогает создавать и обновлять скиллы для AI-агентов, особенно для Azure SDKs и Microsoft Foundry. Пригодится, когда нужен понятный каркас навыка. Claude Code GitHub Copilot 106установок continual-learning microsoft Скилл учит агента запоминать ошибки, паттерны и проектные соглашения между сессиями. Без него каждый запуск — с чистого листа; с ним агент накапливает опыт и работает точнее. Claude Code GitHub Copilot 79установок

Другие версии podcast-generation

Похожие

spinning-up-deep-rl Alireza Rezvani Скилл даёт Claude Code базу по deep RL, алгоритмам и отладке. Пригодится для разбора MDP, policy gradients и экспериментов с несколькими seed. Claude Code 8установок ai-elements официальный Vercel Labs Скилл подсказывает, как собирать AI-интерфейсы на React с компонентами ai-elements. Пригодится для чатов, потоковых ответов и отображения вызовов инструментов. CX Codex GP ChatGPT 7установок ai-gateway официальный Vercel Labs Помогает настроить Vercel AI Gateway: маршрутизацию между провайдерами, откат при сбоях и кеширование ответов. Пригодится при работе с AI SDK 6. CX Codex GP ChatGPT 6установок v0-dev официальный Vercel Labs Помогает генерировать интерфейсы на React через v0, подключать готовые компоненты в Next.js и автоматизировать деплой через v0 SDK. CX Codex GP ChatGPT 5установок ai-generation-persistence официальный Vercel Labs Помогает сохранять результаты запросов к LLM, присваивать им ID и открывать по адресу. Подойдёт для проектов с историей чатов или генераций. CX Codex GP ChatGPT 5установок ideate официальный OpenAI Скилл помогает создавать три самостоятельных визуальных направления по брифу Product Design. Пригодится для вариантов интерфейса и ремиксов. CX Codex GP ChatGPT 5установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. Claude Code Claude.ai 414 180установок writing-for-agents Matt Pocock Помогает писать скиллы и документы с инструкциями для агентов. Пригодится при правках AGENTS.md, CLAUDE.md и связанных справочных файлов. Claude Code 466 719установок

Вопросы о podcast-generation

Как установить podcast-generation в Claude Code?

Выполните команду npx skills add microsoft/skills --skill podcast-generation -a claude-code в терминале.

Что делает скилл podcast-generation?

Он предоставляет готовые шаблоны и инструкции для озвучивания текстов моделью gpt-realtime-mini через WebSocket с бэкендом на FastAPI и плеером на React.

Какие переменные окружения нужны для работы генерации?

Требуются AZURE_OPENAI_AUDIO_API_KEY, AZURE_OPENAI_AUDIO_ENDPOINT (только базовый URL без /openai/v1/) и AZURE_OPENAI_AUDIO_DEPLOYMENT.

Исходный текст

SKILL.md · MIT
---
name: podcast-generation
description: 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 creation from content, or integrating with Azure OpenAI Realtime API for real audio output. Covers full-stack implementation from React frontend to Python FastAPI backend with WebSocket streaming.
---

# 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](references/architecture.md) for complete stack design
- **Code examples**: See [references/code-examples.md](references/code-examples.md) for production patterns
- **PCM conversion**: Use [scripts/pcm_to_wav.py](scripts/pcm_to_wav.py) for audio format conversion

© microsoft · MIT · microsoft/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой