Azure Realtime Podcast Studio
Turn text into playable podcast-style audio with Azure OpenAI Realtime API.
The evidence uses environment variables for the Azure API key and sends content to an external Azure service over WebSocket. It does not document least-privilege permissions, user confirmation, outbound disclosure of sensitive content, access control, quotas, abuse controls, deletion, or rollback. No explicit red-line risk is shown, so a baseline score is retained, but incomplete data-flow and recovery controls reduce it.
The evidence provides an end-to-end example, error-event handling, and a PCM-to-WAV script. However, there are no skill-specific tests or reproducible runs; voice_name is accepted but never applied to the realtime session, style and source_type lack strict validation, and empty data, configuration failures, and database failures are insufficiently handled. The static cap keeps this below 10, with further deductions for incomplete key-path behavior.
The evidence clearly targets React, FastAPI, and Azure OpenAI Realtime API podcast/audio-narrative scenarios, with documented inputs, outputs, and major events. It does not define non-fit cases, precise trigger boundaries, browser compatibility, deployment prerequisites, or Chinese-language behavior, and it depends on reachability of Azure services. This supports only a mid-range score.
The evidence includes a quick start, environment variables, architecture, code examples, event and audio-format notes, plus repository-level MIT licensing, official organizational provenance, and general CI signals. The skill lacks dependency installation guidance, version pinning, changelog, explicit maintenance ownership, troubleshooting, known limitations, and FAQs; some production constraints are also implicit. These gaps reduce the score.
The evidence offers directly reusable patterns from text through PCM, WAV, Base64, backend response, and frontend playback, covering the core concept. Significant engineering work remains for dependency setup, route integration, authentication, validation, failure recovery, persistence strategy, voice_name implementation, and production security. Under static calibration this is near, but does not exceed, 7.
The evidence is auditable fixed source material containing implementation code, a conversion script, and repository workflows. The supplied tests primarily cover the generic Copilot harness rather than podcast-generation key paths, and there are no third-party execution results or independent corroboration. This supports limited verifiability under the static cap.
- The workflow sends source content to Azure OpenAI but does not define sensitive-data screening, user consent, log redaction, or retention controls.
- voice_name is exposed by the interface but is not applied to the Realtime session; style, source_type, and empty-content validation are not clearly specified.
- The endpoint, model name, SDK API, and event names are not version-pinned or compatibility-verified in the skill; mainland-China reachability and regional availability are undocumented.
- The example stores complete Base64 WAV data in the database, which may cause storage growth, and provides no cancellation, timeout cleanup, or failure-rollback strategy.
What it does & when to use it
This skill helps developers generate podcast-style audio narratives from text with Azure OpenAI GPT Realtime Mini over WebSocket. It covers a full-stack pattern spanning a React frontend and Python FastAPI backend. The backend collects streamed PCM audio and transcript deltas, converts the audio to WAV, and returns Base64 data for browser playback. It fits applications that need real audio output rather than text-only narration.
Reads a text prompt, connects to an Azure OpenAI Realtime WebSocket endpoint, sends a narration request, collects response.output_audio.delta audio events and response.output_audio_transcript.delta transcript events, and stops on response.done; converts 24kHz, 16-bit, mono PCM into WAV; returns Base64-encoded audio for the frontend, which converts it into a Blob and plays it through an object URL.
- A content developer turning articles or other text into podcast-style audio.
- A full-stack developer adding text-to-speech to a React and Python FastAPI application.
- An engineering team integrating streamed audio generation through the Azure OpenAI Realtime API.
- An application that needs both generated audio and its accompanying transcript.
Pros & cons
- Provides an end-to-end React plus FastAPI pattern from generation through browser playback.
- Specifies environment variables, WebSocket URL conversion, Realtime events, and audio format.
- Lists six voice options and points to a PCM-to-WAV reference script.
- The README test-coverage summary reports 8 scenarios for this skill.
- Requires the Azure OpenAI Realtime API, GPT Realtime Mini, and network access.
- Does not document pricing, quotas, alternative authentication methods, or deployment configuration.
- References Python, FastAPI, React, and the OpenAI Python SDK without supplying a complete dependency installation manifest.
- The material focuses on the audio-generation workflow and does not establish platform-specific integrations beyond generic Agent Skills packaging.
How to install
Run npx skills add microsoft/skills in the project and select podcast-generation in the installation wizard. Skills are installed into the selected agent directory, such as .github/skills/ for GitHub Copilot. The README does not provide a standalone installation command for this skill.
How to use
Set AZURE_OPENAI_AUDIO_API_KEY, AZURE_OPENAI_AUDIO_ENDPOINT, and AZURE_OPENAI_AUDIO_DEPLOYMENT=gpt-realtime-mini. The endpoint must be the base URL and must not include /openai/v1/. Example trigger: Design a React + FastAPI implementation for generating audio from text with Azure OpenAI Realtime. Follow the workflow to connect over WebSocket, collect audio and transcript events, convert PCM to WAV, and play the result in the browser.