Build multi-modal AI applications using our new open-source Vision AI SDK.

Voice-Enabled App in Python: Grok-4 + Fish Audio + Deepgram

2 min read
Amos G.
Amos G.
Published January 16, 2026

Use xAI's Grok-4 with Fish Audio's high-quality, expressive TTS and Deepgram's fast STT to create a Siri-like experience.

The quick video demonstrates a voice agent to human conversation, chaining together the various AI providers in Vision Agents.

AI Services Required

You'll need Stream credentials and API keys from the following.

bash
1
2
3
4
5
6
XAI_API_KEY=... FISH_AUDIO_API_KEY=... DEEPGRAM_API_KEY=... STREAM_API_KEY=... STREAM_API_SECRET=... EXAMPLE_BASE_URL=https://pronto-staging.getstream.io

Set Up the Project

Create a new Python project, install Vision Agents and the requied plugins as dependencies.

bash
1
2
3
4
5
6
7
uv init grok-voice-agent cd grok-voice-agent uv add vision-agents uv add "vision-agents[getstream, deepgram, smart-turn]" # Fish Audio plugin (assuming it's available; check pypi or visionagents.ai for latest) uv pip install vision-agents-plugins-fish

Create Your Siri-Like Agent

python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import asyncio import os from vision_agents import Agent, register from vision_agents.llm import XAILLM # or OpenRouterLLM for Grok-4 from vision_agents.tts import FishAudioTTS from vision_agents.stt import DeepgramSTT from vision_agents.turn_detection import SmartTurn from vision_agents.stream import StreamVideoCall async def main(): # 1. Grok-4 LLM (use xAI direct or OpenRouter) llm = XAILLM( api_key=os.getenv("XAI_API_KEY"), model="grok-4" # or "grok-4-fast" for optimized version ) # 2. Voice components tts = FishAudioTTS( api_key=os.getenv("FISH_AUDIO_API_KEY"), reference_id="your_reference_voice_id" # optional for cloned/custom voice ) stt = DeepgramSTT(api_key=os.getenv("DEEPGRAM_API_KEY")) turn_detector = SmartTurn() # 3. Create the agent with Grok personality agent = Agent( llm=llm, tts=tts, stt=stt, turn_detector=turn_detector, name="Grok Voice Agent", system_prompt=""" You are Grok, built by xAI. Be helpful, witty, and maximally truthful. Respond naturally in conversation, just like in the Grok chatbot. """ ) # 4. Register agent and launch Stream call register(agent) call = StreamVideoCall( api_key=os.getenv("STREAM_API_KEY"), api_secret=os.getenv("STREAM_API_SECRET"), call_type="default", call_id="grok-voice-demo" ) await call.join() print("Voice AI app ready! Open this URL in your browser:") print(call.url) # 5. Run the agent await agent.run(call) if __name__ == "__main__": asyncio.run(main())

Run this Python script to open Stream Video call UI to speak with the agent consisting of Grok-4, Deepgram, and Fish Audio communication pipeline.

Scaling WebRTC Video to 100,000 Participants
View Stream's latest Video API benchmark and the architecture that powers performance at scale.