Skip to content

Commit

Permalink
progress
Browse files Browse the repository at this point in the history
  • Loading branch information
disler committed Jan 10, 2025
1 parent d71fee0 commit d03c203
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 2 deletions.
16 changes: 14 additions & 2 deletions modules/typer_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@
)
from modules.deepseek import prefix_prompt
from modules.execute_python import execute_uv_python
from elevenlabs import play
from elevenlabs.client import ElevenLabs


class TyperAgent:
def __init__(self, logger: logging.Logger, session_id: str):
self.logger = logger
self.session_id = session_id
self.log_file = build_file_name_session("session.log", session_id)
self.elevenlabs_client = ElevenLabs(api_key=os.getenv("ELEVEN_API_KEY"))

@classmethod
def build_agent(cls, typer_file: str, scratchpad: List[str]):
Expand Down Expand Up @@ -99,6 +102,7 @@ def process_text(self, text: str, typer_file: str, scratchpad: List[str]) -> str

if command == prefix.strip():
self.logger.info(f"🤖 Command not found for '{text}'")
self.speak("Command not found")
return "Command not found"

# Execute the generated command
Expand Down Expand Up @@ -186,5 +190,13 @@ def deep(
raise

def speak(self, text: str):
"""Speak the text"""
print(text)
audio_generator = self.elevenlabs_client.generate(
text=text,
voice="WejK3H1m7MI9CHnIjW9K",
model="eleven_flash_v2_5",
# model="eleven_flash_v2"
# model="eleven_turbo_v2",
stream=False,
)
audio_bytes = b"".join(list(audio_generator))
play(audio_bytes)
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ dependencies = [
"typer>=0.13.1",
"rich>=13.9.4",
"realtimestt>=0.3.93",
"elevenlabs>=1.50.3",
]
19 changes: 19 additions & 0 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit d03c203

Please sign in to comment.