marcela-voice

Builds and debugs a Gemini 2.5 Flash voice call agent using Twilio ConversationRelay, Deepgram STT, and ElevenLabs TTS.

Updated Mar 17, 2026
One-click install
npx skills add https://github.com/Norfolk-Group/marcela-norfolk-ai --skill marcela-voice-norfolk-group
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: marcela-voice
Source: https://github.com/Norfolk-Group/marcela-norfolk-ai/tree/main/skills/marcela-voice
Command: npx skills add https://github.com/Norfolk-Group/marcela-norfolk-ai --skill marcela-voice-norfolk-group

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires google-genai, python-multipart, starlette.

What problem does it solve? Building a low-latency inbound voice call agent requires coordinating speech-to-text, a streaming LLM, and text-to-speech over a single WebSocket pipeline, and small misconfigurations cause silent failures or high latency. This Skill provides the architecture, constraints, and debugging checklist for the Marcela voice agent. ## Core Features & Use Cases - Streaming Voice Pipeline: Connects Twilio ConversationRelay, Deepgram nova-3 STT, Gemini 2.5 Flash streaming, and ElevenLabs Flash 2.5 TTS over one Starlette server port. - Call Screening Logic: Implements layered transfer rules that qualify callers, block spam and recruiters, and route priority contacts to Ricardo. - Multilingual Support: Auto-detects English, Portuguese, Spanish, and Italian with dedicated ElevenLabs voices per language. - Use Case: A developer deploying the agent to Railway hits a form-parsing error; the Skill points to the missing python-multipart dependency and the single-port constraint immediately. ## Quick Start Ask the assistant to help debug or extend the Marcela voice agent, for example by checking why the Twilio webhook is not reaching the WebSocket endpoint.

Frequently Asked Questions about marcela-voice

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a low-latency voice AI agent with Twilio and Gemini?

Use Twilio ConversationRelay to stream Deepgram transcriptions over a WebSocket to Gemini 2.5 Flash, then stream response tokens back for ElevenLabs TTS. Buffer tokens and send them at sentence boundaries for natural speech.

How do I serve HTTP and WebSocket on one port with Starlette?

Starlette natively handles HTTP and WebSocket routes on a single port, which is required on platforms like Railway that expose only one port. Define both route types in the same application instance.

Why does Starlette form parsing fail in my voice server?

Starlette form parsing fails when python-multipart is missing from requirements.txt. Twilio webhooks send form-encoded data, so this package must be installed for the server to parse incoming requests.

How do I reduce latency in a streaming voice AI pipeline?

Reducing output token count has roughly 50 times more latency impact than shrinking the prompt. Keep responses short and stream tokens at sentence boundaries rather than token-by-token.

Can a voice agent detect and switch languages mid-call?

Yes, Deepgram's multi mode detects the caller's language automatically, and the agent switches to a dedicated ElevenLabs voice for English, Portuguese, Spanish, or Italian during the conversation.