dv-pipecat-ai 0.0.82.dev70__py3-none-any.whl → 0.0.82.dev759__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dv-pipecat-ai might be problematic. Click here for more details.

Files changed (156) hide show
  1. {dv_pipecat_ai-0.0.82.dev70.dist-info → dv_pipecat_ai-0.0.82.dev759.dist-info}/METADATA +78 -117
  2. {dv_pipecat_ai-0.0.82.dev70.dist-info → dv_pipecat_ai-0.0.82.dev759.dist-info}/RECORD +156 -122
  3. pipecat/adapters/base_llm_adapter.py +38 -1
  4. pipecat/adapters/services/anthropic_adapter.py +9 -14
  5. pipecat/adapters/services/aws_nova_sonic_adapter.py +5 -0
  6. pipecat/adapters/services/bedrock_adapter.py +236 -13
  7. pipecat/adapters/services/gemini_adapter.py +12 -8
  8. pipecat/adapters/services/open_ai_adapter.py +19 -7
  9. pipecat/adapters/services/open_ai_realtime_adapter.py +5 -0
  10. pipecat/audio/filters/krisp_viva_filter.py +193 -0
  11. pipecat/audio/filters/noisereduce_filter.py +15 -0
  12. pipecat/audio/turn/base_turn_analyzer.py +9 -1
  13. pipecat/audio/turn/smart_turn/base_smart_turn.py +14 -8
  14. pipecat/audio/turn/smart_turn/data/__init__.py +0 -0
  15. pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx +0 -0
  16. pipecat/audio/turn/smart_turn/http_smart_turn.py +6 -2
  17. pipecat/audio/turn/smart_turn/local_smart_turn.py +1 -1
  18. pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +1 -1
  19. pipecat/audio/turn/smart_turn/local_smart_turn_v3.py +124 -0
  20. pipecat/audio/vad/data/README.md +10 -0
  21. pipecat/audio/vad/vad_analyzer.py +13 -1
  22. pipecat/extensions/voicemail/voicemail_detector.py +5 -5
  23. pipecat/frames/frames.py +217 -87
  24. pipecat/observers/loggers/debug_log_observer.py +3 -3
  25. pipecat/observers/loggers/llm_log_observer.py +7 -3
  26. pipecat/observers/loggers/user_bot_latency_log_observer.py +22 -10
  27. pipecat/pipeline/runner.py +12 -4
  28. pipecat/pipeline/service_switcher.py +64 -36
  29. pipecat/pipeline/task.py +85 -24
  30. pipecat/processors/aggregators/dtmf_aggregator.py +28 -22
  31. pipecat/processors/aggregators/{gated_openai_llm_context.py → gated_llm_context.py} +9 -9
  32. pipecat/processors/aggregators/gated_open_ai_llm_context.py +12 -0
  33. pipecat/processors/aggregators/llm_response.py +6 -7
  34. pipecat/processors/aggregators/llm_response_universal.py +19 -15
  35. pipecat/processors/aggregators/user_response.py +6 -6
  36. pipecat/processors/aggregators/vision_image_frame.py +24 -2
  37. pipecat/processors/audio/audio_buffer_processor.py +43 -8
  38. pipecat/processors/filters/stt_mute_filter.py +2 -0
  39. pipecat/processors/frame_processor.py +103 -17
  40. pipecat/processors/frameworks/langchain.py +8 -2
  41. pipecat/processors/frameworks/rtvi.py +209 -68
  42. pipecat/processors/frameworks/strands_agents.py +170 -0
  43. pipecat/processors/logger.py +2 -2
  44. pipecat/processors/transcript_processor.py +4 -4
  45. pipecat/processors/user_idle_processor.py +3 -7
  46. pipecat/runner/run.py +270 -50
  47. pipecat/runner/types.py +2 -0
  48. pipecat/runner/utils.py +51 -10
  49. pipecat/serializers/exotel.py +5 -5
  50. pipecat/serializers/livekit.py +20 -0
  51. pipecat/serializers/plivo.py +6 -9
  52. pipecat/serializers/protobuf.py +6 -5
  53. pipecat/serializers/telnyx.py +2 -2
  54. pipecat/serializers/twilio.py +43 -23
  55. pipecat/services/ai_service.py +2 -6
  56. pipecat/services/anthropic/llm.py +2 -25
  57. pipecat/services/asyncai/tts.py +2 -3
  58. pipecat/services/aws/__init__.py +1 -0
  59. pipecat/services/aws/llm.py +122 -97
  60. pipecat/services/aws/nova_sonic/__init__.py +0 -0
  61. pipecat/services/aws/nova_sonic/context.py +367 -0
  62. pipecat/services/aws/nova_sonic/frames.py +25 -0
  63. pipecat/services/aws/nova_sonic/llm.py +1155 -0
  64. pipecat/services/aws/stt.py +1 -3
  65. pipecat/services/aws_nova_sonic/__init__.py +19 -1
  66. pipecat/services/aws_nova_sonic/aws.py +11 -1151
  67. pipecat/services/aws_nova_sonic/context.py +13 -355
  68. pipecat/services/aws_nova_sonic/frames.py +13 -17
  69. pipecat/services/azure/realtime/__init__.py +0 -0
  70. pipecat/services/azure/realtime/llm.py +65 -0
  71. pipecat/services/azure/stt.py +15 -0
  72. pipecat/services/cartesia/tts.py +2 -2
  73. pipecat/services/deepgram/__init__.py +1 -0
  74. pipecat/services/deepgram/flux/__init__.py +0 -0
  75. pipecat/services/deepgram/flux/stt.py +636 -0
  76. pipecat/services/elevenlabs/__init__.py +2 -1
  77. pipecat/services/elevenlabs/stt.py +254 -276
  78. pipecat/services/elevenlabs/tts.py +5 -5
  79. pipecat/services/fish/tts.py +2 -2
  80. pipecat/services/gemini_multimodal_live/events.py +38 -524
  81. pipecat/services/gemini_multimodal_live/file_api.py +23 -173
  82. pipecat/services/gemini_multimodal_live/gemini.py +41 -1403
  83. pipecat/services/gladia/stt.py +56 -72
  84. pipecat/services/google/__init__.py +1 -0
  85. pipecat/services/google/gemini_live/__init__.py +3 -0
  86. pipecat/services/google/gemini_live/file_api.py +189 -0
  87. pipecat/services/google/gemini_live/llm.py +1582 -0
  88. pipecat/services/google/gemini_live/llm_vertex.py +184 -0
  89. pipecat/services/google/llm.py +15 -11
  90. pipecat/services/google/llm_openai.py +3 -3
  91. pipecat/services/google/llm_vertex.py +86 -16
  92. pipecat/services/google/tts.py +7 -3
  93. pipecat/services/heygen/api.py +2 -0
  94. pipecat/services/heygen/client.py +8 -4
  95. pipecat/services/heygen/video.py +2 -0
  96. pipecat/services/hume/__init__.py +5 -0
  97. pipecat/services/hume/tts.py +220 -0
  98. pipecat/services/inworld/tts.py +6 -6
  99. pipecat/services/llm_service.py +15 -5
  100. pipecat/services/lmnt/tts.py +2 -2
  101. pipecat/services/mcp_service.py +4 -2
  102. pipecat/services/mem0/memory.py +6 -5
  103. pipecat/services/mistral/llm.py +29 -8
  104. pipecat/services/moondream/vision.py +42 -16
  105. pipecat/services/neuphonic/tts.py +2 -2
  106. pipecat/services/openai/__init__.py +1 -0
  107. pipecat/services/openai/base_llm.py +27 -20
  108. pipecat/services/openai/realtime/__init__.py +0 -0
  109. pipecat/services/openai/realtime/context.py +272 -0
  110. pipecat/services/openai/realtime/events.py +1106 -0
  111. pipecat/services/openai/realtime/frames.py +37 -0
  112. pipecat/services/openai/realtime/llm.py +829 -0
  113. pipecat/services/openai/tts.py +16 -8
  114. pipecat/services/openai_realtime/__init__.py +27 -0
  115. pipecat/services/openai_realtime/azure.py +21 -0
  116. pipecat/services/openai_realtime/context.py +21 -0
  117. pipecat/services/openai_realtime/events.py +21 -0
  118. pipecat/services/openai_realtime/frames.py +21 -0
  119. pipecat/services/openai_realtime_beta/azure.py +16 -0
  120. pipecat/services/openai_realtime_beta/openai.py +17 -5
  121. pipecat/services/playht/tts.py +31 -4
  122. pipecat/services/rime/tts.py +3 -4
  123. pipecat/services/sarvam/tts.py +2 -6
  124. pipecat/services/simli/video.py +2 -2
  125. pipecat/services/speechmatics/stt.py +1 -7
  126. pipecat/services/stt_service.py +34 -0
  127. pipecat/services/tavus/video.py +2 -2
  128. pipecat/services/tts_service.py +9 -9
  129. pipecat/services/vision_service.py +7 -6
  130. pipecat/tests/utils.py +4 -4
  131. pipecat/transcriptions/language.py +41 -1
  132. pipecat/transports/base_input.py +17 -42
  133. pipecat/transports/base_output.py +42 -26
  134. pipecat/transports/daily/transport.py +199 -26
  135. pipecat/transports/heygen/__init__.py +0 -0
  136. pipecat/transports/heygen/transport.py +381 -0
  137. pipecat/transports/livekit/transport.py +228 -63
  138. pipecat/transports/local/audio.py +6 -1
  139. pipecat/transports/local/tk.py +11 -2
  140. pipecat/transports/network/fastapi_websocket.py +1 -1
  141. pipecat/transports/smallwebrtc/connection.py +98 -19
  142. pipecat/transports/smallwebrtc/request_handler.py +204 -0
  143. pipecat/transports/smallwebrtc/transport.py +65 -23
  144. pipecat/transports/tavus/transport.py +23 -12
  145. pipecat/transports/websocket/client.py +41 -5
  146. pipecat/transports/websocket/fastapi.py +21 -11
  147. pipecat/transports/websocket/server.py +14 -7
  148. pipecat/transports/whatsapp/api.py +8 -0
  149. pipecat/transports/whatsapp/client.py +47 -0
  150. pipecat/utils/base_object.py +54 -22
  151. pipecat/utils/string.py +12 -1
  152. pipecat/utils/tracing/service_decorators.py +21 -21
  153. {dv_pipecat_ai-0.0.82.dev70.dist-info → dv_pipecat_ai-0.0.82.dev759.dist-info}/WHEEL +0 -0
  154. {dv_pipecat_ai-0.0.82.dev70.dist-info → dv_pipecat_ai-0.0.82.dev759.dist-info}/licenses/LICENSE +0 -0
  155. {dv_pipecat_ai-0.0.82.dev70.dist-info → dv_pipecat_ai-0.0.82.dev759.dist-info}/top_level.txt +0 -0
  156. /pipecat/services/{aws_nova_sonic → aws/nova_sonic}/ready.wav +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.82.dev70
