Execute AssemblyAI streaming transcription and LeMUR workflows.
Use when implementing real-time speech-to-text, live captions,
voice agents, or LLM-powered audio analysis with LeMUR.
Trigger with phrases like "assemblyai streaming", "assemblyai real-time",
"assemblyai live transcription", "assemblyai LeMUR", "assemblyai summarize audio".
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Execute AssemblyAI streaming transcription and LeMUR workflows.
Use when implementing real-time speech-to-text, live captions,
voice agents, or LLM-powered audio analysis with LeMUR.
Trigger with phrases like "assemblyai streaming", "assemblyai real-time",
"assemblyai live transcription", "assemblyai LeMUR", "assemblyai summarize audio".
Two advanced workflows: (1) real-time streaming transcription via WebSocket for live captioning and voice agents, and (2) LeMUR for applying LLMs to transcripts — summarization, Q&A, action items, and custom tasks.
// Server-side: generate a short-lived token for the browserconst token = await client.streaming.createTemporaryToken({
expires_in_seconds: 300, // 5 minutes
});
// Send `token` to your frontend// Client-side uses token instead of API key:// const transcriber = new StreamingTranscriber({ token: receivedToken });
Step 4: Streaming with Word Boost and Speaker Labels
// First transcribe (or use an existing transcript_id)const transcript = await client.transcripts.transcribe({
audio: 'https://example.com/meeting.mp3',
});
// Summarize with LeMURconst { response } = await client.lemur.summary({
transcript_ids: [transcript.id],
context: 'This is a weekly engineering standup meeting.',
answer_format: 'bullet points',
});
console.log('Summary:', response);
Step 6: Ask Questions About Audio
const { response: answers } = await client.lemur.questionAnswer({
transcript_ids: [transcript.id],
questions: [
{ question: 'What decisions were made?', answer_format: 'list' },
{ question: 'Were there any blockers discussed?', answer_format: 'short sentence' },
{ question: 'Who owns the next action items?', answer_format: 'list' },
],
});
for (const qa of answers) {
console.log(`Q: ${qa.question}`);
console.log(`A: ${qa.answer}\n`);
}
Step 7: Extract Action Items
const { response: actionItems } = await client.lemur.actionItems({
transcript_ids: [transcript.id],
context: 'This is a product planning meeting.',
answer_format: 'Each action item should include the owner and deadline.',
});
console.log('Action Items:', actionItems);
Step 8: Custom LeMUR Task
const { response } = await client.lemur.task({
transcript_ids: [transcript.id],
prompt: `Analyze this customer support call and provide:
1. Customer sentiment (positive/neutral/negative)
2. Issue category
3. Resolution status
4. CSAT prediction (1-5)
Format as JSON.`,
});
const analysis = JSON.parse(response);
console.log(analysis);
Step 9: Multi-Transcript Analysis
// LeMUR can analyze up to 100 hours of audio in a single requestconst transcriptIds = [
'transcript-1', 'transcript-2', 'transcript-3',
];
const { response } = await client.lemur.task({
transcript_ids: transcriptIds,
prompt: 'Compare themes across these three customer interviews. What patterns emerge?',
});
console.log(response);
Streaming Specifications
Spec
Value
Audio format
16-bit PCM, mono
Sample rates
8000, 16000, 22050, 44100, 48000 Hz
Latency (P50)
~300ms
Max concurrent streams (free)
5 new/min
Max concurrent streams (paid)
100 new/min, auto-scales 10%/60s
Languages
99+ (with Universal-3)
Models
nova-3 (default), nova-3-pro (highest accuracy)
Output
Real-time partial and final transcripts via WebSocket