Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ license = "MIT"
dependencies = [
"pydantic>=2.0",
"pydantic-settings>=2.0",
"pipecat-ai>=0.0.108",
"pipecat-ai>=1.0.0",
"elevenlabs>=1.0.0",
"openai>=2.36.0",
"anthropic>=0.83.0",
"litellm==1.82.6",
"deepgram-sdk>=6.1.1,<7",
"deepgram-sdk>=7",
"onnxruntime>=1.16.0",
"aioboto3>=12.0.0",
"google-genai>=1.69.0",
Expand Down
1 change: 0 additions & 1 deletion src/eva/assistant/pipecat_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,6 @@ async def on_user_transcription(text: str, timestamp: str, turn_id: int | None)
self._task = PipelineTask(
pipeline,
params=PipelineParams(
allow_interruptions=True,
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this setting is moved to user turn strategies enable_interruptions and defaults to True

enable_metrics=True, # Enable TTFB and ProcessingMetricsData
enable_usage_metrics=True, # Enable LLM/TTS usage metrics
),
Expand Down
24 changes: 22 additions & 2 deletions src/eva/assistant/pipeline/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
from pipecat.services.openai.tts import OpenAITTSService
from pipecat.services.stt_service import STTService
from pipecat.services.tts_service import TTSService
from pipecat.services.xai.stt import XAISTTService
from pipecat.services.xai.tts import XAITTSService
from pipecat.transcriptions.language import Language
from pipecat.utils.text.base_text_filter import BaseTextFilter
from websockets.asyncio.client import connect as websocket_connect
Expand Down Expand Up @@ -220,9 +222,16 @@ def create_stt_service(
stt_service._settings.language = params.get("language")
return stt_service

elif model_lower == "xai":
logger.info("Using xAI STT")
return XAISTTService(
api_key=api_key,
sample_rate=SAMPLE_RATE,
)

else:
raise ValueError(
f"Unknown STT model: {model}. Available: assemblyai, cartesia, cohere, deepgram, deepgram-flux, elevenlabs, nvidia, nvidia-baseten, openai"
f"Unknown STT model: {model}. Available: assemblyai, cartesia, cohere, deepgram, deepgram-flux, elevenlabs, nvidia, nvidia-baseten, openai, xai"
)


Expand Down Expand Up @@ -383,6 +392,17 @@ def create_tts_service(
voxtral_tts._settings.language = language_code
return voxtral_tts

elif model_lower == "xai":
logger.info(f"Using xAI TTS: voice={params.get('voice', 'eve')}")
return XAITTSService(
api_key=api_key,
sample_rate=SAMPLE_RATE,
settings=XAITTSService.Settings(
voice=params.get("voice", "eve"),
language=language_code,
),
)

elif model_lower == "xtts":
logger.info(f"Using XTTS TTS: {params['model']}")
xtts_tts = OpenAITTSService(
Expand All @@ -403,7 +423,7 @@ def create_tts_service(

else:
raise ValueError(
f"Unknown TTS model: {model}. Available: cartesia, chatterbox, deepgram, elevenlabs, gemini, kokoro, nvidia-baseten, openai, xtts"
f"Unknown TTS model: {model}. Available: cartesia, chatterbox, deepgram, elevenlabs, gemini, kokoro, nvidia-baseten, openai, xai, xtts"
)


Expand Down
Loading
Loading