3
+ Version: 0.0.82.dev759
4
4
  Summary: An open source framework for voice (and multimodal) assistants
5
5
  License-Expression: BSD-2-Clause
6
6
  Project-URL: Source, https://github.com/pipecat-ai/pipecat
@@ -37,19 +37,19 @@ Requires-Dist: aic-sdk~=1.0.1; extra == "aic"
37
37
  Provides-Extra: anthropic
38
38
  Requires-Dist: anthropic~=0.49.0; extra == "anthropic"
39
39
  Provides-Extra: assemblyai
40
- Requires-Dist: websockets<15.0,>=13.1; extra == "assemblyai"
40
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "assemblyai"
41
41
  Provides-Extra: asyncai
42
- Requires-Dist: websockets<15.0,>=13.1; extra == "asyncai"
42
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "asyncai"
43
43
  Provides-Extra: aws
44
44
  Requires-Dist: aioboto3~=15.0.0; extra == "aws"
45
- Requires-Dist: websockets<15.0,>=13.1; extra == "aws"
45
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "aws"
46
46
  Provides-Extra: aws-nova-sonic
47
- Requires-Dist: aws_sdk_bedrock_runtime~=0.0.2; python_version >= "3.12" and extra == "aws-nova-sonic"
47
+ Requires-Dist: aws_sdk_bedrock_runtime~=0.1.0; python_version >= "3.12" and extra == "aws-nova-sonic"
48
48
  Provides-Extra: azure
