From a93bfc1ec9504e00ba690e0fb8c12f6493360440 Mon Sep 17 00:00:00 2001 From: Ajay Raj Date: Tue, 28 Mar 2023 00:15:34 -0700 Subject: [PATCH] open source --- .gitignore | 2 + .../hosted_inbound_call_server.py | 2 +- .../hosted_outbound_call.py | 4 +- .../hosted_streaming_conversation.py | 4 +- examples/streaming_conversation.py | 79 +++ examples/telephony_app.py | 69 ++ .../turn_based_conversation.py | 0 .../user_implemented_agent.py | 0 requirements.txt | 27 +- vocode/streaming/agent/base_agent.py | 44 ++ .../streaming/agent/bot_sentiment_analyser.py | 50 ++ vocode/streaming/agent/chat_gpt_agent.py | 158 +++++ vocode/streaming/agent/echo_agent.py | 13 + .../agent/information_retrieval_agent.py | 32 + vocode/streaming/agent/llm_agent.py | 139 ++++ vocode/streaming/agent/utils.py | 25 + vocode/streaming/constants.py | 3 + vocode/streaming/factory.py | 58 ++ .../hosted_streaming_conversation.py | 106 ++++ vocode/streaming/models/agent.py | 8 + vocode/streaming/models/audio_encoding.py | 3 +- vocode/streaming/models/model.py | 25 +- vocode/streaming/models/synthesizer.py | 74 ++- vocode/streaming/models/telephony.py | 10 + vocode/streaming/models/transcriber.py | 21 +- vocode/streaming/models/websocket.py | 25 +- .../output_device/base_output_device.py | 2 +- .../output_device/twilio_output_device.py | 30 + vocode/streaming/streaming_conversation.py | 594 +++++++++++++++--- .../synthesizer/azure_synthesizer.py | 250 ++++++++ .../streaming/synthesizer/base_synthesizer.py | 169 +++++ .../synthesizer/eleven_labs_synthesizer.py | 50 ++ .../synthesizer/filler_audio/typing-noise.wav | Bin 0 -> 6548060 bytes .../synthesizer/google_synthesizer.py | 110 ++++ .../streaming/synthesizer/rime_synthesizer.py | 78 +++ vocode/streaming/telephony/__init__.py | 0 .../config_manager/base_config_manager.py | 17 + .../config_manager/redis_config_manager.py | 34 + vocode/streaming/telephony/constants.py | 5 + .../streaming/telephony/conversation/call.py | 170 +++++ .../telephony/conversation/outbound_call.py | 110 ++++ .../telephony/conversation/zoom_dial_in.py | 73 +++ .../telephony/hosted/inbound_call_server.py | 62 ++ .../hosted/inbound_call_user_agent_server.py | 45 ++ .../telephony/hosted/outbound_call.py | 68 ++ .../telephony/hosted/zoom_dial_in.py | 60 ++ vocode/streaming/telephony/server/base.py | 143 +++++ .../telephony/server/router/calls.py | 45 ++ .../telephony/server/router/twiml.py | 29 + vocode/streaming/telephony/templates.py | 20 + .../telephony/templates/connect_call.xml | 6 + vocode/streaming/telephony/twilio.py | 12 + .../transcriber/assembly_ai_transcriber.py | 101 +++ .../streaming/transcriber/base_transcriber.py | 59 ++ .../transcriber/deepgram_transcriber.py | 230 +++++++ .../transcriber/google_transcriber.py | 145 +++++ vocode/streaming/utils/__init__.py | 63 ++ .../utils/goodbye_embeddings/.gitkeep | 0 vocode/streaming/utils/goodbye_model.py | 102 +++ vocode/streaming/utils/sse_client.py | 236 +++++++ vocode/streaming/utils/transcript.py | 40 ++ 61 files changed, 4013 insertions(+), 126 deletions(-) rename simple_inbound_call_server.py => examples/hosted_inbound_call_server.py (70%) rename simple_outbound_call.py => examples/hosted_outbound_call.py (90%) rename simple_streaming_conversation.py => examples/hosted_streaming_conversation.py (92%) create mode 100644 examples/streaming_conversation.py create mode 100644 examples/telephony_app.py rename simple_turn_based_conversation.py => examples/turn_based_conversation.py (100%) rename simple_user_implemented_agent.py => examples/user_implemented_agent.py (100%) create mode 100644 vocode/streaming/agent/base_agent.py create mode 100644 vocode/streaming/agent/bot_sentiment_analyser.py create mode 100644 vocode/streaming/agent/chat_gpt_agent.py create mode 100644 vocode/streaming/agent/echo_agent.py create mode 100644 vocode/streaming/agent/information_retrieval_agent.py create mode 100644 vocode/streaming/agent/llm_agent.py create mode 100644 vocode/streaming/agent/utils.py create mode 100644 vocode/streaming/constants.py create mode 100644 vocode/streaming/factory.py create mode 100644 vocode/streaming/hosted_streaming_conversation.py create mode 100644 vocode/streaming/output_device/twilio_output_device.py create mode 100644 vocode/streaming/synthesizer/azure_synthesizer.py create mode 100644 vocode/streaming/synthesizer/base_synthesizer.py create mode 100644 vocode/streaming/synthesizer/eleven_labs_synthesizer.py create mode 100644 vocode/streaming/synthesizer/filler_audio/typing-noise.wav create mode 100644 vocode/streaming/synthesizer/google_synthesizer.py create mode 100644 vocode/streaming/synthesizer/rime_synthesizer.py create mode 100644 vocode/streaming/telephony/__init__.py create mode 100644 vocode/streaming/telephony/config_manager/base_config_manager.py create mode 100644 vocode/streaming/telephony/config_manager/redis_config_manager.py create mode 100644 vocode/streaming/telephony/constants.py create mode 100644 vocode/streaming/telephony/conversation/call.py create mode 100644 vocode/streaming/telephony/conversation/outbound_call.py create mode 100644 vocode/streaming/telephony/conversation/zoom_dial_in.py create mode 100644 vocode/streaming/telephony/hosted/inbound_call_server.py create mode 100644 vocode/streaming/telephony/hosted/inbound_call_user_agent_server.py create mode 100644 vocode/streaming/telephony/hosted/outbound_call.py create mode 100644 vocode/streaming/telephony/hosted/zoom_dial_in.py create mode 100644 vocode/streaming/telephony/server/base.py create mode 100644 vocode/streaming/telephony/server/router/calls.py create mode 100644 vocode/streaming/telephony/server/router/twiml.py create mode 100644 vocode/streaming/telephony/templates.py create mode 100644 vocode/streaming/telephony/templates/connect_call.xml create mode 100644 vocode/streaming/telephony/twilio.py create mode 100644 vocode/streaming/transcriber/assembly_ai_transcriber.py create mode 100644 vocode/streaming/transcriber/base_transcriber.py create mode 100644 vocode/streaming/transcriber/deepgram_transcriber.py create mode 100644 vocode/streaming/transcriber/google_transcriber.py create mode 100644 vocode/streaming/utils/__init__.py create mode 100644 vocode/streaming/utils/goodbye_embeddings/.gitkeep create mode 100644 vocode/streaming/utils/goodbye_model.py create mode 100644 vocode/streaming/utils/sse_client.py create mode 100644 vocode/streaming/utils/transcript.py diff --git a/.gitignore b/.gitignore index f27c171..28ac53f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ __pycache__/ .env .DS_Store dist/ +credentials.json +*.npy diff --git a/simple_inbound_call_server.py b/examples/hosted_inbound_call_server.py similarity index 70% rename from simple_inbound_call_server.py rename to examples/hosted_inbound_call_server.py index 970b3db..1c37bcf 100644 --- a/simple_inbound_call_server.py +++ b/examples/hosted_inbound_call_server.py @@ -1,4 +1,4 @@ -from vocode.streaming.telephony.inbound_call_server import InboundCallServer +from vocode.streaming.telephony.hosted.inbound_call_server import InboundCallServer from vocode.streaming.models.agent import EchoAgentConfig if __name__ == "__main__": diff --git a/simple_outbound_call.py b/examples/hosted_outbound_call.py similarity index 90% rename from simple_outbound_call.py rename to examples/hosted_outbound_call.py index 8596dd8..c0298a5 100644 --- a/simple_outbound_call.py +++ b/examples/hosted_outbound_call.py @@ -1,6 +1,6 @@ from vocode.streaming.models.synthesizer import AzureSynthesizerConfig from vocode.streaming.output_device.telephone_output import TelephoneOutput -from vocode.streaming.telephony.outbound_call import OutboundCall +from vocode.streaming.telephony.hosted.outbound_call import OutboundCall from vocode.streaming.models.telephony import CallEntity from vocode.streaming.models.agent import ( EchoAgentConfig, @@ -8,7 +8,7 @@ from vocode.streaming.models.agent import ( WebSocketUserImplementedAgentConfig, ) from vocode.streaming.models.message import BaseMessage -from vocode.streaming.telephony.zoom_dial_in import ZoomDialIn +from vocode.streaming.telephony.hosted.zoom_dial_in import ZoomDialIn if __name__ == "__main__": call = ZoomDialIn( diff --git a/simple_streaming_conversation.py b/examples/hosted_streaming_conversation.py similarity index 92% rename from simple_streaming_conversation.py rename to examples/hosted_streaming_conversation.py index 07ae480..59152f0 100644 --- a/simple_streaming_conversation.py +++ b/examples/hosted_streaming_conversation.py @@ -3,6 +3,7 @@ import logging import signal from dotenv import load_dotenv import os +from vocode.streaming.hosted_streaming_conversation import HostedStreamingConversation from vocode.streaming.streaming_conversation import StreamingConversation from vocode.helpers import create_microphone_input_and_speaker_output from vocode.streaming.models.transcriber import ( @@ -22,7 +23,6 @@ from vocode.streaming.models.agent import ( ) from vocode.streaming.models.message import BaseMessage from vocode.streaming.models.synthesizer import AzureSynthesizerConfig -from vocode.streaming.user_implemented_agent.restful_agent import RESTfulAgent import vocode load_dotenv() @@ -37,7 +37,7 @@ if __name__ == "__main__": streaming=True, use_default_devices=False ) - conversation = StreamingConversation( + conversation = HostedStreamingConversation( input_device=microphone_input, output_device=speaker_output, transcriber_config=DeepgramTranscriberConfig.from_input_device( diff --git a/examples/streaming_conversation.py b/examples/streaming_conversation.py new file mode 100644 index 0000000..60d2d90 --- /dev/null +++ b/examples/streaming_conversation.py @@ -0,0 +1,79 @@ +import asyncio +import logging +import signal +from dotenv import load_dotenv +import os +from vocode.streaming.agent.chat_gpt_agent import ChatGPTAgent +from vocode.streaming.streaming_conversation import StreamingConversation +from vocode.helpers import create_microphone_input_and_speaker_output +from vocode.streaming.models.transcriber import ( + DeepgramTranscriberConfig, + PunctuationEndpointingConfig, + GoogleTranscriberConfig, +) +from vocode.streaming.models.agent import ( + ChatGPTAgentConfig, + CutOffResponse, + FillerAudioConfig, + RESTfulUserImplementedAgentConfig, + WebSocketUserImplementedAgentConfig, + EchoAgentConfig, + LLMAgentConfig, + ChatGPTAgentConfig, +) +from vocode.streaming.models.message import BaseMessage +from vocode.streaming.models.synthesizer import ( + AzureSynthesizerConfig, + GoogleSynthesizerConfig, + RimeSynthesizerConfig, +) +import vocode +from vocode.streaming.synthesizer.azure_synthesizer import AzureSynthesizer +from vocode.streaming.transcriber.deepgram_transcriber import DeepgramTranscriber + +load_dotenv() +vocode.api_key = os.getenv("VOCODE_API_KEY") + +logging.basicConfig() +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + + +async def main(): + microphone_input, speaker_output = create_microphone_input_and_speaker_output( + streaming=True, use_default_devices=False + ) + + conversation = StreamingConversation( + output_device=speaker_output, + transcriber=DeepgramTranscriber( + DeepgramTranscriberConfig.from_input_device( + microphone_input, endpointing_config=PunctuationEndpointingConfig() + ) + ), + agent=ChatGPTAgent( + ChatGPTAgentConfig( + initial_message=BaseMessage(text="What up"), + prompt_preamble="""You are a helpful gen Z AI assistant. You use slang like um, but, and like a LOT. All of your responses are 10 words or less. Be super chill, use slang like +hella, down, fire, totally, but like, slay, vibing, queen, go off, bet, sus, simp, cap, big yikes, main character, dank""", + generate_responses=True, + cut_off_response=CutOffResponse(), + ) + ), + synthesizer=AzureSynthesizer( + AzureSynthesizerConfig.from_output_device(speaker_output), + ), + logger=logger, + ) + await conversation.start() + print("Conversation started, press Ctrl+C to end") + signal.signal(signal.SIGINT, lambda _0, _1: conversation.terminate()) + while conversation.is_active(): + chunk = microphone_input.get_audio() + if chunk: + conversation.receive_audio(chunk) + await asyncio.sleep(0) + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples/telephony_app.py b/examples/telephony_app.py new file mode 100644 index 0000000..8162cdb --- /dev/null +++ b/examples/telephony_app.py @@ -0,0 +1,69 @@ +import logging +from fastapi import FastAPI +import os +from dotenv import load_dotenv + +load_dotenv() + +from vocode.streaming.agent.chat_gpt_agent import ChatGPTAgent +from vocode.streaming.models.agent import ChatGPTAgentConfig +from vocode.streaming.models.message import BaseMessage +from vocode.streaming.models.telephony import TwilioConfig +from vocode.streaming.telephony.config_manager.redis_config_manager import ( + RedisConfigManager, +) +from vocode.streaming.telephony.conversation.outbound_call import OutboundCall + +from vocode.streaming.telephony.server.base import InboundCallConfig, TelephonyServer + +app = FastAPI(docs_url=None) + +logging.basicConfig() +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + +config_manager = RedisConfigManager() + +BASE_URL = "59b8e140372d.ngrok.app" + +telephony_server = TelephonyServer( + base_url=BASE_URL, + config_manager=config_manager, + inbound_call_configs=[ + InboundCallConfig( + url="/inbound_call", + agent_config=ChatGPTAgentConfig( + initial_message=BaseMessage(text="What up"), + prompt_preamble="""You are a helpful gen Z AI assistant. You use slang like um, but, and like a LOT. All of your responses are 10 words or less. Be super chill, use slang like +hella, down, fire, totally, but like, slay, vibing, queen, go off, bet, sus, simp, cap, big yikes, main character, dank""", + generate_responses=True, + ), + twilio_config=TwilioConfig( + account_sid=os.getenv("TWILIO_ACCOUNT_SID"), + auth_token=os.getenv("TWILIO_AUTH_TOKEN"), + ), + ) + ], + logger=logger, +) + +app.include_router(telephony_server.get_router()) + +# outbound_call = OutboundCall( +# base_url=BASE_URL, +# to_phone="+14088926228", +# from_phone="+14086600744", +# config_manager=config_manager, +# agent_config=ChatGPTAgentConfig( +# initial_message=BaseMessage(text="What up"), +# prompt_preamble="""You are a helpful gen Z AI assistant. You use slang like um, but, and like a LOT. All of your responses are 10 words or less. Be super chill, use slang like +# hella, down, fire, totally, but like, slay, vibing, queen, go off, bet, sus, simp, cap, big yikes, main character, dank""", +# generate_responses=True, +# ), +# twilio_config=TwilioConfig( +# account_sid=os.getenv("TWILIO_ACCOUNT_SID"), +# auth_token=os.getenv("TWILIO_AUTH_TOKEN"), +# ), +# logger=logger, +# ) +# outbound_call.start() diff --git a/simple_turn_based_conversation.py b/examples/turn_based_conversation.py similarity index 100% rename from simple_turn_based_conversation.py rename to examples/turn_based_conversation.py diff --git a/simple_user_implemented_agent.py b/examples/user_implemented_agent.py similarity index 100% rename from simple_user_implemented_agent.py rename to examples/user_implemented_agent.py diff --git a/requirements.txt b/requirements.txt index 306f119..3243676 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,6 +4,8 @@ anyio==3.6.2 async-timeout==4.0.2 attrs==22.2.0 azure-cognitiveservices-speech==1.25.0 +black==23.1.0 +cachetools==5.3.0 certifi==2022.12.7 cffi==1.15.1 charset-normalizer==3.0.1 @@ -12,32 +14,50 @@ dataclasses-json==0.5.7 decorator==5.1.1 fastapi==0.92.0 frozenlist==1.3.3 +google-api-core==2.11.0 +google-auth==2.16.3 +google-cloud-speech==2.17.3 +google-cloud-texttospeech==2.14.1 +googleapis-common-protos==1.59.0 +grpcio==1.51.3 +grpcio-status==1.51.3 h11==0.14.0 idna==3.4 +Jinja2==3.1.2 +joblib==1.2.0 langchain==0.0.117 +MarkupSafe==2.1.2 marshmallow==3.19.0 marshmallow-enum==1.5.1 mccabe==0.7.0 multidict==6.0.4 mypy-extensions==1.0.0 +nltk==3.8.1 numpy==1.24.2 openai==0.27.2 packaging==23.0 pathspec==0.11.0 platformdirs==3.1.0 ply==3.11 +proto-plus==1.22.2 +protobuf==4.22.1 +pyasn1==0.4.8 +pyasn1-modules==0.2.8 PyAudio==0.2.13 pycodestyle==2.10.0 pycparser==2.21 -pydantic>=1.9.0 -pyflakes>=2.5.0 +pydantic==1.10.7 pydub==0.25.1 +pyflakes==3.0.1 PyJWT==2.6.0 python-dotenv==0.21.1 python-multipart==0.0.6 pytz==2022.7.1 PyYAML==6.0 +redis==4.5.3 +regex==2023.3.23 requests==2.28.2 +rsa==4.9 six==1.16.0 sniffio==1.3.0 sounddevice==0.4.6 @@ -46,8 +66,9 @@ starlette==0.25.0 tenacity==8.2.2 tomli==2.0.1 tqdm==4.65.0 +twilio==7.17.0 typing-inspect==0.8.0 -typing_extensions>=3.10.0.2 +typing_extensions==4.5.0 urllib3==1.26.14 uvicorn==0.20.0 websockets==10.4 diff --git a/vocode/streaming/agent/base_agent.py b/vocode/streaming/agent/base_agent.py new file mode 100644 index 0000000..c3b1721 --- /dev/null +++ b/vocode/streaming/agent/base_agent.py @@ -0,0 +1,44 @@ +import random +from typing import Generator, Optional +from vocode.streaming.models.agent import ( + AgentConfig, + ChatGPTAgentConfig, + LLMAgentConfig, +) + + +class BaseAgent: + def __init__(self, agent_config: AgentConfig): + self.agent_config = agent_config + + def get_agent_config(self) -> AgentConfig: + return self.agent_config + + def start(self): + pass + + def respond( + self, human_input, is_interrupt: bool = False + ) -> tuple[Optional[str], bool]: + raise NotImplementedError + + def generate_response( + self, human_input, is_interrupt: bool = False + ) -> Generator[str, None, None]: + """Returns a generator that yields a sentence at a time.""" + raise NotImplementedError + + def update_last_bot_message_on_cut_off(self, message: str): + """Updates the last bot message in the conversation history when the human cuts off the bot's response.""" + pass + + def get_cut_off_response(self) -> Optional[str]: + assert isinstance(self.agent_config, LLMAgentConfig) or isinstance( + self.agent_config, ChatGPTAgentConfig + ) + on_cut_off_messages = self.agent_config.cut_off_response.messages + if on_cut_off_messages: + return random.choice(on_cut_off_messages).text + + def terminate(self): + pass diff --git a/vocode/streaming/agent/bot_sentiment_analyser.py b/vocode/streaming/agent/bot_sentiment_analyser.py new file mode 100644 index 0000000..c8ec3b0 --- /dev/null +++ b/vocode/streaming/agent/bot_sentiment_analyser.py @@ -0,0 +1,50 @@ +from typing import Optional +from langchain.llms import OpenAI +from langchain.prompts import PromptTemplate +from pydantic import BaseModel + +TEMPLATE = """ +Read the following conversation classify the final emotion of the Bot as one of [{emotions}]. +Output the degree of emotion as a value between 0 and 1 in the format EMOTION,DEGREE: ex. {example_emotion},0.5 + + +{{transcript}} + +""" + + +class BotSentiment(BaseModel): + emotion: Optional[str] = None + degree: float = 0.0 + + +class BotSentimentAnalyser: + def __init__(self, emotions: list[str], model_name: str = "text-davinci-003"): + self.model_name = model_name + self.llm = OpenAI( + model_name=self.model_name, + ) + assert len(emotions) > 0 + self.emotions = [e.lower() for e in emotions] + self.prompt = PromptTemplate( + input_variables=["transcript"], + template=TEMPLATE.format( + emotions=",".join(self.emotions), example_emotion=self.emotions[0] + ), + ) + + def analyse(self, transcript: str) -> BotSentiment: + prompt = self.prompt.format(transcript=transcript) + response = self.llm(prompt).strip() + tokens = response.split(",") + if len(tokens) != 2: + return BotSentiment(emotion=None, degree=0.0) + emotion, degree = tokens + emotion = emotion.strip().lower() + if emotion.lower() not in self.emotions: + return BotSentiment(emotion=None, degree=0.0) + try: + degree = float(degree.strip()) + except ValueError: + return BotSentiment(emotion=emotion, degree=0.5) + return BotSentiment(emotion=emotion, degree=degree) diff --git a/vocode/streaming/agent/chat_gpt_agent.py b/vocode/streaming/agent/chat_gpt_agent.py new file mode 100644 index 0000000..0a240e8 --- /dev/null +++ b/vocode/streaming/agent/chat_gpt_agent.py @@ -0,0 +1,158 @@ +import os +import random +import time +from langchain.prompts import ( + ChatPromptTemplate, + MessagesPlaceholder, + SystemMessagePromptTemplate, + HumanMessagePromptTemplate, +) +from langchain.chains import ConversationChain +from langchain.chat_models import ChatOpenAI +from langchain.llms import OpenAIChat +from langchain.memory import ConversationBufferMemory +from langchain.schema import ChatMessage, AIMessage +import openai +import json +from typing import Generator, Optional + +from dotenv import load_dotenv +from typing import Generator +import logging + +from vocode.streaming.agent.base_agent import BaseAgent +from vocode.streaming.models.agent import ChatGPTAgentConfig +from vocode.streaming.utils.sse_client import SSEClient +from vocode.streaming.agent.utils import stream_llm_response + +load_dotenv() + +openai.api_key = os.environ.get("OPENAI_API_KEY") + + +class ChatGPTAgent(BaseAgent): + def __init__(self, agent_config: ChatGPTAgentConfig, logger: logging.Logger = None): + super().__init__(agent_config) + self.agent_config = agent_config + self.logger = logger or logging.getLogger(__name__) + self.logger.setLevel(logging.DEBUG) + self.prompt = ChatPromptTemplate.from_messages( + [ + SystemMessagePromptTemplate.from_template(agent_config.prompt_preamble), + MessagesPlaceholder(variable_name="history"), + HumanMessagePromptTemplate.from_template("{input}"), + ] + ) + self.memory = ConversationBufferMemory(return_messages=True) + if agent_config.initial_message: + if ( + agent_config.generate_responses + ): # we use ChatMessages for memory when we generate responses + self.memory.chat_memory.messages.append( + ChatMessage( + content=agent_config.initial_message.text, role="assistant" + ) + ) + else: + self.memory.chat_memory.add_ai_message( + agent_config.initial_message.text + ) + self.llm = ChatOpenAI( + model_name=self.agent_config.model_name, + temperature=self.agent_config.temperature, + max_tokens=self.agent_config.max_tokens, + ) + self.conversation = ConversationChain( + memory=self.memory, prompt=self.prompt, llm=self.llm + ) + self.first_response = ( + self.create_first_response(agent_config.expected_first_prompt) + if agent_config.expected_first_prompt + else None + ) + self.is_first_response = True + + def create_first_response(self, first_prompt): + return self.conversation.predict(input=first_prompt) + + def respond(self, human_input, is_interrupt: bool = False) -> tuple[str, bool]: + if is_interrupt and self.agent_config.cut_off_response: + cut_off_response = self.get_cut_off_response() + self.memory.chat_memory.add_user_message(human_input) + self.memory.chat_memory.add_ai_message(cut_off_response) + return cut_off_response, False + self.logger.debug("LLM responding to human input") + if self.is_first_response and self.first_response: + self.logger.debug("First response is cached") + self.is_first_response = False + text = self.first_response + else: + text = self.conversation.predict(input=human_input) + self.logger.debug(f"LLM response: {text}") + return text, False + + def generate_response( + self, human_input, is_interrupt: bool = False + ) -> Generator[str, None, None]: + self.memory.chat_memory.messages.append( + ChatMessage(role="user", content=human_input) + ) + if is_interrupt and self.agent_config.cut_off_response: + cut_off_response = self.get_cut_off_response() + self.memory.chat_memory.messages.append( + ChatMessage(role="assistant", content=cut_off_response) + ) + yield cut_off_response + return + prompt_messages = [ + ChatMessage(role="system", content=self.agent_config.prompt_preamble) + ] + self.memory.chat_memory.messages + messages = SSEClient( + "POST", + "https://api.openai.com/v1/chat/completions", + headers={ + "Content-Type": "application/json", + "Authorization": f"Bearer {os.environ.get('OPENAI_API_KEY')}", + }, + json={ + "model": self.agent_config.model_name, + "messages": [ + prompt_message.dict(include={"content": True, "role": True}) + for prompt_message in prompt_messages + ], + "max_tokens": 256, + "temperature": 1.0, + "stream": True, + }, + ) + bot_memory_message = ChatMessage(role="assistant", content="") + self.memory.chat_memory.messages.append(bot_memory_message) + for message in stream_llm_response( + map(lambda event: json.loads(event.data), messages), + get_text=lambda choice: choice.get("delta", {}).get("content"), + ): + bot_memory_message.content = f"{bot_memory_message.content} {message}" + yield message + + def update_last_bot_message_on_cut_off(self, message: str): + for memory_message in self.memory.chat_memory.messages[::-1]: + if ( + isinstance(memory_message, ChatMessage) + and memory_message.role == "assistant" + ) or isinstance(memory_message, AIMessage): + memory_message.content = message + return + + +if __name__ == "__main__": + agent = ChatGPTAgent( + ChatGPTAgentConfig( + model_name="gpt-4", + prompt_preamble="The assistant is having a pleasant conversation about life. If the user hasn't completed their thought, the assistant responds with 'PASS'", + ) + ) + while True: + # response = agent.respond(input("Human: "))[0] + # print(f"AI: {response}") + for response in agent.generate_response(input("Human: ")): + print(f"AI: {response}") diff --git a/vocode/streaming/agent/echo_agent.py b/vocode/streaming/agent/echo_agent.py new file mode 100644 index 0000000..d2e8a87 --- /dev/null +++ b/vocode/streaming/agent/echo_agent.py @@ -0,0 +1,13 @@ +from typing import Generator +from vocode.streaming.agent.base_agent import BaseAgent + + +class EchoAgent(BaseAgent): + def respond(self, human_input, is_interrupt: bool = False) -> tuple[str, bool]: + return human_input, False + + def generate_response(self, human_input, is_interrupt: bool = False) -> Generator: + yield human_input + + def update_last_bot_message_on_cut_off(self, message: str): + pass diff --git a/vocode/streaming/agent/information_retrieval_agent.py b/vocode/streaming/agent/information_retrieval_agent.py new file mode 100644 index 0000000..a6c531b --- /dev/null +++ b/vocode/streaming/agent/information_retrieval_agent.py @@ -0,0 +1,32 @@ +import logging +from typing import List + +from langchain import OpenAI +from vocode.streaming.agent.llm_agent import LLMAgent +from ..models.agent import InformationRetrievalAgentConfig, LLMAgentConfig + + +class InformationRetrievalAgent(LLMAgent): + def __init__( + self, + agent_config: InformationRetrievalAgentConfig, + logger: logging.Logger, + ): + # super().__init__(agent_config, logger) + prompt_preamble = f""" + The AI is a friendly phone bot built for information retrieval. It understands IVR navigation and chooses which numbers to press based on the intended goal and the options provided. +Once it reaches the human, it verifies the identity of the person it is trying to reach and states its purpose. If it needs to be transferred, then the AI asks to speak to the intended recipient of the phone call. + +Here is the context for the call: +Intended goal: { agent_config.goal_description } +Intended recipient: { agent_config.recipient_descriptor } +Information to be collected: { agent_config.fields } +Information to provide to the person who answers the phone: this is a robot calling on behalf of { agent_config.caller_descriptor } + +The AI begins the call by introducing itself and who it represents. + """ + agent_config = LLMAgentConfig( + prompt_preamble=prompt_preamble, + ) + super().__init__(agent_config, logger=logger) + self.llm = OpenAI(model_name="text-davinci-003", temperature=1) diff --git a/vocode/streaming/agent/llm_agent.py b/vocode/streaming/agent/llm_agent.py new file mode 100644 index 0000000..e605507 --- /dev/null +++ b/vocode/streaming/agent/llm_agent.py @@ -0,0 +1,139 @@ +import re +from typing import Optional + +from dotenv import load_dotenv +from langchain import OpenAI +from langchain.llms import OpenAIChat +from typing import Generator +import logging + +from vocode.streaming.agent.base_agent import BaseAgent +from vocode.streaming.agent.utils import stream_llm_response +from vocode.streaming.models.agent import LLMAgentConfig + +load_dotenv() + + +class LLMAgent(BaseAgent): + SENTENCE_ENDINGS = [".", "!", "?"] + + DEFAULT_PROMPT_TEMPLATE = "{history}\nHuman: {human_input}\nAI:" + + def __init__( + self, + agent_config: LLMAgentConfig, + logger: logging.Logger = None, + sender="AI", + recipient="Human", + ): + super().__init__(agent_config) + self.agent_config = agent_config + self.prompt_template = ( + f"{agent_config.prompt_preamble}\n\n{self.DEFAULT_PROMPT_TEMPLATE}" + ) + self.initial_bot_message = ( + agent_config.initial_message.text if agent_config.initial_message else None + ) + self.logger = logger or logging.getLogger(__name__) + self.sender = sender + self.recipient = recipient + self.memory = ( + [f"AI: {agent_config.initial_message.text}"] + if agent_config.initial_message + else [] + ) + self.llm = OpenAI( + model_name=self.agent_config.model_name, + temperature=self.agent_config.temperature, + max_tokens=self.agent_config.max_tokens, + ) + self.stop_tokens = [f"{recipient}:"] + self.first_response = ( + self.llm( + self.prompt_template.format( + history="", human_input=agent_config.expected_first_prompt + ), + stop=self.stop_tokens, + ).strip() + if agent_config.expected_first_prompt + else None + ) + self.is_first_response = True + + def create_prompt(self, human_input): + history = "\n".join(self.memory[-5:]) + return self.prompt_template.format(history=history, human_input=human_input) + + def get_memory_entry(self, human_input, response): + return f"{self.recipient}: {human_input}\n{self.sender}: {response}" + + def respond(self, human_input, is_interrupt: bool = False) -> tuple[str, bool]: + if is_interrupt and self.agent_config.cut_off_response: + cut_off_response = self.get_cut_off_response() + self.memory.append(self.get_memory_entry(human_input, cut_off_response)) + return cut_off_response, False + self.logger.debug("LLM responding to human input") + if self.is_first_response and self.first_response: + self.logger.debug("First response is cached") + self.is_first_response = False + response = self.first_response + else: + response = self.llm(self.create_prompt(human_input), stop=self.stop_tokens) + response = response.replace(f"{self.sender}:", "") + self.memory.append(self.get_memory_entry(human_input, response)) + self.logger.debug(f"LLM response: {response}") + return response, False + + def generate_response(self, human_input, is_interrupt: bool = False) -> Generator: + self.logger.debug("LLM generating response to human input") + if is_interrupt and self.agent_config.cut_off_response: + cut_off_response = self.get_cut_off_response() + self.memory.append(self.get_memory_entry(human_input, cut_off_response)) + yield cut_off_response + return + self.memory.append(self.get_memory_entry(human_input, "")) + if self.is_first_response and self.first_response: + self.logger.debug("First response is cached") + self.is_first_response = False + sentences = [self.first_response] + else: + self.logger.debug("Creating LLM prompt") + prompt = self.create_prompt(human_input) + self.logger.debug("Streaming LLM response") + sentences = stream_llm_response( + map( + lambda resp: resp.to_dict(), + self.llm.stream(prompt, stop=self.stop_tokens), + ) + ) + response_buffer = "" + for sentence in sentences: + sentence = sentence.replace(f"{self.sender}:", "") + sentence = re.sub(r"^\s+(.*)", r" \1", sentence) + response_buffer += sentence + self.memory[-1] = self.get_memory_entry(human_input, response_buffer) + yield sentence + + def update_last_bot_message_on_cut_off(self, message: str): + last_message = self.memory[-1] + new_last_message = ( + last_message.split("\n", 1)[0] + f"\n{self.sender}: {message}" + ) + self.memory[-1] = new_last_message + + +if __name__ == "__main__": + chat_responder = LLMAgent( + LLMAgentConfig( + prompt_preamble=""" +The AI is having a pleasant conversation about life. If the human hasn't completed their thought, the AI responds with 'PASS' + +{history} +Human: {human_input} +AI:""", + ) + ) + while True: + # response = chat_responder.respond(input("Human: "))[0] + for response in chat_responder.generate_response(input("Human: ")): + print(f"AI: {response}") diff --git a/vocode/streaming/agent/utils.py b/vocode/streaming/agent/utils.py new file mode 100644 index 0000000..664a5f2 --- /dev/null +++ b/vocode/streaming/agent/utils.py @@ -0,0 +1,25 @@ +from typing import Generator + +SENTENCE_ENDINGS = [".", "!", "?"] + + +def stream_llm_response( + gen, get_text=lambda choice: choice.get("text"), sentence_endings=SENTENCE_ENDINGS +) -> Generator: + buffer = "" + for response in gen: + choices = response.get("choices", []) + if len(choices) == 0: + break + choice = choices[0] + if choice["finish_reason"]: + break + token = get_text(choice) + if not token: + continue + buffer += token + if any(token.endswith(ending) for ending in sentence_endings): + yield buffer.strip() + buffer = "" + if buffer.strip(): + yield buffer diff --git a/vocode/streaming/constants.py b/vocode/streaming/constants.py new file mode 100644 index 0000000..d672611 --- /dev/null +++ b/vocode/streaming/constants.py @@ -0,0 +1,3 @@ +TEXT_TO_SPEECH_CHUNK_SIZE_SECONDS = 1 +PER_CHUNK_ALLOWANCE_SECONDS = 0.05 +ALLOWED_IDLE_TIME = 15 diff --git a/vocode/streaming/factory.py b/vocode/streaming/factory.py new file mode 100644 index 0000000..063c46b --- /dev/null +++ b/vocode/streaming/factory.py @@ -0,0 +1,58 @@ +from vocode.streaming.agent.base_agent import BaseAgent +from vocode.streaming.agent.chat_gpt_agent import ChatGPTAgent +from vocode.streaming.agent.echo_agent import EchoAgent +from vocode.streaming.agent.information_retrieval_agent import InformationRetrievalAgent +from vocode.streaming.agent.llm_agent import LLMAgent +from vocode.streaming.models.agent import AgentConfig, AgentType +from vocode.streaming.models.synthesizer import SynthesizerConfig, SynthesizerType +from vocode.streaming.models.transcriber import TranscriberConfig, TranscriberType +from vocode.streaming.synthesizer.azure_synthesizer import AzureSynthesizer +from vocode.streaming.synthesizer.base_synthesizer import BaseSynthesizer +from vocode.streaming.synthesizer.eleven_labs_synthesizer import ElevenLabsSynthesizer +from vocode.streaming.synthesizer.google_synthesizer import GoogleSynthesizer +from vocode.streaming.synthesizer.rime_synthesizer import RimeSynthesizer +from vocode.streaming.transcriber.assembly_ai_transcriber import AssemblyAITranscriber +from vocode.streaming.transcriber.base_transcriber import BaseTranscriber +from vocode.streaming.transcriber.deepgram_transcriber import DeepgramTranscriber +from vocode.streaming.transcriber.google_transcriber import GoogleTranscriber + + +def create_transcriber(transcriber_config: TranscriberConfig) -> BaseTranscriber: + if transcriber_config.type == TranscriberType.DEEPGRAM: + return DeepgramTranscriber(transcriber_config) + elif transcriber_config.type == TranscriberType.GOOGLE: + return GoogleTranscriber(transcriber_config) + elif transcriber_config.type == TranscriberType.ASSEMBLY_AI: + return AssemblyAITranscriber(transcriber_config) + else: + raise Exception("Invalid transcriber config") + + +def create_agent(agent_config: AgentConfig) -> BaseAgent: + if agent_config.type == AgentType.LLM: + return LLMAgent(agent_config=agent_config) + elif agent_config.type == AgentType.CHAT_GPT: + return ChatGPTAgent(agent_config=agent_config) + elif agent_config.type == AgentType.ECHO: + return EchoAgent(agent_config=agent_config) + elif agent_config.type == AgentType.INFORMATION_RETRIEVAL: + return InformationRetrievalAgent( + agent_config=agent_config, + ) + raise Exception("Invalid agent config", agent_config.type) + + +def create_synthesizer(synthesizer_config: SynthesizerConfig) -> BaseSynthesizer: + if synthesizer_config.type == SynthesizerType.GOOGLE: + return GoogleSynthesizer(synthesizer_config) + elif synthesizer_config.type == SynthesizerType.AZURE: + return AzureSynthesizer(synthesizer_config) + elif synthesizer_config.type == SynthesizerType.ELEVEN_LABS: + kwargs = {} + if synthesizer_config.voice_id: + kwargs["voice_id"] = synthesizer_config.voice_id + return ElevenLabsSynthesizer(synthesizer_config, **kwargs) + elif synthesizer_config.type == SynthesizerType.RIME: + return RimeSynthesizer(synthesizer_config) + else: + raise Exception("Invalid synthesizer config") diff --git a/vocode/streaming/hosted_streaming_conversation.py b/vocode/streaming/hosted_streaming_conversation.py new file mode 100644 index 0000000..657e40d --- /dev/null +++ b/vocode/streaming/hosted_streaming_conversation.py @@ -0,0 +1,106 @@ +import websockets +from websockets.exceptions import ConnectionClosedOK +from websockets.client import WebSocketClientProtocol +import asyncio +from dotenv import load_dotenv +import os +import logging +import threading +import queue +import vocode +from vocode.streaming.input_device.base_input_device import ( + BaseInputDevice, +) +from vocode.streaming.output_device.base_output_device import BaseOutputDevice +from vocode.streaming.models.transcriber import TranscriberConfig +from vocode.streaming.models.agent import AgentConfig +from vocode.streaming.models.synthesizer import SynthesizerConfig +from vocode.streaming.models.websocket import ( + ReadyMessage, + AudioMessage, + StartMessage, + StopMessage, +) + +load_dotenv() + + +class HostedStreamingConversation: + def __init__( + self, + input_device: BaseInputDevice, + output_device: BaseOutputDevice, + transcriber_config: TranscriberConfig, + agent_config: AgentConfig, + synthesizer_config: SynthesizerConfig, + id: str = None, + ): + self.id = id + self.input_device = input_device + self.output_device = output_device + self.transcriber_config = transcriber_config + self.agent_config = agent_config + self.synthesizer_config = synthesizer_config + self.logger = logging.getLogger(__name__) + self.receiver_ready = False + self.active = True + self.output_loop = asyncio.new_event_loop() + self.output_audio_queue = queue.Queue() + self.vocode_websocket_url = f"wss://{vocode.base_url}/conversation" + + async def wait_for_ready(self): + while not self.receiver_ready: + await asyncio.sleep(0.1) + return True + + def deactivate(self): + self.active = False + + def play_audio(self): + async def run(): + while self.active: + try: + audio = self.output_audio_queue.get(timeout=5) + await self.output_device.send_async(audio) + except queue.Empty: + continue + + loop = asyncio.new_event_loop() + loop.run_until_complete(run()) + + async def start(self): + async with websockets.connect( + f"{self.vocode_websocket_url}?key={vocode.api_key}" + ) as ws: + + async def sender(ws: WebSocketClientProtocol): + start_message = StartMessage( + transcriber_config=self.transcriber_config, + agent_config=self.agent_config, + synthesizer_config=self.synthesizer_config, + conversation_id=self.id, + ) + await ws.send(start_message.json()) + await self.wait_for_ready() + self.logger.info("Listening...press Ctrl+C to stop") + while self.active: + data = self.input_device.get_audio() + if data: + try: + await ws.send(AudioMessage.from_bytes(data).json()) + except ConnectionClosedOK: + self.deactivate() + return + await asyncio.sleep(0) + await ws.send(StopMessage().json()) + + async def receiver(ws: WebSocketClientProtocol): + ReadyMessage.parse_raw(await ws.recv()) + self.receiver_ready = True + async for msg in ws: + audio_message = AudioMessage.parse_raw(msg) + self.output_audio_queue.put_nowait(audio_message.get_bytes()) + + output_thread = threading.Thread(target=self.play_audio) + output_thread.start() + return await asyncio.gather(sender(ws), receiver(ws)) diff --git a/vocode/streaming/models/agent.py b/vocode/streaming/models/agent.py index 1739267..4c05b6d 100644 --- a/vocode/streaming/models/agent.py +++ b/vocode/streaming/models/agent.py @@ -42,6 +42,7 @@ class AgentConfig(TypedModel, type=AgentType.BASE): initial_message: Optional[BaseMessage] = None generate_responses: bool = True allowed_idle_time_seconds: Optional[float] = None + allow_agent_to_be_cut_off: bool = True end_conversation_on_goodbye: bool = False send_filler_audio: Union[bool, FillerAudioConfig] = False @@ -59,6 +60,13 @@ class LLMAgentConfig(AgentConfig, type=AgentType.LLM): cut_off_response: Optional[CutOffResponse] = None +class ChatGPTAlphaAgentConfig(AgentConfig, type=AgentType.CHAT_GPT_ALPHA): + prompt_preamble: str + expected_first_prompt: Optional[str] = None + temperature: float = LLM_AGENT_DEFAULT_TEMPERATURE + max_tokens: int = LLM_AGENT_DEFAULT_MAX_TOKENS + + class ChatGPTAgentConfig(AgentConfig, type=AgentType.CHAT_GPT): prompt_preamble: str expected_first_prompt: Optional[str] = None diff --git a/vocode/streaming/models/audio_encoding.py b/vocode/streaming/models/audio_encoding.py index bc451bc..1fd3240 100644 --- a/vocode/streaming/models/audio_encoding.py +++ b/vocode/streaming/models/audio_encoding.py @@ -1,5 +1,6 @@ from enum import Enum + class AudioEncoding(str, Enum): LINEAR16 = "linear16" - MULAW = "mulaw" \ No newline at end of file + MULAW = "mulaw" diff --git a/vocode/streaming/models/model.py b/vocode/streaming/models/model.py index 01777d5..d9ced28 100644 --- a/vocode/streaming/models/model.py +++ b/vocode/streaming/models/model.py @@ -1,17 +1,17 @@ import pydantic -class BaseModel(pydantic.BaseModel): +class BaseModel(pydantic.BaseModel): def __init__(self, **data): for key, value in data.items(): if isinstance(value, dict): - if 'type' in value: + if "type" in value: data[key] = TypedModel.parse_obj(value) super().__init__(**data) + # Adapted from https://github.com/pydantic/pydantic/discussions/3091 class TypedModel(BaseModel): - _subtypes_ = [] def __init_subclass__(cls, type=None): @@ -22,31 +22,30 @@ class TypedModel(BaseModel): for t, cls in _cls._subtypes_: if t == type: return cls - raise ValueError(f'Unknown type {type}') - + raise ValueError(f"Unknown type {type}") + @classmethod def get_type(_cls, cls_name): for t, cls in _cls._subtypes_: if cls.__name__ == cls_name: return t - raise ValueError(f'Unknown class {cls_name}') - + raise ValueError(f"Unknown class {cls_name}") + @classmethod def parse_obj(cls, obj): - data_type = obj.get('type') + data_type = obj.get("type") if data_type is None: - raise ValueError(f'type is required for {cls.__name__}') - + raise ValueError(f"type is required for {cls.__name__}") + sub = cls.get_cls(data_type) if sub is None: - raise ValueError(f'Unknown type {data_type}') + raise ValueError(f"Unknown type {data_type}") return sub(**obj) def _iter(self, **kwargs): - yield 'type', self.get_type(self.__class__.__name__) + yield "type", self.get_type(self.__class__.__name__) yield from super()._iter(**kwargs) @property def type(self): return self.get_type(self.__class__.__name__) - diff --git a/vocode/streaming/models/synthesizer.py b/vocode/streaming/models/synthesizer.py index fca1cc0..e05f6a4 100644 --- a/vocode/streaming/models/synthesizer.py +++ b/vocode/streaming/models/synthesizer.py @@ -2,9 +2,14 @@ from enum import Enum from typing import Optional, Union from pydantic import BaseModel, validator + +from vocode.streaming.output_device.base_output_device import BaseOutputDevice +from vocode.streaming.telephony.constants import ( + DEFAULT_AUDIO_ENCODING, + DEFAULT_SAMPLING_RATE, +) from .model import TypedModel from .audio_encoding import AudioEncoding -from ..output_device.base_output_device import BaseOutputDevice class SynthesizerType(str, Enum): @@ -38,6 +43,13 @@ class SynthesizerConfig(TypedModel, type=SynthesizerType.BASE): audio_encoding=output_device.audio_encoding, ) + @classmethod + def from_telephone_output_device(cls): + return cls( + sampling_rate=DEFAULT_SAMPLING_RATE, + audio_encoding=DEFAULT_AUDIO_ENCODING, + ) + AZURE_SYNTHESIZER_DEFAULT_VOICE_NAME = "en-US-AriaNeural" AZURE_SYNTHESIZER_DEFAULT_PITCH = 0 @@ -45,18 +57,32 @@ AZURE_SYNTHESIZER_DEFAULT_RATE = 15 class AzureSynthesizerConfig(SynthesizerConfig, type=SynthesizerType.AZURE): - voice_name: str = AZURE_SYNTHESIZER_DEFAULT_VOICE_NAME - pitch: int = AZURE_SYNTHESIZER_DEFAULT_PITCH - rate: int = AZURE_SYNTHESIZER_DEFAULT_RATE + voice_name: Optional[str] = AZURE_SYNTHESIZER_DEFAULT_VOICE_NAME + pitch: Optional[int] = AZURE_SYNTHESIZER_DEFAULT_PITCH + rate: Optional[int] = AZURE_SYNTHESIZER_DEFAULT_RATE + + class Config: + validate_assignment = True + + @validator("voice_name") + def set_name(cls, voice_name): + return voice_name or AZURE_SYNTHESIZER_DEFAULT_VOICE_NAME + + @validator("pitch") + def set_pitch(cls, pitch): + return pitch or AZURE_SYNTHESIZER_DEFAULT_PITCH + + @validator("rate") + def set_rate(cls, rate): + return rate or AZURE_SYNTHESIZER_DEFAULT_RATE @classmethod def from_output_device( cls, output_device: BaseOutputDevice, - voice_name: str = AZURE_SYNTHESIZER_DEFAULT_VOICE_NAME, - pitch: int = AZURE_SYNTHESIZER_DEFAULT_PITCH, - rate: int = AZURE_SYNTHESIZER_DEFAULT_RATE, - track_bot_sentiment_in_voice: Union[bool, TrackBotSentimentConfig] = False, + voice_name: Optional[str] = None, + pitch: Optional[int] = None, + rate: Optional[int] = None, ): return cls( sampling_rate=output_device.sampling_rate, @@ -64,16 +90,33 @@ class AzureSynthesizerConfig(SynthesizerConfig, type=SynthesizerType.AZURE): voice_name=voice_name, pitch=pitch, rate=rate, - track_bot_sentiment_in_voice=track_bot_sentiment_in_voice, ) - pass + @classmethod + def from_telephone_output_device( + cls, + voice_name: Optional[str] = None, + pitch: Optional[int] = None, + rate: Optional[int] = None, + ): + return cls( + sampling_rate=DEFAULT_SAMPLING_RATE, + audio_encoding=DEFAULT_AUDIO_ENCODING, + voice_name=voice_name, + pitch=pitch, + rate=rate, + ) class GoogleSynthesizerConfig(SynthesizerConfig, type=SynthesizerType.GOOGLE): pass +class ElevenLabsSynthesizerConfig(SynthesizerConfig, type=SynthesizerType.ELEVEN_LABS): + api_key: str + voice_id: Optional[str] = None + + class RimeSynthesizerConfig(SynthesizerConfig, type=SynthesizerType.RIME): speaker: str @@ -88,3 +131,14 @@ class RimeSynthesizerConfig(SynthesizerConfig, type=SynthesizerType.RIME): audio_encoding=output_device.audio_encoding, speaker=speaker, ) + + @classmethod + def from_telephone_output_device( + cls, + speaker: str, + ): + return cls( + sampling_rate=DEFAULT_SAMPLING_RATE, + audio_encoding=DEFAULT_AUDIO_ENCODING, + speaker=speaker, + ) diff --git a/vocode/streaming/models/telephony.py b/vocode/streaming/models/telephony.py index 76110c9..96f8a55 100644 --- a/vocode/streaming/models/telephony.py +++ b/vocode/streaming/models/telephony.py @@ -1,4 +1,5 @@ from typing import Optional +from vocode.streaming.models.audio_encoding import AudioEncoding from vocode.streaming.models.model import BaseModel from vocode.streaming.models.agent import AgentConfig from vocode.streaming.models.synthesizer import SynthesizerConfig @@ -19,6 +20,7 @@ class CreateInboundCall(BaseModel): agent_config: AgentConfig synthesizer_config: Optional[SynthesizerConfig] = None twilio_sid: str + conversation_id: Optional[str] = None twilio_config: Optional[TwilioConfig] = None @@ -48,3 +50,11 @@ class DialIntoZoomCall(BaseModel): synthesizer_config: Optional[SynthesizerConfig] = None conversation_id: Optional[str] = None twilio_config: Optional[TwilioConfig] = None + + +class CallConfig(BaseModel): + transcriber_config: TranscriberConfig + agent_config: AgentConfig + synthesizer_config: SynthesizerConfig + twilio_config: Optional[TwilioConfig] + twilio_sid: str diff --git a/vocode/streaming/models/transcriber.py b/vocode/streaming/models/transcriber.py index 60f5dd7..5c64933 100644 --- a/vocode/streaming/models/transcriber.py +++ b/vocode/streaming/models/transcriber.py @@ -1,8 +1,11 @@ from enum import Enum from typing import Optional -from vocode.streaming.input_device.base_input_device import ( - BaseInputDevice, +from vocode.streaming.input_device.base_input_device import BaseInputDevice +from vocode.streaming.telephony.constants import ( + DEFAULT_AUDIO_ENCODING, + DEFAULT_CHUNK_SIZE, + DEFAULT_SAMPLING_RATE, ) from .audio_encoding import AudioEncoding from .model import BaseModel, TypedModel @@ -54,11 +57,25 @@ class TranscriberConfig(TypedModel, type=TranscriberType.BASE): endpointing_config=endpointing_config, ) + @classmethod + def from_telephone_input_device( + cls, + endpointing_config: Optional[EndpointingConfig] = None, + ): + return cls( + sampling_rate=DEFAULT_SAMPLING_RATE, + audio_encoding=DEFAULT_AUDIO_ENCODING, + chunk_size=DEFAULT_CHUNK_SIZE, + endpointing_config=endpointing_config, + ) + class DeepgramTranscriberConfig(TranscriberConfig, type=TranscriberType.DEEPGRAM): model: Optional[str] = None + tier: Optional[str] = None should_warmup_model: bool = False version: Optional[str] = None + downsampling: Optional[int] = None class GoogleTranscriberConfig(TranscriberConfig, type=TranscriberType.GOOGLE): diff --git a/vocode/streaming/models/websocket.py b/vocode/streaming/models/websocket.py index b398ff2..e04e067 100644 --- a/vocode/streaming/models/websocket.py +++ b/vocode/streaming/models/websocket.py @@ -6,33 +6,40 @@ from .transcriber import TranscriberConfig from .agent import AgentConfig from .synthesizer import SynthesizerConfig -class WebSocketMessageType(str, Enum): - BASE = 'websocket_base' - START = 'websocket_start' - AUDIO = 'websocket_audio' - READY = 'websocket_ready' - STOP = 'websocket_stop' -class WebSocketMessage(TypedModel, type=WebSocketMessageType.BASE): pass +class WebSocketMessageType(str, Enum): + BASE = "websocket_base" + START = "websocket_start" + AUDIO = "websocket_audio" + READY = "websocket_ready" + STOP = "websocket_stop" + + +class WebSocketMessage(TypedModel, type=WebSocketMessageType.BASE): + pass + class AudioMessage(WebSocketMessage, type=WebSocketMessageType.AUDIO): data: str @classmethod def from_bytes(cls, chunk: bytes): - return cls(data=base64.b64encode(chunk).decode('utf-8')) + return cls(data=base64.b64encode(chunk).decode("utf-8")) def get_bytes(self) -> bytes: return base64.b64decode(self.data) + class StartMessage(WebSocketMessage, type=WebSocketMessageType.START): transcriber_config: TranscriberConfig agent_config: AgentConfig synthesizer_config: SynthesizerConfig conversation_id: Optional[str] = None + class ReadyMessage(WebSocketMessage, type=WebSocketMessageType.READY): pass + class StopMessage(WebSocketMessage, type=WebSocketMessageType.STOP): - pass \ No newline at end of file + pass diff --git a/vocode/streaming/output_device/base_output_device.py b/vocode/streaming/output_device/base_output_device.py index 19e8bce..8f8e0fe 100644 --- a/vocode/streaming/output_device/base_output_device.py +++ b/vocode/streaming/output_device/base_output_device.py @@ -6,7 +6,7 @@ class BaseOutputDevice: self.sampling_rate = sampling_rate self.audio_encoding = audio_encoding - async def send_async(self, chunk): + async def send_async(self, chunk: bytes): raise NotImplemented async def maybe_send_mark_async(self, message): diff --git a/vocode/streaming/output_device/twilio_output_device.py b/vocode/streaming/output_device/twilio_output_device.py new file mode 100644 index 0000000..18a2483 --- /dev/null +++ b/vocode/streaming/output_device/twilio_output_device.py @@ -0,0 +1,30 @@ +import json +import base64 + +from fastapi import WebSocket + +from vocode.streaming.output_device.base_output_device import BaseOutputDevice + + +class TwilioOutputDevice(BaseOutputDevice): + def __init__(self, ws: WebSocket = None, stream_sid: str = None): + self.ws = ws + self.stream_sid = stream_sid + + async def send_async(self, chunk: bytes): + twilio_message = { + "event": "media", + "streamSid": self.stream_sid, + "media": {"payload": base64.b64encode(chunk).decode("utf-8")}, + } + await self.ws.send_text(json.dumps(twilio_message)) + + async def maybe_send_mark_async(self, message_sent): + mark_message = { + "event": "mark", + "streamSid": self.stream_sid, + "mark": { + "name": "Sent {}".format(message_sent), + }, + } + await self.ws.send_text(json.dumps(mark_message)) diff --git a/vocode/streaming/streaming_conversation.py b/vocode/streaming/streaming_conversation.py index 04700ad..89ad708 100644 --- a/vocode/streaming/streaming_conversation.py +++ b/vocode/streaming/streaming_conversation.py @@ -1,26 +1,67 @@ -import websockets -from websockets.exceptions import ConnectionClosedOK -from websockets.client import WebSocketClientProtocol import asyncio -from dotenv import load_dotenv -import os +from asyncio import Future +import queue +from typing import Callable, Awaitable, Optional, Any import logging import threading -import queue -import vocode -from vocode.streaming.input_device.base_input_device import ( - BaseInputDevice, +import time +import secrets +import random + +from dotenv import load_dotenv +from vocode.streaming.agent.bot_sentiment_analyser import ( + BotSentiment, + BotSentimentAnalyser, ) +from vocode.streaming.agent.information_retrieval_agent import InformationRetrievalAgent +from vocode.streaming.models.message import BaseMessage from vocode.streaming.output_device.base_output_device import BaseOutputDevice -from vocode.streaming.models.transcriber import TranscriberConfig -from vocode.streaming.models.agent import AgentConfig -from vocode.streaming.models.synthesizer import SynthesizerConfig -from vocode.streaming.models.websocket import ( - ReadyMessage, - AudioMessage, - StartMessage, - StopMessage, +from vocode.streaming.synthesizer.rime_synthesizer import RimeSynthesizer +from vocode.streaming.transcriber.assembly_ai_transcriber import AssemblyAITranscriber +from vocode.streaming.utils.goodbye_model import GoodbyeModel +from vocode.streaming.utils.transcript import Transcript + +from vocode.streaming.models.transcriber import ( + TranscriberConfig, + TranscriberType, ) +from vocode.streaming.models.agent import ( + AgentConfig, + AgentType, + FillerAudioConfig, + FILLER_AUDIO_DEFAULT_SILENCE_THRESHOLD_SECONDS, +) +from vocode.streaming.models.synthesizer import ( + SynthesizerConfig, + SynthesizerType, + TrackBotSentimentConfig, +) +from vocode.streaming.models.websocket import AudioMessage +from vocode.streaming.constants import ( + TEXT_TO_SPEECH_CHUNK_SIZE_SECONDS, + PER_CHUNK_ALLOWANCE_SECONDS, + ALLOWED_IDLE_TIME, +) +from vocode.streaming.agent.base_agent import BaseAgent +from vocode.streaming.synthesizer.base_synthesizer import ( + BaseSynthesizer, + SynthesisResult, + FillerAudio, +) +from vocode.streaming.synthesizer.google_synthesizer import GoogleSynthesizer +from vocode.streaming.synthesizer.azure_synthesizer import AzureSynthesizer +from vocode.streaming.synthesizer.eleven_labs_synthesizer import ElevenLabsSynthesizer +from vocode.streaming.utils import ( + create_conversation_id, + create_loop_in_thread, + get_chunk_size_per_second, +) +from vocode.streaming.transcriber.base_transcriber import ( + Transcription, + BaseTranscriber, +) +from vocode.streaming.transcriber.google_transcriber import GoogleTranscriber +from vocode.streaming.transcriber.deepgram_transcriber import DeepgramTranscriber load_dotenv() @@ -28,79 +69,468 @@ load_dotenv() class StreamingConversation: def __init__( self, - input_device: BaseInputDevice, output_device: BaseOutputDevice, - transcriber_config: TranscriberConfig, - agent_config: AgentConfig, - synthesizer_config: SynthesizerConfig, - id: str = None, + transcriber: BaseTranscriber, + agent: BaseAgent, + synthesizer: BaseSynthesizer, + conversation_id: str = None, + per_chunk_allowance_seconds: int = PER_CHUNK_ALLOWANCE_SECONDS, + logger: Optional[logging.Logger] = None, ): - self.id = id - self.input_device = input_device + self.id = conversation_id or create_conversation_id() + self.logger = logger or logging.getLogger(__name__) self.output_device = output_device - self.transcriber_config = transcriber_config - self.agent_config = agent_config - self.synthesizer_config = synthesizer_config - self.logger = logging.getLogger(__name__) - self.receiver_ready = False - self.active = True - self.output_loop = asyncio.new_event_loop() - self.output_audio_queue = queue.Queue() - self.vocode_websocket_url = f"wss://{vocode.base_url}/conversation" + self.transcriber = transcriber + self.transcriber.set_on_response(self.on_transcription_response) + self.transcriber_task = None + self.agent = agent + self.synthesizer = synthesizer + self.synthesizer_event_loop = asyncio.new_event_loop() + self.synthesizer_thread = threading.Thread( + name="synthesizer", + target=create_loop_in_thread, + args=(self.synthesizer_event_loop,), + ) + self.per_chunk_allowance_seconds = per_chunk_allowance_seconds + self.transcript = Transcript() + self.bot_sentiment = None + if self.synthesizer.get_synthesizer_config().track_bot_sentiment_in_voice: + if isinstance( + self.synthesizer.get_synthesizer_config().track_bot_sentiment_in_voice, + bool, + ): + self.track_bot_sentiment_config = TrackBotSentimentConfig() + else: + self.track_bot_sentiment_config = ( + self.synthesizer.get_synthesizer_config().track_bot_sentiment_in_voice + ) + self.bot_sentiment_analyser = BotSentimentAnalyser( + emotions=self.track_bot_sentiment_config.emotions + ) + self.goodbye_model = GoodbyeModel() - async def wait_for_ready(self): - while not self.receiver_ready: - await asyncio.sleep(0.1) - return True - - def deactivate(self): + self.is_human_speaking = False self.active = False - - def play_audio(self): - async def run(): - while self.active: - try: - audio = self.output_audio_queue.get(timeout=5) - await self.output_device.send_async(audio) - except queue.Empty: - continue - - loop = asyncio.new_event_loop() - loop.run_until_complete(run()) + self.current_synthesis_task = None + self.is_current_synthesis_interruptable = False + self.stop_events: queue.Queue[threading.Event] = queue.Queue() + self.last_action_timestamp = time.time() + self.check_for_idle_task = None + self.track_bot_sentiment_task = None + self.should_wait_for_filler_audio_done_event = False + self.current_filler_audio_done_event: Optional[threading.Event] = None + self.current_filler_seconds_per_chunk: int = 0 + self.current_transcription_is_interrupt: bool = False async def start(self): - async with websockets.connect( - f"{self.vocode_websocket_url}?key={vocode.api_key}" - ) as ws: - - async def sender(ws: WebSocketClientProtocol): - start_message = StartMessage( - transcriber_config=self.transcriber_config, - agent_config=self.agent_config, - synthesizer_config=self.synthesizer_config, - conversation_id=self.id, + self.transcriber_task = asyncio.create_task(self.transcriber.run()) + is_ready = await self.transcriber.ready() + if not is_ready: + raise Exception("Transcriber startup failed") + self.synthesizer_thread.start() + if self.agent.get_agent_config().send_filler_audio: + filler_audio_config = ( + self.agent.get_agent_config().send_filler_audio + if isinstance( + self.agent.get_agent_config().send_filler_audio, FillerAudioConfig ) - await ws.send(start_message.json()) - await self.wait_for_ready() - self.logger.info("Listening...press Ctrl+C to stop") - while self.active: - data = self.input_device.get_audio() - if data: - try: - await ws.send(AudioMessage.from_bytes(data).json()) - except ConnectionClosedOK: - self.deactivate() - return + else FillerAudioConfig() + ) + self.synthesizer.set_filler_audios(filler_audio_config) + self.agent.start() + if self.agent.get_agent_config().initial_message: + self.transcript.add_bot_message( + self.agent.get_agent_config().initial_message.text + ) + if self.synthesizer.get_synthesizer_config().track_bot_sentiment_in_voice: + self.update_bot_sentiment() + self.send_message_to_stream_nonblocking( + self.agent.get_agent_config().initial_message, False + ) + self.active = True + if self.synthesizer.get_synthesizer_config().track_bot_sentiment_in_voice: + self.track_bot_sentiment_task = asyncio.create_task( + self.track_bot_sentiment() + ) + self.check_for_idle_task = asyncio.create_task(self.check_for_idle()) + + async def check_for_idle(self): + while self.is_active(): + if time.time() - self.last_action_timestamp > ( + self.agent.get_agent_config().allowed_idle_time_seconds + or ALLOWED_IDLE_TIME + ): + self.logger.debug("Conversation idle for too long, terminating") + self.mark_terminated() + return + await asyncio.sleep(15) + + async def track_bot_sentiment(self): + prev_transcript = None + while self.is_active(): + await asyncio.sleep(1) + if self.transcript.to_string() != prev_transcript: + self.update_bot_sentiment() + prev_transcript = self.transcript.to_string() + + def update_bot_sentiment(self): + new_bot_sentiment = self.bot_sentiment_analyser.analyse( + self.transcript.to_string() + ) + if new_bot_sentiment.emotion: + self.logger.debug("Bot sentiment: %s", new_bot_sentiment) + self.bot_sentiment = new_bot_sentiment + + def receive_audio(self, chunk: bytes): + self.transcriber.send_audio(chunk) + + async def send_messages_to_stream_async( + self, + messages, + should_allow_human_to_cut_off_bot: bool, + wait_for_filler_audio: bool = False, + ) -> tuple[str, bool]: + messages_queue = queue.Queue() + messages_done = threading.Event() + speech_cut_off = threading.Event() + seconds_per_chunk = TEXT_TO_SPEECH_CHUNK_SIZE_SECONDS + chunk_size = ( + get_chunk_size_per_second( + self.synthesizer.get_synthesizer_config().audio_encoding, + self.synthesizer.get_synthesizer_config().sampling_rate, + ) + * seconds_per_chunk + ) + + async def send_to_call(): + response_buffer = "" + cut_off = False + self.is_current_synthesis_interruptable = should_allow_human_to_cut_off_bot + while True: + try: + message: BaseMessage = messages_queue.get_nowait() + except queue.Empty: + if messages_done.is_set(): + break + else: await asyncio.sleep(0) - await ws.send(StopMessage().json()) + continue - async def receiver(ws: WebSocketClientProtocol): - ReadyMessage.parse_raw(await ws.recv()) - self.receiver_ready = True - async for msg in ws: - audio_message = AudioMessage.parse_raw(msg) - self.output_audio_queue.put_nowait(audio_message.get_bytes()) + stop_event = self.enqueue_stop_event() + synthesis_result = self.synthesizer.create_speech( + message, chunk_size, bot_sentiment=self.bot_sentiment + ) + message_sent, cut_off = await self.send_speech_to_output( + message.text, + synthesis_result, + stop_event, + seconds_per_chunk, + ) + self.logger.debug("Message sent: {}".format(message_sent)) + response_buffer = f"{response_buffer} {message_sent}" + if cut_off: + speech_cut_off.set() + break + await asyncio.sleep(0) + if cut_off: + self.agent.update_last_bot_message_on_cut_off(response_buffer) + self.transcript.add_bot_message(response_buffer) + return response_buffer, cut_off - output_thread = threading.Thread(target=self.play_audio) - output_thread.start() - return await asyncio.gather(sender(ws), receiver(ws)) + asyncio.run_coroutine_threadsafe(send_to_call(), self.synthesizer_event_loop) + + messages_generated = 0 + for i, message in enumerate(messages): + messages_generated += 1 + if i == 0: + if wait_for_filler_audio: + self.interrupt_all_synthesis() + self.wait_for_filler_audio_to_finish() + if speech_cut_off.is_set(): + break + messages_queue.put_nowait(BaseMessage(text=message)) + await asyncio.sleep(0) + if messages_generated == 0: + self.logger.debug("Agent generated no messages") + if wait_for_filler_audio: + self.interrupt_all_synthesis() + messages_done.set() + + def send_message_to_stream_nonblocking( + self, + message: BaseMessage, + should_allow_human_to_cut_off_bot: bool, + ): + asyncio.run_coroutine_threadsafe( + self.send_message_to_stream_async( + message, + self.agent.get_agent_config().allow_agent_to_be_cut_off, + ), + self.synthesizer_event_loop, + ) + + async def send_message_to_stream_async( + self, + message: BaseMessage, + should_allow_human_to_cut_off_bot: bool, + ) -> tuple[str, bool]: + self.is_current_synthesis_interruptable = should_allow_human_to_cut_off_bot + stop_event = self.enqueue_stop_event() + self.logger.debug("Synthesizing speech for message") + seconds_per_chunk = TEXT_TO_SPEECH_CHUNK_SIZE_SECONDS + chunk_size = ( + get_chunk_size_per_second( + self.synthesizer.get_synthesizer_config().audio_encoding, + self.synthesizer.get_synthesizer_config().sampling_rate, + ) + * seconds_per_chunk + ) + synthesis_result = self.synthesizer.create_speech( + message, chunk_size, bot_sentiment=self.bot_sentiment + ) + message_sent, cut_off = await self.send_speech_to_output( + message.text, + synthesis_result, + stop_event, + seconds_per_chunk, + ) + self.logger.debug("Message sent: {}".format(message_sent)) + if cut_off: + self.agent.update_last_bot_message_on_cut_off(message_sent) + self.transcript.add_bot_message(message_sent) + return message_sent, cut_off + + def warmup_synthesizer(self): + self.synthesizer.ready_synthesizer() + + # returns an estimate of what was sent up to, and a flag if the message was cut off + async def send_speech_to_output( + self, + message, + synthesis_result: SynthesisResult, + stop_event: threading.Event, + seconds_per_chunk: int, + is_filler_audio: bool = False, + ): + message_sent = message + cut_off = False + chunk_size = seconds_per_chunk * get_chunk_size_per_second( + self.synthesizer.get_synthesizer_config().audio_encoding, + self.synthesizer.get_synthesizer_config().sampling_rate, + ) + for i, chunk_result in enumerate(synthesis_result.chunk_generator): + start_time = time.time() + speech_length_seconds = seconds_per_chunk * ( + len(chunk_result.chunk) / chunk_size + ) + if stop_event.is_set(): + seconds = i * seconds_per_chunk + self.logger.debug( + "Interrupted, stopping text to speech after {} chunks".format(i) + ) + message_sent = f"{synthesis_result.get_message_up_to(seconds)}-" + cut_off = True + break + if i == 0: + if is_filler_audio: + self.should_wait_for_filler_audio_done_event = True + await self.output_device.send_async(chunk_result.chunk) + end_time = time.time() + await asyncio.sleep( + max( + speech_length_seconds + - (end_time - start_time) + - self.per_chunk_allowance_seconds, + 0, + ) + ) + self.logger.debug( + "Sent chunk {} with size {}".format(i, len(chunk_result.chunk)) + ) + self.last_action_timestamp = time.time() + # clears it off the stop events queue + if not stop_event.is_set(): + stop_event.set() + return message_sent, cut_off + + async def on_transcription_response(self, transcription: Transcription): + self.last_action_timestamp = time.time() + if transcription.is_final: + self.logger.debug( + "Got transcription: {}, confidence: {}".format( + transcription.message, transcription.confidence + ) + ) + if not self.is_human_speaking: + # send interrupt + self.current_transcription_is_interrupt = False + if self.is_current_synthesis_interruptable: + self.logger.debug("sending interrupt") + self.current_transcription_is_interrupt = self.interrupt_all_synthesis() + self.logger.debug("Human started speaking") + + transcription.is_interrupt = self.current_transcription_is_interrupt + self.is_human_speaking = not transcription.is_final + return await self.handle_transcription(transcription) + + def enqueue_stop_event(self): + stop_event = threading.Event() + self.stop_events.put_nowait(stop_event) + return stop_event + + def interrupt_all_synthesis(self): + """Returns true if any synthesis was interrupted""" + num_interrupts = 0 + while True: + try: + stop_event = self.stop_events.get_nowait() + if not stop_event.is_set(): + self.logger.debug("Interrupting synthesis") + stop_event.set() + num_interrupts += 1 + except queue.Empty: + break + return num_interrupts > 0 + + async def send_filler_audio_to_output( + self, + filler_audio: FillerAudio, + stop_event: threading.Event, + done_event: threading.Event, + ): + filler_synthesis_result = filler_audio.create_synthesis_result() + self.is_current_synthesis_interruptable = filler_audio.is_interruptable + if isinstance( + self.agent.get_agent_config().send_filler_audio, FillerAudioConfig + ): + silence_threshold = ( + self.agent.get_agent_config().send_filler_audio.silence_threshold_seconds + ) + else: + silence_threshold = FILLER_AUDIO_DEFAULT_SILENCE_THRESHOLD_SECONDS + await asyncio.sleep(silence_threshold) + self.logger.debug("Sending filler audio to output") + await self.send_speech_to_output( + filler_audio.message.text, + filler_synthesis_result, + stop_event, + filler_audio.seconds_per_chunk, + is_filler_audio=True, + ) + done_event.set() + + def wait_for_filler_audio_to_finish(self): + if not self.should_wait_for_filler_audio_done_event: + self.logger.debug( + "Not waiting for filler audio to finish since we didn't send any chunks" + ) + return + self.should_wait_for_filler_audio_done_event = False + if ( + self.current_filler_audio_done_event + and not self.current_filler_audio_done_event.is_set() + ): + self.logger.debug("Waiting for filler audio to finish") + # this should guarantee that filler audio finishes, since it has to be on its last chunk + if not self.current_filler_audio_done_event.wait( + self.current_filler_seconds_per_chunk + ): + self.logger.debug("Filler audio did not finish") + + async def handle_transcription(self, transcription: Transcription): + if transcription.is_final: + self.transcript.add_human_message(transcription.message) + goodbye_detected_task = None + if self.agent.get_agent_config().end_conversation_on_goodbye: + goodbye_detected_task = asyncio.create_task( + self.goodbye_model.is_goodbye(transcription.message) + ) + if self.agent.get_agent_config().send_filler_audio: + self.logger.debug("Sending filler audio") + if self.synthesizer.filler_audios: + filler_audio = random.choice(self.synthesizer.filler_audios) + self.logger.debug(f"Chose {filler_audio.message.text}") + self.current_filler_audio_done_event = threading.Event() + self.current_filler_seconds_per_chunk = ( + filler_audio.seconds_per_chunk + ) + stop_event = self.enqueue_stop_event() + asyncio.run_coroutine_threadsafe( + self.send_filler_audio_to_output( + filler_audio, + stop_event, + done_event=self.current_filler_audio_done_event, + ), + self.synthesizer_event_loop, + ) + else: + self.logger.debug("No filler audio available for synthesizer") + self.logger.debug("Generating response for transcription") + if self.agent.get_agent_config().generate_responses: + responses = self.agent.generate_response( + transcription.message, is_interrupt=transcription.is_interrupt + ) + await self.send_messages_to_stream_async( + responses, + self.agent.get_agent_config().allow_agent_to_be_cut_off, + wait_for_filler_audio=self.agent.get_agent_config().send_filler_audio, + ) + else: + response, should_stop = self.agent.respond( + transcription.message, is_interrupt=transcription.is_interrupt + ) + if self.agent.get_agent_config().send_filler_audio: + self.interrupt_all_synthesis() + self.wait_for_filler_audio_to_finish() + if should_stop: + self.logger.debug("Agent requested to stop") + self.mark_terminated() + return + if response: + self.send_message_to_stream_nonblocking( + BaseMessage(text=response), + self.agent.get_agent_config().allow_agent_to_be_cut_off, + ) + else: + self.logger.debug("No response generated") + if goodbye_detected_task: + try: + goodbye_detected = await asyncio.wait_for( + goodbye_detected_task, 0.1 + ) + if goodbye_detected: + self.logger.debug("Goodbye detected, ending conversation") + self.mark_terminated() + return + except asyncio.TimeoutError: + self.logger.debug("Goodbye detection timed out") + + def mark_terminated(self): + self.active = False + + # must be called from the main thread + def terminate(self): + self.mark_terminated() + if self.check_for_idle_task: + self.logger.debug("Terminating check_for_idle Task") + self.check_for_idle_task.cancel() + if self.track_bot_sentiment_task: + self.logger.debug("Terminating track_bot_sentiment Task") + self.track_bot_sentiment_task.cancel() + self.logger.debug("Terminating agent") + self.agent.terminate() + self.logger.debug("Terminating speech transcriber") + self.transcriber.terminate() + self.logger.debug("Terminating synthesizer event loop") + self.synthesizer_event_loop.call_soon_threadsafe( + self.synthesizer_event_loop.stop + ) + self.logger.debug("Terminating synthesizer thread") + if self.synthesizer_thread.is_alive(): + self.synthesizer_thread.join() + self.logger.debug("Terminating transcriber task") + self.transcriber_task.cancel() + self.logger.debug("Successfully terminated") + + def is_active(self): + return self.active diff --git a/vocode/streaming/synthesizer/azure_synthesizer.py b/vocode/streaming/synthesizer/azure_synthesizer.py new file mode 100644 index 0000000..a8f603f --- /dev/null +++ b/vocode/streaming/synthesizer/azure_synthesizer.py @@ -0,0 +1,250 @@ +import logging +import os +import re +from typing import Any, Optional +from xml.etree import ElementTree +import azure.cognitiveservices.speech as speechsdk +from dotenv import load_dotenv + +from vocode.streaming.agent.bot_sentiment_analyser import BotSentiment +from vocode.streaming.models.message import BaseMessage, SSMLMessage + +from vocode.streaming.synthesizer.base_synthesizer import ( + BaseSynthesizer, + SynthesisResult, + FILLER_PHRASES, + FILLER_AUDIO_PATH, + FillerAudio, + encode_as_wav, +) +from vocode.streaming.models.synthesizer import AzureSynthesizerConfig +from vocode.streaming.models.audio_encoding import AudioEncoding + +load_dotenv() + +NAMESPACES = { + "mstts": "https://www.w3.org/2001/mstts", + "": "https://www.w3.org/2001/10/synthesis", +} + +ElementTree.register_namespace("", NAMESPACES.get("")) +ElementTree.register_namespace("mstts", NAMESPACES.get("mstts")) + + +class WordBoundaryEventPool: + def __init__(self): + self.events = [] + + def add(self, event): + self.events.append( + { + "text": event.text, + "text_offset": event.text_offset, + "audio_offset": (event.audio_offset + 5000) / (10000 * 1000), + "boudary_type": event.boundary_type, + } + ) + + def get_events_sorted(self): + return sorted(self.events, key=lambda event: event["audio_offset"]) + + +class AzureSynthesizer(BaseSynthesizer): + OFFSET_MS = 100 + + def __init__( + self, synthesizer_config: AzureSynthesizerConfig, logger: logging.Logger = None + ): + super().__init__(synthesizer_config) + self.synthesizer_config = synthesizer_config + # Instantiates a client + speech_config = speechsdk.SpeechConfig( + subscription=os.environ.get("AZURE_SPEECH_KEY"), + region=os.environ.get("AZURE_SPEECH_REGION"), + ) + if self.synthesizer_config.audio_encoding == AudioEncoding.LINEAR16: + if self.synthesizer_config.sampling_rate == 44100: + speech_config.set_speech_synthesis_output_format( + speechsdk.SpeechSynthesisOutputFormat.Raw44100Hz16BitMonoPcm + ) + if self.synthesizer_config.sampling_rate == 48000: + speech_config.set_speech_synthesis_output_format( + speechsdk.SpeechSynthesisOutputFormat.Raw48Khz16BitMonoPcm + ) + if self.synthesizer_config.sampling_rate == 24000: + speech_config.set_speech_synthesis_output_format( + speechsdk.SpeechSynthesisOutputFormat.Raw24Khz16BitMonoPcm + ) + elif self.synthesizer_config.sampling_rate == 16000: + speech_config.set_speech_synthesis_output_format( + speechsdk.SpeechSynthesisOutputFormat.Raw16Khz16BitMonoPcm + ) + elif self.synthesizer_config.sampling_rate == 8000: + speech_config.set_speech_synthesis_output_format( + speechsdk.SpeechSynthesisOutputFormat.Raw8Khz16BitMonoPcm + ) + elif self.synthesizer_config.audio_encoding == AudioEncoding.MULAW: + speech_config.set_speech_synthesis_output_format( + speechsdk.SpeechSynthesisOutputFormat.Raw8Khz8BitMonoMULaw + ) + self.synthesizer = speechsdk.SpeechSynthesizer( + speech_config=speech_config, audio_config=None + ) + + self.voice_name = self.synthesizer_config.voice_name + self.pitch = self.synthesizer_config.pitch + self.rate = self.synthesizer_config.rate + self.logger = logger or logging.getLogger(__name__) + + def get_phrase_filler_audios(self) -> list[FillerAudio]: + filler_phrase_audios = [] + for filler_phrase in FILLER_PHRASES: + cache_key = "-".join( + ( + str(filler_phrase.text), + str(self.synthesizer_config.type), + str(self.synthesizer_config.audio_encoding), + str(self.synthesizer_config.sampling_rate), + str(self.voice_name), + str(self.pitch), + str(self.rate), + ) + ) + filler_audio_path = os.path.join(FILLER_AUDIO_PATH, f"{cache_key}.bytes") + if os.path.exists(filler_audio_path): + audio_data = open(filler_audio_path, "rb").read() + else: + self.logger.debug(f"Generating filler audio for {filler_phrase.text}") + ssml = self.create_ssml(filler_phrase.text) + result = self.synthesizer.speak_ssml(ssml) + offset = self.synthesizer_config.sampling_rate * self.OFFSET_MS // 1000 + audio_data = result.audio_data[offset:] + with open(filler_audio_path, "wb") as f: + f.write(audio_data) + filler_phrase_audios.append( + FillerAudio( + filler_phrase, + audio_data, + self.synthesizer_config, + ) + ) + return filler_phrase_audios + + def add_marks(self, message: str, index=0) -> str: + search_result = re.search(r"([\.\,\:\;\-\—]+)", message) + if search_result is None: + return message + start, end = search_result.span() + with_mark = message[:start] + f'' + message[start:end] + rest = message[end:] + rest_stripped = re.sub(r"^(.+)([\.\,\:\;\-\—]+)$", r"\1", rest) + if len(rest_stripped) == 0: + return with_mark + return with_mark + self.add_marks(rest_stripped, index + 1) + + def word_boundary_cb(self, evt, pool): + pool.add(evt) + + def create_ssml( + self, message: str, bot_sentiment: Optional[BotSentiment] = None + ) -> str: + ssml_root = ElementTree.fromstring( + '' + ) + voice = ElementTree.SubElement(ssml_root, "voice") + voice.set("name", self.voice_name) + voice_root = voice + if bot_sentiment and bot_sentiment.emotion: + styled = ElementTree.SubElement( + voice, "{%s}express-as" % NAMESPACES.get("mstts") + ) + styled.set("style", bot_sentiment.emotion) + styled.set( + "styledegree", str(bot_sentiment.degree * 2) + ) # Azure specific, it's a scale of 0-2 + voice_root = styled + prosody = ElementTree.SubElement(voice_root, "prosody") + prosody.set("pitch", f"{self.pitch}%") + prosody.set("rate", f"{self.rate}%") + prosody.text = message.strip() + return ElementTree.tostring(ssml_root, encoding="unicode") + + def synthesize_ssml(self, ssml: str) -> tuple[speechsdk.AudioDataStream, str]: + result = self.synthesizer.start_speaking_ssml_async(ssml).get() + return speechsdk.AudioDataStream(result) + + def ready_synthesizer(self): + connection = speechsdk.Connection.from_speech_synthesizer(self.synthesizer) + connection.open(True) + + # given the number of seconds the message was allowed to go until, where did we get in the message? + def get_message_up_to( + self, + message: str, + ssml: str, + seconds: int, + word_boundary_event_pool: WordBoundaryEventPool, + ) -> str: + events = word_boundary_event_pool.get_events_sorted() + for event in events: + if event["audio_offset"] > seconds: + ssml_fragment = ssml[: event["text_offset"]] + return ssml_fragment.split(">")[-1] + return message + + def create_speech( + self, + message: BaseMessage, + chunk_size: int, + bot_sentiment: Optional[BotSentiment] = None, + ) -> SynthesisResult: + # offset = int(self.OFFSET_MS * (self.synthesizer_config.sampling_rate / 1000)) + offset = 0 + self.logger.debug(f"Synthesizing message: {message}") + + def chunk_generator( + audio_data_stream: speechsdk.AudioDataStream, chunk_transform=lambda x: x + ): + audio_buffer = bytes(chunk_size) + filled_size = audio_data_stream.read_data(audio_buffer) + if filled_size != chunk_size: + yield SynthesisResult.ChunkResult( + chunk_transform(audio_buffer[offset:]), True + ) + return + else: + yield SynthesisResult.ChunkResult( + chunk_transform(audio_buffer[offset:]), False + ) + while True: + filled_size = audio_data_stream.read_data(audio_buffer) + if filled_size != chunk_size: + yield SynthesisResult.ChunkResult( + chunk_transform(audio_buffer[: filled_size - offset]), True + ) + break + yield SynthesisResult.ChunkResult(chunk_transform(audio_buffer), False) + + word_boundary_event_pool = WordBoundaryEventPool() + self.synthesizer.synthesis_word_boundary.connect( + lambda event: self.word_boundary_cb(event, word_boundary_event_pool) + ) + ssml = ( + message.ssml + if isinstance(message, SSMLMessage) + else self.create_ssml(message.text, bot_sentiment=bot_sentiment) + ) + audio_data_stream = self.synthesize_ssml(ssml) + if self.synthesizer_config.should_encode_as_wav: + output_generator = chunk_generator( + audio_data_stream, + lambda chunk: encode_as_wav(chunk, self.synthesizer_config), + ) + else: + output_generator = chunk_generator(audio_data_stream) + return SynthesisResult( + output_generator, + lambda seconds: self.get_message_up_to( + message, ssml, seconds, word_boundary_event_pool + ), + ) diff --git a/vocode/streaming/synthesizer/base_synthesizer.py b/vocode/streaming/synthesizer/base_synthesizer.py new file mode 100644 index 0000000..39d20fb --- /dev/null +++ b/vocode/streaming/synthesizer/base_synthesizer.py @@ -0,0 +1,169 @@ +import os +from typing import Any, Generator, Callable, Optional +import math +import io +import wave +from nltk.tokenize import word_tokenize +from nltk.tokenize.treebank import TreebankWordDetokenizer + +from vocode.streaming.agent.bot_sentiment_analyser import BotSentiment +from vocode.streaming.models.agent import FillerAudioConfig +from vocode.streaming.models.message import BaseMessage +from vocode.streaming.utils import convert_wav, get_chunk_size_per_second +from vocode.streaming.models.audio_encoding import AudioEncoding +from vocode.streaming.models.synthesizer import SynthesizerConfig + +FILLER_PHRASES = [ + BaseMessage(text="Um..."), + BaseMessage(text="Uh..."), + BaseMessage(text="Uh-huh..."), + BaseMessage(text="Mm-hmm..."), + BaseMessage(text="Hmm..."), + BaseMessage(text="Okay..."), + BaseMessage(text="Right..."), + BaseMessage(text="Let me see..."), +] +FILLER_AUDIO_PATH = os.path.join(os.path.dirname(__file__), "filler_audio") +TYPING_NOISE_PATH = "%s/typing-noise.wav" % FILLER_AUDIO_PATH + + +def encode_as_wav(chunk: bytes, synthesizer_config: SynthesizerConfig) -> bytes: + output_bytes_io = io.BytesIO() + in_memory_wav = wave.open(output_bytes_io, "wb") + in_memory_wav.setnchannels(1) + assert synthesizer_config.audio_encoding == AudioEncoding.LINEAR16 + in_memory_wav.setsampwidth(2) + in_memory_wav.setframerate(synthesizer_config.sampling_rate) + in_memory_wav.writeframes(chunk) + output_bytes_io.seek(0) + return output_bytes_io.read() + + +class SynthesisResult: + class ChunkResult: + def __init__(self, chunk: bytes, is_last_chunk: bool): + self.chunk = chunk + self.is_last_chunk = is_last_chunk + + def __init__( + self, + chunk_generator: Generator[ChunkResult, None, None], + get_message_up_to: Callable[[int], str], + ): + self.chunk_generator = chunk_generator + self.get_message_up_to = get_message_up_to + + +class FillerAudio: + def __init__( + self, + message: BaseMessage, + audio_data: bytes, + synthesizer_config: SynthesizerConfig, + is_interruptable: bool = False, + seconds_per_chunk: int = 1, + ): + self.message = message + self.audio_data = audio_data + self.synthesizer_config = synthesizer_config + self.is_interruptable = is_interruptable + self.seconds_per_chunk = seconds_per_chunk + + def create_synthesis_result(self) -> SynthesisResult: + chunk_size = ( + get_chunk_size_per_second( + self.synthesizer_config.audio_encoding, + self.synthesizer_config.sampling_rate, + ) + * self.seconds_per_chunk + ) + + def chunk_generator(chunk_transform=lambda x: x): + for i in range(0, len(self.audio_data), chunk_size): + if i + chunk_size > len(self.audio_data): + yield SynthesisResult.ChunkResult( + chunk_transform(self.audio_data[i:]), True + ) + else: + yield SynthesisResult.ChunkResult( + chunk_transform(self.audio_data[i : i + chunk_size]), False + ) + + if self.synthesizer_config.should_encode_as_wav: + output_generator = chunk_generator( + lambda chunk: encode_as_wav(chunk, self.synthesizer_config) + ) + else: + output_generator = chunk_generator() + return SynthesisResult(output_generator, lambda seconds: self.message.text) + + +class BaseSynthesizer: + def __init__(self, synthesizer_config: SynthesizerConfig): + self.synthesizer_config = synthesizer_config + if synthesizer_config.audio_encoding == AudioEncoding.MULAW: + assert ( + synthesizer_config.sampling_rate == 8000 + ), "MuLaw encoding only supports 8kHz sampling rate" + self.filler_audios: list[FillerAudio] = [] + + def get_synthesizer_config(self) -> SynthesizerConfig: + return self.synthesizer_config + + def get_typing_noise_filler_audio(self) -> FillerAudio: + return FillerAudio( + message=BaseMessage(text=""), + audio_data=convert_wav( + TYPING_NOISE_PATH, + output_sample_rate=self.synthesizer_config.sampling_rate, + output_encoding=self.synthesizer_config.audio_encoding, + ), + synthesizer_config=self.synthesizer_config, + is_interruptable=True, + seconds_per_chunk=2, + ) + + def set_filler_audios(self, filler_audio_config: FillerAudioConfig): + if filler_audio_config.use_phrases: + self.filler_audios = self.get_phrase_filler_audios() + elif filler_audio_config.use_typing_noise: + self.filler_audios = [self.get_typing_noise_filler_audio()] + + def get_phrase_filler_audios(self) -> list[FillerAudio]: + return [] + + def ready_synthesizer(self): + pass + + # given the number of seconds the message was allowed to go until, where did we get in the message? + def get_message_cutoff_from_total_response_length( + self, message: BaseMessage, seconds: int, size_of_output: int + ) -> str: + estimated_output_seconds = ( + size_of_output / self.synthesizer_config.sampling_rate + ) + estimated_output_seconds_per_char = estimated_output_seconds / len(message.text) + return message.text[: int(seconds / estimated_output_seconds_per_char)] + + def get_message_cutoff_from_voice_speed( + self, message: BaseMessage, seconds: int, words_per_minute: int + ) -> str: + words_per_second = words_per_minute / 60 + estimated_words_spoken = math.floor(words_per_second * seconds) + tokens = word_tokenize(message.text) + return TreebankWordDetokenizer().detokenize(tokens[:estimated_words_spoken]) + + def get_maybe_cached_synthesis_result( + self, message: BaseMessage, chunk_size: int + ) -> Optional[SynthesisResult]: + return + + # returns a chunk generator and a thunk that can tell you what part of the message was read given the number of seconds spoken + # chunk generator must return tuple (bytes of size chunk_size, flag if it is the last chunk) + def create_speech( + self, + message: BaseMessage, + chunk_size: int, + bot_sentiment: Optional[BotSentiment] = None, + ) -> SynthesisResult: + raise NotImplementedError diff --git a/vocode/streaming/synthesizer/eleven_labs_synthesizer.py b/vocode/streaming/synthesizer/eleven_labs_synthesizer.py new file mode 100644 index 0000000..7663c58 --- /dev/null +++ b/vocode/streaming/synthesizer/eleven_labs_synthesizer.py @@ -0,0 +1,50 @@ +from typing import Any, Optional +import os +from dotenv import load_dotenv +import requests + +from vocode.streaming.synthesizer.base_synthesizer import ( + BaseSynthesizer, + SynthesisResult, +) +from vocode.streaming.models.synthesizer import ElevenLabsSynthesizerConfig +from vocode.streaming.agent.bot_sentiment_analyser import BotSentiment +from vocode.streaming.models.message import BaseMessage + +load_dotenv() + +ELEVEN_LABS_API_KEY = os.environ.get("ELEVEN_LABS_API_KEY") +ELEVEN_LABS_BASE_URL = "https://api.elevenlabs.io/v1/" +ADAM_VOICE_ID = "pNInz6obpgDQGcFmaJgB" +OBAMA_VOICE_ID = "vLITIS0SH2an5iQGxw5C" + + +class ElevenLabsSynthesizer(BaseSynthesizer): + def __init__(self, config: ElevenLabsSynthesizerConfig): + super().__init__(config) + self.api_key = config.api_key + self.voice_id = config.voice_id or ADAM_VOICE_ID + self.words_per_minute = 150 + + def create_speech( + self, + message: BaseMessage, + chunk_size: int, + bot_sentiment: Optional[BotSentiment] = None, + ) -> SynthesisResult: + url = ELEVEN_LABS_BASE_URL + f"text-to-speech/{self.voice_id}/stream" + headers = {"xi-api-key": self.api_key, "voice_id": self.voice_id} + body = { + "text": message.text, + } + response = requests.post(url, headers=headers, json=body) + + def chunk_generator(response): + for chunk in response.iter_content(chunk_size=chunk_size): + yield SynthesisResult.ChunkResult(chunk, len(chunk) != chunk_size) + + assert ( + not self.synthesizer_config.should_encode_as_wav + ), "ElevenLabs does not support WAV encoding" + # return chunk_generator(response), lambda seconds: self.get_message_cutoff_from_voice_speed(message, seconds, self.words_per_minute) + return SynthesisResult(chunk_generator(response), lambda seconds: message.text) diff --git a/vocode/streaming/synthesizer/filler_audio/typing-noise.wav b/vocode/streaming/synthesizer/filler_audio/typing-noise.wav new file mode 100644 index 0000000000000000000000000000000000000000..478da6fabd7a992bfd6732a0674d27ea11e31536 GIT binary patch literal 6548060 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