podcast-generation
oleh microsoft
Hasilkan narasi audio bergaya podcast bertenaga AI menggunakan model GPT Realtime Mini milik Azure OpenAI melalui WebSocket. Gunakan saat membangun fitur teks-ke-ucapan, audio…
npx skills add https://github.com/microsoft/agent-skills --skill podcast-generationPodcast Generation with GPT Realtime Mini
Generate real audio narratives from text content using Azure OpenAI's Realtime API.
Quick Start
- Configure environment variables for Realtime API
- Connect via WebSocket to Azure OpenAI Realtime endpoint
- Send text prompt, collect PCM audio chunks + transcript
- Convert PCM to WAV format
- Return base64-encoded audio to frontend for playback
Environment Configuration
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
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
// 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 chunkresponse.output_audio_transcript.delta- Transcript textresponse.done- Generation completeerror- Handle withevent.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
Lebih banyak skill dari microsoft
oss-growth
microsoft
Persona peretas pertumbuhan OSS
official
microsoft-foundry
microsoft
Menyebarkan, mengevaluasi, dan mengelola agen Foundry secara menyeluruh: pembuatan Docker, push ACR, pembuatan agen yang dihosting/dengan prompt, memulai kontainer, evaluasi batch, evaluasi berkelanjutan, alur kerja pengoptimal prompt, agent.yaml, kurasi kumpulan data dari jejak. GUNAKAN UNTUK: menyebarkan agen ke Foundry, agen yang dihosting, membuat agen, memanggil agen, mengevaluasi agen, menjalankan evaluasi batch, evaluasi berkelanjutan, pemantauan berkelanjutan, status evaluasi berkelanjutan, mengoptimalkan prompt, meningkatkan prompt, pengoptimal prompt, mengoptimalkan instruksi agen, meningkatkan agen...
officialdevelopmentdevops
azure-ai
microsoft
Gunakan untuk Azure AI: Search, Speech, OpenAI, Document Intelligence. Membantu pencarian, pencarian vektor/hibrida, ucapan-ke-teks, teks-ke-ucapan, transkripsi, OCR. KAPAN: AI Search, pencarian kueri, pencarian vektor, pencarian hibrida, pencarian semantik, ucapan-ke-teks, teks-ke-ucapan, transkripsi, OCR, konversi teks ke ucapan.
officialdevelopmentapi
azure-deploy
microsoft
Jalankan deployment Azure untuk aplikasi yang SUDAH DISIAPKAN dan memiliki file .azure/deployment-plan.md serta infrastruktur yang sudah ada. JANGAN gunakan skill ini saat pengguna meminta untuk MEMBUAT aplikasi baru — gunakan azure-prepare sebagai gantinya. Skill ini menjalankan perintah azd up, azd deploy, terraform apply, dan az deployment dengan pemulihan kesalahan bawaan. Membutuhkan .azure/deployment-plan.md dari azure-prepare dan status tervalidasi dari azure-validate. KAPAN: "jalankan azd up", "jalankan azd deploy", "jalankan deployment",...
officialdevopsaws
azure-storage
microsoft
Layanan Azure Storage termasuk Blob Storage, File Shares, Queue Storage, Table Storage, dan Data Lake. Menjawab pertanyaan tentang tingkat akses penyimpanan (hot, cool, cold, archive), kapan menggunakan setiap tingkat, dan perbandingan tingkat. Menyediakan penyimpanan objek, berbagi file SMB, pengiriman pesan asinkron, NoSQL key-value, dan analitik big data. Termasuk manajemen siklus hidup. GUNAKAN UNTUK: blob storage, file shares, queue storage, table storage, data lake, unggah file, unduh blob, akun penyimpanan, tingkat akses,...
officialdevelopmentdatabase
azure-diagnostics
microsoft
Debug masalah produksi Azure menggunakan AppLens, Azure Monitor, resource health, dan triase aman. KAPAN: debug masalah produksi, troubleshoot app service, CPU tinggi app service, kegagalan deployment app service, troubleshoot container apps, troubleshoot functions, troubleshoot AKS, kubectl tidak bisa terhubung, kegagalan kube-system/CoreDNS, pod pending, crashloop, node tidak siap, kegagalan upgrade, analisis log, KQL, insights, kegagalan image pull, masalah cold start, kegagalan health probe,...
officialdevopsdevelopment
azure-prepare
microsoft
Siapkan aplikasi Azure untuk deployment (infra Bicep/Terraform, azure.yaml, Dockerfiles). Gunakan untuk membuat/memodernisasi atau membuat+men-deploy; bukan untuk migrasi lintas-cloud (gunakan azure-cloud-migrate). JANGAN GUNAKAN UNTUK: aplikasi copilot-sdk (gunakan azure-hosted-copilot-sdk). KAPAN: "membuat aplikasi", "membangun aplikasi web", "membuat API", "membuat API HTTP serverless", "membuat frontend", "membuat backend", "membangun layanan", "memodernisasi aplikasi", "memperbarui aplikasi", "menambahkan autentikasi", "menambahkan caching", "hosting di Azure", "membuat dan...
officialdevelopmentdevops
azure-validate
microsoft
Validasi pra-penyebaran untuk kesiapan Azure. Lakukan pemeriksaan mendalam pada konfigurasi, infrastruktur (Bicep atau Terraform), penetapan peran RBAC, izin identitas terkelola, dan prasyarat sebelum menyebarkan. KAPAN: validasi aplikasi saya, periksa kesiapan penyebaran, jalankan pemeriksaan awal, verifikasi konfigurasi, periksa apakah siap untuk menyebarkan, validasi azure.yaml, validasi Bicep, uji sebelum menyebarkan, pecahkan kesalahan penyebaran, validasi Azure Functions, validasi function app, validasi serverless...
officialdevopstesting