49
49
  Requires-Dist: azure-cognitiveservices-speech~=1.42.0; extra == "azure"
50
50
  Provides-Extra: cartesia
51
51
  Requires-Dist: cartesia~=2.0.3; extra == "cartesia"
52
- Requires-Dist: websockets<15.0,>=13.1; extra == "cartesia"
52
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "cartesia"
53
53
  Provides-Extra: cerebras
54
54
  Provides-Extra: deepseek
55
55
  Provides-Extra: daily
@@ -57,28 +57,30 @@ Requires-Dist: daily-python~=0.19.9; extra == "daily"
57
57
  Provides-Extra: deepgram
58
58
  Requires-Dist: deepgram-sdk~=4.7.0; extra == "deepgram"
59
59
  Provides-Extra: elevenlabs
60
- Requires-Dist: websockets<15.0,>=13.1; extra == "elevenlabs"
60
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "elevenlabs"
61
61
  Provides-Extra: fal
62
62
  Requires-Dist: fal-client~=0.5.9; extra == "fal"
63
63
  Provides-Extra: fireworks
64
64
  Provides-Extra: fish
65
65
  Requires-Dist: ormsgpack~=1.7.0; extra == "fish"
66
- Requires-Dist: websockets<15.0,>=13.1; extra == "fish"
66
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "fish"
67
67
  Provides-Extra: gladia
68
- Requires-Dist: websockets<15.0,>=13.1; extra == "gladia"
68
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "gladia"
69
69
  Provides-Extra: google
70
- Requires-Dist: google-cloud-speech~=2.32.0; extra == "google"
71
- Requires-Dist: google-cloud-texttospeech~=2.26.0; extra == "google"
72
- Requires-Dist: google-genai~=1.24.0; extra == "google"
73
- Requires-Dist: websockets<15.0,>=13.1; extra == "google"
70
+ Requires-Dist: google-cloud-speech<3,>=2.33.0; extra == "google"
71
+ Requires-Dist: google-cloud-texttospeech<3,>=2.31.0; extra == "google"
72
+ Requires-Dist: google-genai<2,>=1.41.0; extra == "google"
73
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "google"
74
74
  Provides-Extra: grok
75
75
  Provides-Extra: groq
76
76
  Requires-Dist: groq~=0.23.0; extra == "groq"
77
77
  Provides-Extra: gstreamer
78
78
  Requires-Dist: pygobject~=3.50.0; extra == "gstreamer"
79
79
  Provides-Extra: heygen
80
- Requires-Dist: livekit>=0.22.0; extra == "heygen"
81
- Requires-Dist: websockets<15.0,>=13.1; extra == "heygen"
80
+ Requires-Dist: livekit>=1.0.13; extra == "heygen"
81
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "heygen"
82
+ Provides-Extra: hume
83
+ Requires-Dist: hume>=0.11.2; extra == "hume"
82
84
  Provides-Extra: inworld
83
85
  Provides-Extra: krisp
84
86
  Requires-Dist: pipecat-ai-krisp~=0.4.0; extra == "krisp"
@@ -89,15 +91,15 @@ Requires-Dist: langchain~=0.3.20; extra == "langchain"
89
91
  Requires-Dist: langchain-community~=0.3.20; extra == "langchain"
90
92
  Requires-Dist: langchain-openai~=0.3.9; extra == "langchain"
91
93
  Provides-Extra: livekit
92
- Requires-Dist: livekit~=0.22.0; extra == "livekit"
93
- Requires-Dist: livekit-api~=0.8.2; extra == "livekit"
94
+ Requires-Dist: livekit~=1.0.13; extra == "livekit"
95
+ Requires-Dist: livekit-api~=1.0.5; extra == "livekit"
94
96
  Requires-Dist: tenacity<10.0.0,>=8.2.3; extra == "livekit"
95
97
  Provides-Extra: lmnt
96
- Requires-Dist: websockets<15.0,>=13.1; extra == "lmnt"
98
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "lmnt"
97
99
  Provides-Extra: local
98
100
  Requires-Dist: pyaudio~=0.2.14; extra == "local"
99
101
  Provides-Extra: mcp
100
- Requires-Dist: mcp[cli]~=1.9.4; extra == "mcp"
102
+ Requires-Dist: mcp[cli]<2,>=1.11.0; extra == "mcp"
101
103
  Provides-Extra: mem0
102
104
  Requires-Dist: mem0ai~=0.1.94; extra == "mem0"
103
105
  Provides-Extra: mistral
@@ -111,20 +113,20 @@ Requires-Dist: timm~=1.0.13; extra == "moondream"
111
113
  Requires-Dist: transformers>=4.48.0; extra == "moondream"
112
114
  Provides-Extra: nim
113
115
  Provides-Extra: neuphonic
114
- Requires-Dist: websockets<15.0,>=13.1; extra == "neuphonic"
116
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "neuphonic"
115
117
  Provides-Extra: noisereduce
116
118
  Requires-Dist: noisereduce~=3.0.3; extra == "noisereduce"
117
119
  Provides-Extra: openai
118
- Requires-Dist: websockets<15.0,>=13.1; extra == "openai"
120
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "openai"
119
121
  Provides-Extra: openpipe
120
122
  Requires-Dist: openpipe~=4.50.0; extra == "openpipe"
121
123
  Provides-Extra: openrouter
122
124
  Provides-Extra: perplexity
123
125
  Provides-Extra: playht
124
- Requires-Dist: websockets<15.0,>=13.1; extra == "playht"
126
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "playht"
125
127
  Provides-Extra: qwen
126
128
  Provides-Extra: rime
127
- Requires-Dist: websockets<15.0,>=13.1; extra == "rime"
129
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "rime"
128
130
  Provides-Extra: riva
129
131
  Requires-Dist: nvidia-riva-client~=2.21.1; extra == "riva"
130
132
  Provides-Extra: runner
@@ -134,26 +136,30 @@ Requires-Dist: fastapi<0.117.0,>=0.115.6; extra == "runner"
134
136
  Requires-Dist: pipecat-ai-small-webrtc-prebuilt>=1.0.0; extra == "runner"
135
137
  Provides-Extra: sambanova
136
138
  Provides-Extra: sarvam
137
- Requires-Dist: sarvamai<1,>=0.1.19; extra == "sarvam"
138
- Requires-Dist: websockets<15.0,>=13.1; extra == "sarvam"
139
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "sarvam"
139
140
  Provides-Extra: sentry
140
- Requires-Dist: sentry-sdk~=2.23.1; extra == "sentry"
141
+ Requires-Dist: sentry-sdk<3,>=2.28.0; extra == "sentry"
141
142
  Provides-Extra: local-smart-turn
142
143
  Requires-Dist: coremltools>=8.0; extra == "local-smart-turn"
143
144
  Requires-Dist: transformers; extra == "local-smart-turn"
144
145
  Requires-Dist: torch<3,>=2.5.0; extra == "local-smart-turn"
145
146
  Requires-Dist: torchaudio<3,>=2.5.0; extra == "local-smart-turn"
147
+ Provides-Extra: local-smart-turn-v3
148
+ Requires-Dist: transformers; extra == "local-smart-turn-v3"
149
+ Requires-Dist: onnxruntime<2,>=1.20.1; extra == "local-smart-turn-v3"
146
150
  Provides-Extra: remote-smart-turn
147
151
  Provides-Extra: silero
148
- Requires-Dist: onnxruntime~=1.20.1; extra == "silero"
152
+ Requires-Dist: onnxruntime<2,>=1.20.1; extra == "silero"
149
153
  Provides-Extra: simli
150
154
  Requires-Dist: simli-ai~=0.1.10; extra == "simli"
151
155
  Provides-Extra: soniox
152
- Requires-Dist: websockets<15.0,>=13.1; extra == "soniox"
156
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "soniox"
153
157
  Provides-Extra: soundfile
154
158
  Requires-Dist: soundfile~=0.13.0; extra == "soundfile"
155
159
  Provides-Extra: speechmatics
156
160
  Requires-Dist: speechmatics-rt>=0.4.0; extra == "speechmatics"
161
+ Provides-Extra: strands
162
+ Requires-Dist: strands-agents<2,>=1.9.1; extra == "strands"
157
163
  Provides-Extra: tavus
158
164
  Provides-Extra: together
159
165
  Provides-Extra: tracing
@@ -164,11 +170,13 @@ Provides-Extra: ultravox
164
170
  Requires-Dist: transformers>=4.48.0; extra == "ultravox"
165
171
  Requires-Dist: vllm>=0.9.0; extra == "ultravox"
166
172
  Provides-Extra: webrtc
167
- Requires-Dist: aiortc~=1.11.0; extra == "webrtc"
168
- Requires-Dist: opencv-python~=4.11.0.86; extra == "webrtc"
173
+ Requires-Dist: aiortc<2,>=1.13.0; extra == "webrtc"
174
+ Requires-Dist: opencv-python<5,>=4.11.0.86; extra == "webrtc"
169
175
  Provides-Extra: websocket
170
- Requires-Dist: websockets<15.0,>=13.1; extra == "websocket"
176
+ Requires-Dist: pipecat-ai[websockets-base]; extra == "websocket"
171
177
  Requires-Dist: fastapi<0.117.0,>=0.115.6; extra == "websocket"
178
+ Provides-Extra: websockets-base
179
+ Requires-Dist: websockets<16.0,>=13.1; extra == "websockets-base"
172
180
  Provides-Extra: whisper
173
181
  Requires-Dist: faster-whisper~=1.1.1; extra == "whisper"
174
182
  Dynamic: license-file
@@ -177,11 +185,11 @@ Dynamic: license-file
177
185
  <img alt="pipecat" width="300px" height="auto" src="https://raw.githubusercontent.com/pipecat-ai/pipecat/main/pipecat.png">
178
186
  </div></h1>
179
187
 
180
- [![PyPI](https://img.shields.io/pypi/v/pipecat-ai)](https://pypi.org/project/pipecat-ai) ![Tests](https://github.com/pipecat-ai/pipecat/actions/workflows/tests.yaml/badge.svg) [![codecov](https://codecov.io/gh/pipecat-ai/pipecat/graph/badge.svg?token=LNVUIVO4Y9)](https://codecov.io/gh/pipecat-ai/pipecat) [![Docs](https://img.shields.io/badge/Documentation-blue)](https://docs.pipecat.ai) [![Discord](https://img.shields.io/discord/1239284677165056021)](https://discord.gg/pipecat)
188
+ [![PyPI](https://img.shields.io/pypi/v/pipecat-ai)](https://pypi.org/project/pipecat-ai) ![Tests](https://github.com/pipecat-ai/pipecat/actions/workflows/tests.yaml/badge.svg) [![codecov](https://codecov.io/gh/pipecat-ai/pipecat/graph/badge.svg?token=LNVUIVO4Y9)](https://codecov.io/gh/pipecat-ai/pipecat) [![Docs](https://img.shields.io/badge/Documentation-blue)](https://docs.pipecat.ai) [![Discord](https://img.shields.io/discord/1239284677165056021)](https://discord.gg/pipecat) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/pipecat-ai/pipecat)
181
189
 
182
190
  # 🎙️ Pipecat: Real-Time Voice & Multimodal AI Agents
183
191
 
184
- **Pipecat** is an open-source Python framework for building real-time voice and multimodal conversational agents. Orchestrate audio and video, AI services, different transports, and conversation pipelines effortlessly—so you can focus on what makes your agent unique
192
+ **Pipecat** is an open-source Python framework for building real-time voice and multimodal conversational agents. Orchestrate audio and video, AI services, different transports, and conversation pipelines effortlessly—so you can focus on what makes your agent unique.
185
193
 
186
194
  > Want to dive right in? Try the [quickstart](https://docs.pipecat.ai/getting-started/quickstart).
187
195
 
@@ -194,8 +202,6 @@ Dynamic: license-file
194
202
  - **Business Agents** – customer intake, support bots, guided flows
195
203
  - **Complex Dialog Systems** – design logic with structured conversations
196
204
 
197
- 🧭 Looking to build structured conversations? Check out [Pipecat Flows](https://github.com/pipecat-ai/pipecat-flows) for managing complex conversational states and transitions.
198
-
199
205
  ## 🧠 Why Pipecat?
200
206
 
201
207
  - **Voice-first**: Integrates speech recognition, text-to-speech, and conversation handling
@@ -203,6 +209,35 @@ Dynamic: license-file
203
209
  - **Composable Pipelines**: Build complex behavior from modular components
204
210
  - **Real-Time**: Ultra-low latency interaction with different transports (e.g. WebSockets or WebRTC)
205
211
 
212
+ ## 🌐 Pipecat Ecosystem
213
+
214
+ ### 📱 Client SDKs
215
+
216
+ Building client applications? You can connect to Pipecat from any platform using our official SDKs:
217
+
218
+ <a href="https://docs.pipecat.ai/client/js/introduction">JavaScript</a> | <a href="https://docs.pipecat.ai/client/react/introduction">React</a> | <a href="https://docs.pipecat.ai/client/react-native/introduction">React Native</a> |
219
+ <a href="https://docs.pipecat.ai/client/ios/introduction">Swift</a> | <a href="https://docs.pipecat.ai/client/android/introduction">Kotlin</a> | <a href="https://docs.pipecat.ai/client/c++/introduction">C++</a> | <a href="https://github.com/pipecat-ai/pipecat-esp32">ESP32</a>
220
+
221
+ ### 🧭 Structured conversations
222
+
223
+ Looking to build structured conversations? Check out [Pipecat Flows](https://github.com/pipecat-ai/pipecat-flows) for managing complex conversational states and transitions.
224
+
225
+ ### 🪄 Beautiful UIs
226
+
227
+ Want to build beautiful and engaging experiences? Checkout the [Voice UI Kit](https://github.com/pipecat-ai/voice-ui-kit), a collection of components, hooks and templates for building voice AI applications quickly.
228
+
229
+ ### 🔍 Debugging
230
+
231
+ Looking for help debugging your pipeline and processors? Check out [Whisker](https://github.com/pipecat-ai/whisker), a real-time Pipecat debugger.
232
+
233
+ ### 🖥️ Terminal
234
+
235
+ Love terminal applications? Check out [Tail](https://github.com/pipecat-ai/tail), a terminal dashboard for Pipecat.
236
+
237
+ ### 📺️ Pipecat TV Channel
238
+
239
+ Catch new features, interviews, and how-tos on our [Pipecat TV](https://www.youtube.com/playlist?list=PLzU2zoMTQIHjqC3v4q2XVSR3hGSzwKFwH) channel.
240
+
206
241
  ## 🎬 See it in action
207
242
 
208
243
  <p float="left">
@@ -213,31 +248,20 @@ Dynamic: license-file
213
248
  <a href="https://github.com/pipecat-ai/pipecat-examples/tree/main/moondream-chatbot"><img src="https://raw.githubusercontent.com/pipecat-ai/pipecat-examples/main/moondream-chatbot/image.png" width="400" /></a>
214
249
  </p>
215
250
 
216
- ## 📱 Client SDKs
217
-
218
- You can connect to Pipecat from any platform using our official SDKs:
219
-
220
- | Platform | SDK Repo | Description |
221
- | -------- | ------------------------------------------------------------------------------ | -------------------------------- |
222
- | Web | [pipecat-client-web](https://github.com/pipecat-ai/pipecat-client-web) | JavaScript and React client SDKs |
223
- | iOS | [pipecat-client-ios](https://github.com/pipecat-ai/pipecat-client-ios) | Swift SDK for iOS |
224
- | Android | [pipecat-client-android](https://github.com/pipecat-ai/pipecat-client-android) | Kotlin SDK for Android |
225
- | C++ | [pipecat-client-cxx](https://github.com/pipecat-ai/pipecat-client-cxx) | C++ client SDK |
226
-
227
251
  ## 🧩 Available services
228
252
 
229
253
  | Category | Services |
230
254
  | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
231
- | Speech-to-Text | [AssemblyAI](https://docs.pipecat.ai/server/services/stt/assemblyai), [AWS](https://docs.pipecat.ai/server/services/stt/aws), [Azure](https://docs.pipecat.ai/server/services/stt/azure), [Cartesia](https://docs.pipecat.ai/server/services/stt/cartesia), [Deepgram](https://docs.pipecat.ai/server/services/stt/deepgram), [Fal Wizper](https://docs.pipecat.ai/server/services/stt/fal), [Gladia](https://docs.pipecat.ai/server/services/stt/gladia), [Google](https://docs.pipecat.ai/server/services/stt/google), [Groq (Whisper)](https://docs.pipecat.ai/server/services/stt/groq), [NVIDIA Riva](https://docs.pipecat.ai/server/services/stt/riva), [OpenAI (Whisper)](https://docs.pipecat.ai/server/services/stt/openai), [SambaNova (Whisper)](https://docs.pipecat.ai/server/services/stt/sambanova), [Soniox](https://docs.pipecat.ai/server/services/stt/soniox), [Speechmatics](https://docs.pipecat.ai/server/services/stt/speechmatics), [Ultravox](https://docs.pipecat.ai/server/services/stt/ultravox), [Whisper](https://docs.pipecat.ai/server/services/stt/whisper) |
255
+ | Speech-to-Text | [AssemblyAI](https://docs.pipecat.ai/server/services/stt/assemblyai), [AWS](https://docs.pipecat.ai/server/services/stt/aws), [Azure](https://docs.pipecat.ai/server/services/stt/azure), [Cartesia](https://docs.pipecat.ai/server/services/stt/cartesia), [Deepgram](https://docs.pipecat.ai/server/services/stt/deepgram), [ElevenLabs](https://docs.pipecat.ai/server/services/stt/elevenlabs), [Fal Wizper](https://docs.pipecat.ai/server/services/stt/fal), [Gladia](https://docs.pipecat.ai/server/services/stt/gladia), [Google](https://docs.pipecat.ai/server/services/stt/google), [Groq (Whisper)](https://docs.pipecat.ai/server/services/stt/groq), [NVIDIA Riva](https://docs.pipecat.ai/server/services/stt/riva), [OpenAI (Whisper)](https://docs.pipecat.ai/server/services/stt/openai), [SambaNova (Whisper)](https://docs.pipecat.ai/server/services/stt/sambanova), [Soniox](https://docs.pipecat.ai/server/services/stt/soniox), [Speechmatics](https://docs.pipecat.ai/server/services/stt/speechmatics), [Ultravox](https://docs.pipecat.ai/server/services/stt/ultravox), [Whisper](https://docs.pipecat.ai/server/services/stt/whisper) |
232
256
  | LLMs | [Anthropic](https://docs.pipecat.ai/server/services/llm/anthropic), [AWS](https://docs.pipecat.ai/server/services/llm/aws), [Azure](https://docs.pipecat.ai/server/services/llm/azure), [Cerebras](https://docs.pipecat.ai/server/services/llm/cerebras), [DeepSeek](https://docs.pipecat.ai/server/services/llm/deepseek), [Fireworks AI](https://docs.pipecat.ai/server/services/llm/fireworks), [Gemini](https://docs.pipecat.ai/server/services/llm/gemini), [Grok](https://docs.pipecat.ai/server/services/llm/grok), [Groq](https://docs.pipecat.ai/server/services/llm/groq), [Mistral](https://docs.pipecat.ai/server/services/llm/mistral), [NVIDIA NIM](https://docs.pipecat.ai/server/services/llm/nim), [Ollama](https://docs.pipecat.ai/server/services/llm/ollama), [OpenAI](https://docs.pipecat.ai/server/services/llm/openai), [OpenRouter](https://docs.pipecat.ai/server/services/llm/openrouter), [Perplexity](https://docs.pipecat.ai/server/services/llm/perplexity), [Qwen](https://docs.pipecat.ai/server/services/llm/qwen), [SambaNova](https://docs.pipecat.ai/server/services/llm/sambanova) [Together AI](https://docs.pipecat.ai/server/services/llm/together) |
233
- | Text-to-Speech | [Async](https://docs.pipecat.ai/server/services/tts/asyncai), [AWS](https://docs.pipecat.ai/server/services/tts/aws), [Azure](https://docs.pipecat.ai/server/services/tts/azure), [Cartesia](https://docs.pipecat.ai/server/services/tts/cartesia), [Deepgram](https://docs.pipecat.ai/server/services/tts/deepgram), [ElevenLabs](https://docs.pipecat.ai/server/services/tts/elevenlabs), [Fish](https://docs.pipecat.ai/server/services/tts/fish), [Google](https://docs.pipecat.ai/server/services/tts/google), [Groq](https://docs.pipecat.ai/server/services/tts/groq), [Inworld](https://docs.pipecat.ai/server/services/tts/inworld), [LMNT](https://docs.pipecat.ai/server/services/tts/lmnt), [MiniMax](https://docs.pipecat.ai/server/services/tts/minimax), [Neuphonic](https://docs.pipecat.ai/server/services/tts/neuphonic), [NVIDIA Riva](https://docs.pipecat.ai/server/services/tts/riva), [OpenAI](https://docs.pipecat.ai/server/services/tts/openai), [Piper](https://docs.pipecat.ai/server/services/tts/piper), [PlayHT](https://docs.pipecat.ai/server/services/tts/playht), [Rime](https://docs.pipecat.ai/server/services/tts/rime), [Sarvam](https://docs.pipecat.ai/server/services/tts/sarvam), [XTTS](https://docs.pipecat.ai/server/services/tts/xtts) |
257
+ | Text-to-Speech | [Async](https://docs.pipecat.ai/server/services/tts/asyncai), [AWS](https://docs.pipecat.ai/server/services/tts/aws), [Azure](https://docs.pipecat.ai/server/services/tts/azure), [Cartesia](https://docs.pipecat.ai/server/services/tts/cartesia), [Deepgram](https://docs.pipecat.ai/server/services/tts/deepgram), [ElevenLabs](https://docs.pipecat.ai/server/services/tts/elevenlabs), [Fish](https://docs.pipecat.ai/server/services/tts/fish), [Google](https://docs.pipecat.ai/server/services/tts/google), [Groq](https://docs.pipecat.ai/server/services/tts/groq), [Hume](https://docs.pipecat.ai/server/services/tts/hume), [Inworld](https://docs.pipecat.ai/server/services/tts/inworld), [LMNT](https://docs.pipecat.ai/server/services/tts/lmnt), [MiniMax](https://docs.pipecat.ai/server/services/tts/minimax), [Neuphonic](https://docs.pipecat.ai/server/services/tts/neuphonic), [NVIDIA Riva](https://docs.pipecat.ai/server/services/tts/riva), [OpenAI](https://docs.pipecat.ai/server/services/tts/openai), [Piper](https://docs.pipecat.ai/server/services/tts/piper), [PlayHT](https://docs.pipecat.ai/server/services/tts/playht), [Rime](https://docs.pipecat.ai/server/services/tts/rime), [Sarvam](https://docs.pipecat.ai/server/services/tts/sarvam), [XTTS](https://docs.pipecat.ai/server/services/tts/xtts) |
234
258
  | Speech-to-Speech | [AWS Nova Sonic](https://docs.pipecat.ai/server/services/s2s/aws), [Gemini Multimodal Live](https://docs.pipecat.ai/server/services/s2s/gemini), [OpenAI Realtime](https://docs.pipecat.ai/server/services/s2s/openai) |
235
259
  | Transport | [Daily (WebRTC)](https://docs.pipecat.ai/server/services/transport/daily), [FastAPI Websocket](https://docs.pipecat.ai/server/services/transport/fastapi-websocket), [SmallWebRTCTransport](https://docs.pipecat.ai/server/services/transport/small-webrtc), [WebSocket Server](https://docs.pipecat.ai/server/services/transport/websocket-server), Local |
236
260
  | Serializers | [Plivo](https://docs.pipecat.ai/server/utilities/serializers/plivo), [Twilio](https://docs.pipecat.ai/server/utilities/serializers/twilio), [Telnyx](https://docs.pipecat.ai/server/utilities/serializers/telnyx) |
237
261
  | Video | [HeyGen](https://docs.pipecat.ai/server/services/video/heygen), [Tavus](https://docs.pipecat.ai/server/services/video/tavus), [Simli](https://docs.pipecat.ai/server/services/video/simli) |
238
262
  | Memory | [mem0](https://docs.pipecat.ai/server/services/memory/mem0) |
239
263
  | Vision & Image | [fal](https://docs.pipecat.ai/server/services/image-generation/fal), [Google Imagen](https://docs.pipecat.ai/server/services/image-generation/fal), [Moondream](https://docs.pipecat.ai/server/services/vision/moondream) |
240
- | Audio Processing | [Silero VAD](https://docs.pipecat.ai/server/utilities/audio/silero-vad-analyzer), [Krisp](https://docs.pipecat.ai/server/utilities/audio/krisp-filter), [Koala](https://docs.pipecat.ai/server/utilities/audio/koala-filter), [ai-coustics](https://docs.pipecat.ai/server/utilities/audio/aic-filter), [Noisereduce](https://docs.pipecat.ai/server/utilities/audio/noisereduce-filter) |
264
+ | Audio Processing | [Silero VAD](https://docs.pipecat.ai/server/utilities/audio/silero-vad-analyzer), [Krisp](https://docs.pipecat.ai/server/utilities/audio/krisp-filter), [Koala](https://docs.pipecat.ai/server/utilities/audio/koala-filter), [ai-coustics](https://docs.pipecat.ai/server/utilities/audio/aic-filter) |
241
265
  | Analytics & Metrics | [OpenTelemetry](https://docs.pipecat.ai/server/utilities/opentelemetry), [Sentry](https://docs.pipecat.ai/server/services/analytics/sentry) |
242
266
 
243
267
  📚 [View full services documentation →](https://docs.pipecat.ai/server/services/supported-services)
@@ -304,7 +328,11 @@ You can get started with Pipecat running on your local machine, then move your a
304
328
  2. Install development and testing dependencies:
305
329
 
306
330
  ```bash
307
- uv sync --group dev --all-extras --no-extra gstreamer --no-extra krisp --no-extra local
331
+ uv sync --group dev --all-extras \
332
+ --no-extra gstreamer \
333
+ --no-extra krisp \
334
+ --no-extra local \
335
+ --no-extra ultravox # (ultravox not fully supported on macOS)
308
336
  ```
309
337
 
310
338
  3. Install the git pre-commit hooks:
@@ -313,23 +341,6 @@ You can get started with Pipecat running on your local machine, then move your a
313
341
  uv run pre-commit install
314
342
  ```
315
343
 
316
- ### Python 3.13+ Compatibility
317
-
318
- Some features require PyTorch, which doesn't yet support Python 3.13+. Install using:
319
-
320
- ```bash
321
- uv sync --group dev --all-extras \
322
- --no-extra gstreamer \
323
- --no-extra krisp \
324
- --no-extra local \
325
- --no-extra local-smart-turn \
326
- --no-extra mlx-whisper \
327
- --no-extra moondream \
328
- --no-extra ultravox
329
- ```
330
-
331
- > **Tip:** For full compatibility, use Python 3.12: `uv python pin 3.12`
332
-
333
344
  > **Note**: Some extras (local, gstreamer) require system dependencies. See documentation if you encounter build errors.
334
345
 
335
346
  ### Running tests
@@ -346,54 +357,6 @@ Run a specific test suite:
346
357
  uv run pytest tests/test_name.py
347
358
  ```
348
359
 
349
- ### Setting up your editor
350
-
351
- This project uses strict [PEP 8](https://peps.python.org/pep-0008/) formatting via [Ruff](https://github.com/astral-sh/ruff).
352
-
353
- #### Emacs
354
-
355
- You can use [use-package](https://github.com/jwiegley/use-package) to install [emacs-lazy-ruff](https://github.com/christophermadsen/emacs-lazy-ruff) package and configure `ruff` arguments:
356
-
357
- ```elisp
358
- (use-package lazy-ruff
359
- :ensure t
360
- :hook ((python-mode . lazy-ruff-mode))
361
- :config
362
- (setq lazy-ruff-format-command "ruff format")
363
- (setq lazy-ruff-check-command "ruff check --select I"))
364
- ```
365
-
366
- `ruff` was installed in the `venv` environment described before, so you should be able to use [pyvenv-auto](https://github.com/ryotaro612/pyvenv-auto) to automatically load that environment inside Emacs.
367
-
368
- ```elisp
369
- (use-package pyvenv-auto
370
- :ensure t
371
- :defer t
372
- :hook ((python-mode . pyvenv-auto-run)))
373
- ```
374
-
375
- #### Visual Studio Code
376
-
377
- Install the
378
- [Ruff](https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff) extension. Then edit the user settings (_Ctrl-Shift-P_ `Open User Settings (JSON)`) and set it as the default Python formatter, and enable formatting on save:
379
-
380
- ```json
381
- "[python]": {
382
- "editor.defaultFormatter": "charliermarsh.ruff",
383
- "editor.formatOnSave": true
384
- }
385
- ```
386
-
387
- #### PyCharm
388
-
389
- `ruff` was installed in the `venv` environment described before, now to enable autoformatting on save, go to `File` -> `Settings` -> `Tools` -> `File Watchers` and add a new watcher with the following settings:
390
-
391
- 1. **Name**: `Ruff formatter`
392
- 2. **File type**: `Python`
393
- 3. **Working directory**: `$ContentRoot$`
394
- 4. **Arguments**: `format $FilePath$`
395
- 5. **Program**: `$PyInterpreterDirectory$/ruff`
396
-
397
360
  ## 🤝 Contributing
398
361
 
399
362
  We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or adding new features, here's how you can help:
@@ -414,5 +377,3 @@ We aim to review all contributions promptly and provide constructive feedback to
414
377
  ➡️ [Read the docs](https://docs.pipecat.ai)
415
378
 
416
379
  ➡️ [Reach us on X](https://x.com/pipecat_ai)
417
-
418
-