{"id":226381,"date":"2025-05-06T08:28:57","date_gmt":"2025-05-06T08:28:57","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/emergency-operator-voice-chatbot-empowering-assistance\/"},"modified":"2025-05-06T08:28:57","modified_gmt":"2025-05-06T08:28:57","slug":"emergency-operator-voice-chatbot-empowering-assistance","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=226381","title":{"rendered":"Emergency Operator Voice Chatbot: Empowering Assistance"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"article-start\">\n<p>Language models have been rapidly evolving in the world. Now, with Multimodal <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2023\/03\/an-introduction-to-large-language-models-llms\/\" target=\"_blank\" rel=\"noreferrer noopener\">LLMs<\/a> taking up the forefront of this Language Models race, it is important to understand how we can leverage the capabilities of these Multimodal models. From traditional text-based AI-powered chatbots, we are transitioning over to voice based chatbots. These act as our personal assistants, available at a moment\u2019s notice to tend to our needs. Nowadays, you can find an AI-In this blog, we\u2019ll build an Emergency Operator voice-based chatbot. The idea is pretty straightforward:<\/p>\n<ul class=\"wp-block-list\">\n<li>We speak to the chatbot<\/li>\n<li>It listens to understands what we\u2019ve said<\/li>\n<li>It responds with a voice note<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1744\" height=\"946\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Info.webp\" alt=\"Voice ChatBot\" class=\"wp-image-233366\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Info.webp 1744w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Info-300x163.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Info-768x417.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Info-1536x833.webp 1536w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Info-150x81.webp 150w\" sizes=\"(max-width: 1744px) 100vw, 1744px\"\/><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"h-our-use-case\">Our Use-Case<\/h2>\n<p>Let\u2019s imagine a real-world scenario. We live in a country with over 1.4 billion people and with such a huge population, emergencies are bound to occur whether it\u2019s a medical issue, a fire breakout, police intervention, or even mental health support like anti-suicide assistance etc.<\/p>\n<p>In such moments, every second counts. Also, considering the lack of Emergency Operators and the overwhelming amount of issues raised. That\u2019s where a voice-based chatbot can make a big difference which can offer quick, spoken assistance when people need it the most.<\/p>\n<ul class=\"wp-block-list\">\n<li><b>Emergency Assistance<\/b>: Immediate help for health, fire, crime, or disaster-related queries without waiting for a human operator (when not available).<\/li>\n<li><b>Mental Health Helpline<\/b>: A voice-based emotional support assistant guiding users with compassion.<\/li>\n<li><b>Rural Accessibility<\/b>: Areas with limited access to mobile apps can benefit from a simple voice interface since people often communicate by speaking in such areas.<\/li>\n<\/ul>\n<p>That\u2019s exactly what we\u2019re going to build. We will be acting as someone seeking help, and the chatbot will play the role of an emergency responder, powered by a large language model.<\/p>\n<p>To implement our voice chatbot, we will be using the below mentioned AI models:<\/p>\n<ul class=\"wp-block-list\">\n<li><b>Whisper (Large)<\/b> \u2013 OpenAI\u2019s speech-to-text model, running via GroqCloud, to convert voice into text.<\/li>\n<li><b>GPT-4.1-mini<\/b> \u2013 Powered by CometAPI (Free LLM Provider), this is the brain of our chatbot that will understand our queries and will generate meaningful responses.<\/li>\n<li><b>Google Text-to-Speech (gTTS)<\/b> \u2013 Converts the chatbot\u2019s responses back into voice so it can talk to us.<\/li>\n<li><b>FFmpeg<\/b> \u2013 A handy library that helps us record and manage audio easily.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-requirements\">Requirements<\/h2>\n<p>Before we start coding, we need to set up some things:<\/p>\n<ol class=\"wp-block-list\">\n<li><b>GroqCloud API Key<\/b>: Get it from here:<a href=\"https:\/\/console.groq.com\/keys\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"> https:\/\/console.groq.com\/keys<\/a><\/li>\n<li><b>CometAPI Key<br \/><\/b> Register and store your API key from:<a href=\"https:\/\/api.cometapi.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"> https:\/\/api.cometapi.com\/<\/a><\/li>\n<li><b>ElevenLabs API Key<br \/><\/b> Register and store your API key from: <a href=\"https:\/\/elevenlabs.io\/app\/home\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/elevenlabs.io\/app\/home<\/a><\/li>\n<li><b>FFmpeg Installation<br \/><\/b> If you don\u2019t already have it, follow this guide to install FFmpeg on your system:<a href=\"https:\/\/itsfoss.com\/ffmpeg\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"> https:\/\/itsfoss.com\/ffmpeg\/<\/a><\/li>\n<\/ol>\n<p>Confirm by typing \u201c<i>ffmeg -version<\/i>\u201d in your terminal<\/p>\n<p>Once you have these set up, you\u2019re ready to dive into building your very own voice-enabled chatbot!<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-project-structure\"><b>Project Structure<\/b><\/h2>\n<p>The Project Structure will be rather simple and rudimentary and most of our working will be happening in the <i>app.py<\/i> and <i>utils.py<\/i> <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2021\/05\/introduction-to-python-programming-beginners-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">python<\/a> scripts.<\/p>\n<pre class=\"wp-block-preformatted\">VOICE-CHATBOT\/<p>\u251c\u2500\u2500 venv\/\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # Virtual environment for dependencies<br\/>\u251c\u2500\u2500 .env \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # Environment variables (API keys, etc.)<br\/>\u251c\u2500\u2500 app.py \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # Main application script<br\/>\u251c\u2500\u2500 emergency.png\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # Emergency-related image asset<br\/>\u251c\u2500\u2500 README.md\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # Project documentation (optional)<br\/>\u251c\u2500\u2500 requirements.txt \u00a0 \u00a0 \u00a0 # Python dependencies<br\/>\u251c\u2500\u2500 utils.py \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 # Utility\/helper functions<\/p><\/pre>\n<p>There are some necessary files to be modified to ensure that all our dependencies are satisfied:<\/p>\n<p>In the .env file<\/p>\n<pre class=\"wp-block-code\"><code>GROQ_API_KEY = \"<your-groq-api-key comet_api_key=\"&lt;your-comet-api-key&gt;\" elevenlabs_api_key=\"&lt;your-elevenlabs-api\u2013key\"\/><\/code><\/pre>\n<p>In the requirements.txt<\/p>\n<pre class=\"wp-block-code\"><code>ffmpeg-python\n\npydub\n\npyttsx3\n\nlangchain\n\nlangchain-community\n\nlangchain-core\n\nlangchain-groq\n\nlangchain_openai\n\npython-dotenv\n\nstreamlit==1.37.0\n\naudio-recorder-streamlit\n\ndotenv\n\nelevenlabs\n\ngtts<\/code><\/pre>\n<h2 class=\"wp-block-heading\" id=\"h-setting-up-the-virtual-environment\">Setting Up the Virtual Environment<\/h2>\n<p>We will also have to set up a <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2021\/01\/a-quick-guide-to-setting-up-a-virtual-environment-for-machine-learning-and-deep-learning-on-macos\/\" target=\"_blank\" rel=\"noreferrer noopener\">virtual environment<\/a> (a good practice). We will be doing this in terminal.\u00a0<\/p>\n<ol class=\"wp-block-list\">\n<li>Creation of our virtual environment<\/li>\n<\/ol>\n<pre class=\"wp-block-code\"><code>~\/Desktop\/Emergency-Voice-Chatbot$ conda create -p venv python==3.12 -y<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"738\" height=\"150\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/LUL.webp\" alt=\"Virtual Environmnt creation\" class=\"wp-image-233571\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/LUL.webp 738w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/LUL-300x61.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/LUL-150x30.webp 150w\" sizes=\"auto, (max-width: 738px) 100vw, 738px\"\/><\/figure>\n<\/div>\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Activating our Virtual Environment<\/li>\n<\/ol>\n<pre class=\"wp-block-code\"><code>~\/Desktop\/Emergency-Voice-Chatbot$ conda activate venv\/<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"848\" height=\"37\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed1.webp\" alt=\"Conda Activate\" class=\"wp-image-233529\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed1.webp 848w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed1-300x13.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed1-768x34.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed1-150x7.webp 150w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\"\/><\/figure>\n<\/div>\n<ol start=\"3\" class=\"wp-block-list\">\n<li>After you finish running the application, you can deactivate the Virtual Environment too<\/li>\n<\/ol>\n<pre class=\"wp-block-code\"><code>~\/Desktop\/Emergency-Voice-Chatbot$ conda deactivate<\/code><\/pre>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"956\" height=\"34\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed.png\" alt=\"Conda Deactivate\" class=\"wp-image-233530\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed.png 956w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed-300x11.png 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed-768x27.png 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/unnamed-150x5.png 150w\" sizes=\"auto, (max-width: 956px) 100vw, 956px\"\/><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"h-main-python-scripts\"><b>Main Python Scripts<\/b><\/h2>\n<p>Let\u2019s first explore the <b>utils.py<\/b> script.\u00a0<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-1-main-imports\">1. Main Imports<\/h3>\n<p><strong>time, tempfile, os, re, BytesIO<\/strong> \u2013 Handle timing, temporary files, environment variables, regex, and in-memory data.<\/p>\n<p><strong>requests<\/strong> \u2013 Makes HTTP requests (e.g., calling APIs).<\/p>\n<p><strong>gTTS<\/strong><strong>, <\/strong><strong>elevenlabs<\/strong><strong>, <\/strong><strong>pydub<\/strong> \u2013 Convert text to speech, speech to text and play\/manipulate audio.<\/p>\n<p><strong>groq<\/strong><strong>, <\/strong><strong>langchain_*<\/strong> \u2013 Use Groq\/OpenAI LLMs with LangChain to process and generate text.<\/p>\n<p><strong>streamlit<\/strong> \u2013 Build interactive web apps.<strong>dotenv<\/strong> \u2013 Load environment variables (like API keys) from a .env file.<\/p>\n<pre class=\"wp-block-code\"><code>import time\n\nimport requests\n\nimport tempfile\n\nimport re\n\nfrom io import BytesIO\n\nfrom gtts import gTTS\n\nfrom elevenlabs.client import ElevenLabs\n\nfrom elevenlabs import play\n\nfrom pydub import AudioSegment\n\nfrom groq import Groq\n\nfrom langchain_groq import ChatGroq\n\nfrom langchain_openai import ChatOpenAI\n\nfrom langchain_core.messages import AIMessage, HumanMessage\n\nfrom langchain_core.output_parsers import StrOutputParser\n\nfrom langchain_core.prompts import ChatPromptTemplate\n\nimport streamlit as st\n\nimport os\n\nfrom dotenv import load_dotenv\n\nload_dotenv()\u00a0<\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-2-load-your-api-keys-and-initialize-your-models\">2. Load your API Keys and initialize your models<\/h3>\n<pre class=\"wp-block-code\"><code># Initialize the Groq client\n\nclient = Groq(api_key=os.getenv('GROQ_API_KEY'))\n\n# Initialize the Groq model for LLM responses\n\nllm = ChatOpenAI(\n\n    model_name=\"gpt-4.1-mini\",\n\n    openai_api_key=os.getenv(\"COMET_API_KEY\"), \n\n    openai_api_base=\"https:\/\/api.cometapi.com\/v1\"\n\n)\n\n# Set the path to ffmpeg executable\n\nAudioSegment.converter = \"\/bin\/ffmpeg\"\n\u00a0<\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-3-converting-the-audio-file-our-voice-recording-into-wav-format\">3. Converting the Audio file (our voice recording) into .wav format<\/h3>\n<p>Here, we will converting our audio in bytes which is done by AudioSegment and BytesIO and convert it into a <em>wav<\/em> format:<\/p>\n<pre class=\"wp-block-code\"><code>def audio_bytes_to_wav(audio_bytes):\n   try:\n       with tempfile.NamedTemporaryFile(delete=False, suffix=\".wav\") as temp_wav:\n           audio = AudioSegment.from_file(BytesIO(audio_bytes))\n           # Downsample to reduce file size if needed\n           audio = audio.set_frame_rate(16000).set_channels(1)\n           audio.export(temp_wav.name, format=\"wav\")\n           return temp_wav.name\n   except Exception as e:\n       st.error(f\"Error during WAV file conversion: {e}\")\n       return None<\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-4-splitting-audio\">4. Splitting Audio<\/h3>\n<p>We will make a function to split our audio as per our input parameter (check_length_ms). We will also make a function to get rid of any punctuation with the help of <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2021\/07\/regular-expressions-in-python-a-beginners-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">regex<\/a>.\u00a0<\/p>\n<pre class=\"wp-block-code\"><code>def split_audio(file_path, chunk_length_ms):\n   audio = AudioSegment.from_wav(file_path)\n   return  for i in range(0, len(audio), chunk_length_ms)]\n\n\ndef remove_punctuation(text):\n   return re.sub(r'[^\\w\\s]', '', text)<\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-5-llm-response-generation\">5. LLM Response Generation<\/h3>\n<p>Now, to do main responder functionality where the LLM will generate an apt response to our queries. In the prompt template, we will provide the instructions to our LLM on how they should respond to the queries. We will be implementing <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2024\/06\/langchain-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">Langchain<\/a> Expression Language to do this task.\u00a0<\/p>\n<pre class=\"wp-block-code\"><code>def get_llm_response(query, chat_history):\n   try:\n       template = template = \"\"\"\n                   You are an experienced Emergency Response Phone Operator trained to handle critical situations in India.\n                   Your role is to guide users calmly and clearly during emergencies involving:\n\n\n                   - Medical crises (injuries, heart attacks, etc.)\n                   - Fire incidents\n                   - Police\/law enforcement assistance\n                   - Suicide prevention or mental health crises\n\n\n                   You must:\n\n\n                   1. **Remain calm and assertive**, as if speaking on a phone call.\n                   2. **Ask for and confirm key details** like location, condition of the person, number of people involved, etc.\n                   3. **Provide immediate and practical steps** the user can take before help arrives.\n                   4. **Share accurate, India-based emergency helpline numbers** (e.g., 112, 102, 108, 1091, 1098, 9152987821, etc.).\n                   5. **Prioritize user safety**, and clearly instruct them what *not* to do as well.\n                   6. If the situation involves **suicidal thoughts or mental distress**, respond with compassion and direct them to appropriate mental health helplines and safety actions.\n\n\n                   If the user's query is not related to an emergency, respond with:\n                   \"I can only assist with urgent emergency-related issues. Please contact a general support line for non-emergency questions.\"\n\n\n                   Use an authoritative, supportive tone, short and direct sentences, and tailor your guidance to **urban and rural Indian contexts**.\n\n\n                   **Chat History:** {chat_history}\n\n\n                   **User:** {user_query}\n                   \"\"\"\n\n\n       prompt = ChatPromptTemplate.from_template(template)\n       chain = prompt | llm | StrOutputParser()\n\n\n       response_gen = chain.stream({\n           \"chat_history\": chat_history,\n           \"user_query\": query\n       })\n\n\n       response_text=\"\".join(list(response_gen))\n       response_text = remove_punctuation(response_text)\n\n\n       # Remove repeated text\n       response_lines = response_text.split('\\n')\n       unique_lines = list(dict.fromkeys(response_lines))  # Removing duplicates\n       cleaned_response=\"\\n\".join(unique_lines)\n       return cleaned_responseChatbot\n   except Exception as e:\n       st.error(f\"Error during LLM response generation: {e}\")\n       return \"Error\"\n<\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-6-text-to-speech\">6. Text to Speech<\/h3>\n<p>We will build a function to convert our text to speech with the help of ElevenLabs TTS Client which will return us the Audio in the AudioSegment format. We can also use other TTS models like Nari Lab\u2019s Dia or <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2018\/08\/google-cloud-text-to-speech-available\/\" target=\"_blank\" rel=\"noreferrer noopener\">Google\u2019s gTTS<\/a> too. Eleven Labs provides us some free credits at start and then we have to pay for more credits, gTTS on the other side is absolutely free to use.<\/p>\n<pre class=\"wp-block-code\"><code>def text_to_speech(text: str, retries: int = 3, delay: int = 5):\n   attempt = 0\n   while attempt <\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-7-create-introductory-message\">7. Create Introductory Message<\/h3>\n<p>We will also create an introductory text and pass it to our TTS model since a respondent would normally introduce themselves and seek what assistance the user might need. Here we will be returning the path of the mp3 file.<\/p>\n<p><em>lang=\u201d en\u201d<\/em> -&gt; English<\/p>\n<p><em>tld= \u201dco.in\u201d<\/em> -&gt; can produce different localized \u2018accents\u2019 for a given language. The default is \u201ccom\u201d<\/p>\n<pre class=\"wp-block-code\"><code>def create_welcome_message():\n   welcome_text = (\n       \"Hello, you\u2019ve reached the Emergency Help Desk. \"\n       \"Please let me know if it's a medical, fire, police, or mental health emergency\u2014\"\n       \"I'm here to guide you right away.\"\n   )\n   try:\n       # Request speech synthesis (streaming generator)\n       response_stream = tts_client.text_to_speech.convert(\n           text=welcome_text,\n           voice_id=\"JBFqnCBsd6RMkjVDRZzb\",\n           model_id=\"eleven_multilingual_v2\",\n           output_format=\"mp3_44100_128\",\n       )\n       # Save streamed bytes to temp file\n       with tempfile.NamedTemporaryFile(delete=False, suffix='.mp3') as f:\n           for chunk in response_stream:\n               f.write(chunk)\n           return f.name\n   except requests.ConnectionError:\n       st.error(\"Failed to generate welcome message due to connection error.\")\n   except Exception as e:\n       st.error(f\"Error creating welcome message: {e}\")\n   return None<\/code><\/pre>\n<h2 class=\"wp-block-heading\" id=\"h-streamlit-app\"><b>Streamlit App<\/b><\/h2>\n<p>Now, let\u2019s jump into the <b>main.py<\/b> script where we will be using <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2021\/07\/streamlit-quickly-turn-your-ml-models-into-web-apps\/\" target=\"_blank\" rel=\"noreferrer noopener\">Streamlit<\/a> to visualize our Chatbot.\u00a0<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-import-libraries-and-functions\">Import Libraries and Functions<\/h3>\n<p>Import our libraries and the functions we had built in our utils.py<\/p>\n<pre class=\"wp-block-code\"><code>import tempfile\n\nimport re\u00a0 # This can be removed if not used\n\nfrom io import BytesIO\n\nfrom pydub import AudioSegment\n\nfrom langchain_core.messages import AIMessage, HumanMessage\n\nfrom langchain_core.output_parsers import StrOutputParser\n\nfrom langchain_core.prompts import ChatPromptTemplate\n\nimport streamlit as st\n\nfrom audio_recorder_streamlit import audio_recorder\n\nfrom utils import *<\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-streamlit-setup\">Streamlit Setup<\/h3>\n<p>Now, we will set our Title name and nice \u201cEmergency\u201d visual photo<\/p>\n<pre class=\"wp-block-code\"><code>st.title(\":blue[Emergency Help Bot] \ud83d\udea8\ud83d\ude91\ud83c\udd98\")\nst.sidebar.image('.\/emergency.jpg', use_column_width=True)<\/code><\/pre>\n<p>We will set our Session States to keep track of our chats and audio<\/p>\n<pre class=\"wp-block-code\"><code>if \"chat_history\" not in st.session_state:\n   st.session_state.chat_history = []\nif \"chat_histories\" not in st.session_state:\n   st.session_state.chat_histories = []\nif \"played_audios\" not in st.session_state:\n   st.session_state.played_audios = {}\n\u00a0<\/code><\/pre>\n<h3 class=\"wp-block-heading\" id=\"h-invoking-our-utils-functions\">Invoking our utils functions<\/h3>\n<p>We will create our welcome message introduction from the Respondent side. This will be the start of our conversation.<\/p>\n<pre class=\"wp-block-code\"><code>if len(st.session_state.chat_history) == 0:\n   welcome_audio_path = create_welcome_message()\n   st.session_state.chat_history = [\n       AIMessage(content=\"Hello, you\u2019ve reached the Emergency Help Desk. Please let me know if it's a medical, fire, police, or mental health emergency\u2014I'm here to guide you right away.\", audio_file=welcome_audio_path)\n   ]\n   st.session_state.played_audios[welcome_audio_path] = False\u00a0<\/code><\/pre>\n<p>Now, in the sidebar we will setting up our voice recorder and the <em>speech-to-text<\/em>, <em>llm_response<\/em> and the <em>text-to-speech<\/em> logic which is the main crux of this project<\/p>\n<pre class=\"wp-block-code\"><code>with st.sidebar:\n   audio_bytes = audio_recorder(\n       energy_threshold=0.01,\n       pause_threshold=0.8,\n       text=\"Speak on clicking the ICON (Max 5 min) \\n\",\n       recording_color=\"#e9b61d\",   # yellow\n       neutral_color=\"#2abf37\",    # green\n       icon_name=\"microphone\",\n       icon_size=\"2x\"\n   )\n   if audio_bytes:\n       temp_audio_path = audio_bytes_to_wav(audio_bytes)\n       if temp_audio_path:\n           try:\n               user_input = speech_to_text(audio_bytes)\n               if user_input:\n                   st.session_state.chat_history.append(HumanMessage(content=user_input, audio_file=temp_audio_path))\n                   response = get_llm_response(user_input, st.session_state.chat_history)\n                   audio_response = text_to_speech(response)\u00a0<\/code><\/pre>\n<p>We will also setup a button on the sidebar which will allow us to restart our session if needed be and of course our introductory voice note from the respondent side.<\/p>\n<pre class=\"wp-block-code\"><code>if st.button(\"Start New Chat\"):\n       st.session_state.chat_histories.append(st.session_state.chat_history)\n       welcome_audio_path = create_welcome_message()\n       st.session_state.chat_history = [\n           AIMessage(content=\"Hello, you\u2019ve reached the Emergency Help Desk. Please let me know if it's a medical, fire, police, or mental health emergency\u2014I'm here to guide you right away.\", audio_file=welcome_audio_path)\n       ]<\/code><\/pre>\n<p>And in the main page of our App, we will be visualizing our Chat History in the form of Click to Play Audio file<\/p>\n<pre class=\"wp-block-code\"><code>for msg in st.session_state.chat_history:\n   if isinstance(msg, AIMessage):\n       with st.chat_message(\"AI\"):\n           st.audio(msg.audio_file, format=\"audio\/mp3\")\n   else:  # HumanMessage\n       with st.chat_message(\"user\"):\n           st.audio(msg.audio_file, format=\"audio\/wav\")<\/code><\/pre>\n<p>Now, we are done with all of the Python scripts needed to run our app. We will run the Streamlit App using the following Command:\u00a0<\/p>\n<pre class=\"wp-block-code\"><code>streamlit run app.py\u00a0<\/code><\/pre>\n<p>So, this is what our Project Workflow looks like:<\/p>\n<pre class=\"wp-block-preformatted\">[User speaks] \u2192 audio_recorder \u2192 audio_bytes_to_wav \u2192 speech_to_text \u2192 get_llm_response \u2192 text_to_speech \u2192 st.audio\u00a0<\/pre>\n<p>For the full code, visit <a href=\"https:\/\/github.com\/Shaik-Hamzah123\/Emergency-Voice-Chatbot\" target=\"_blank\" rel=\"noreferrer noopener\">this<\/a> GitHub repository. <\/p>\n<h2 class=\"wp-block-heading\" id=\"h-final-output\"><b>Final Output<\/b><\/h2>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"445\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Final-Output.webp\" alt=\"Voice Bot Output\" class=\"wp-image-233503\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Final-Output.webp 780w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Final-Output-300x171.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Final-Output-768x438.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/Final-Output-150x86.webp 150w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\"\/><\/figure>\n<\/div>\n<p>The Streamlit App looks pretty clean and is functioning appropriately!<\/p>\n<p>Let\u2019s see some of its responses:-<\/p>\n<ol class=\"wp-block-list\">\n<li><strong>User: <\/strong>Hi, someone is having a heart attack right now, what should I do?\u00a0<\/li>\n<\/ol>\n<figure class=\"wp-block-audio\"><audio controls=\"\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/audio_file1.mp3\"\/><\/figure>\n<p>We then had a conversation on the location and state of the person and then the Chatbot provided this\u00a0<\/p>\n<figure class=\"wp-block-audio\"><audio controls=\"\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/audio_file2.mp3\"\/><\/figure>\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>User:<\/strong> Hello, there has been a huge fire breakout in Delhi. Please send help quick\u00a0<\/li>\n<\/ol>\n<figure class=\"wp-block-audio\"><audio controls=\"\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/audio_file3.mp3\"\/><\/figure>\n<p>Respondent enquires about the situation and where is my current location and then proceeds to provide preventive measures accordingly\u00a0<\/p>\n<figure class=\"wp-block-audio\"><audio controls=\"\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/audio_file4.mp3\"\/><\/figure>\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>User:<\/strong> Hey there, there is a person standing alone across the edge of the bridge, how should i proceed?\u00a0<\/li>\n<\/ol>\n<figure class=\"wp-block-audio\"><audio controls=\"\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/audio_file5.mp3\"\/><\/figure>\n<p>The Respondent enquires about the location where I am and the mental state of the person I\u2019ve mentioned\u00a0<\/p>\n<figure class=\"wp-block-audio\"><audio controls=\"\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/05\/audio_file6.mp3\"\/><\/figure>\n<p>Overall, our chatbot is able to respond to our queries in accordance to the situation and asks the relevant questions to provide preventive measures.<\/p>\n<p><strong><em>Read More: <\/em><\/strong><a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2021\/10\/complete-guide-to-build-your-ai-chatbot-with-nlp-in-python\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>How to build a chatbot in Python?<\/em><\/a><\/p>\n<h2 class=\"wp-block-heading\" id=\"h-what-improvements-can-be-made\"><b>What Improvements can be made?<\/b><\/h2>\n<ul class=\"wp-block-list\">\n<li><b>Multilingual Support:<\/b> Can integrate LLMs with strong multilingual capabilities which can allow the chatbot to interact seamlessly with users from different regions and dialects.<\/li>\n<li><b>Real-Time Transcription and Translation:<\/b> Adding speech-to-text and real-time translation can help bridge communication gaps.<\/li>\n<li><b>Location-Based Services:<\/b> By integrating GPS or other real-time location-based APIs, the system can detect a user\u2019s location and guide the nearest emergency facilities.<\/li>\n<li><b>Speech-to-Speech Interaction:<\/b> We can also use speech-to-speech models which can make conversations feel more natural since they are built for such functionalities.<\/li>\n<li><b>Fine-tuning the LLM:<\/b> Custom fine-tuning of the LLM based on emergency-specific data can improve its understanding and provide more accurate responses.<\/li>\n<\/ul>\n<p><strong>To learn more about AI-powered voice agents, follow these resources:<\/strong><\/p>\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\"><b>Conclusion<\/b><\/h2>\n<p>In this article, we successfully built a voice-based emergency response chatbot using a combination of <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2021\/09\/introduction-to-artificial-intelligence-for-beginners\/\" target=\"_blank\" rel=\"noreferrer noopener\">AI<\/a> models and some relevant tools. This chatbot replicates the role of a trained emergency operator which is capable of handling high-stress situations from medical crises, and fire incidents to mental health support using a calm, assertive that can alter the behavior of our LLM to suit the diverse real-world emergencies, making the experience more realistic for both urban and rural scenario.<\/p>\n<div class=\"border-top py-3 author-info my-4\">\n<div class=\"author-card d-flex align-items-center\">\n<div class=\"flex-shrink-0 overflow-hidden\">\n                                    <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/author\/shaik8558834\/\" class=\"text-decoration-none active-avatar\"><br \/>\n                                                                       <img decoding=\"async\" src=\"https:\/\/av-eks-lekhak.s3.amazonaws.com\/media\/lekhak-profile-images\/converted_image_An81zCg.webp\" width=\"48\" height=\"48\" alt=\"Shaik Hamzah\" loading=\"lazy\" class=\"rounded-circle\"\/><\/p>\n<p>                                <\/a>\n                                <\/div>\n<\/p><\/div>\n<p>GenAI Intern @ Analytics Vidhya | Final Year @ VIT Chennai<br \/>Passionate about AI and machine learning, I&#8217;m eager to dive into roles as an AI\/ML Engineer or Data Scientist where I can make a real impact. With a knack for quick learning and a love for teamwork, I&#8217;m excited to bring innovative solutions and cutting-edge advancements to the table. My curiosity drives me to explore AI across various fields and take the initiative to delve into data engineering, ensuring I stay ahead and deliver impactful projects.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<p><h4 class=\"fs-24 text-dark\">Login to continue reading and enjoy expert-curated content.<\/h4>\n<p>                        <button class=\"btn btn-primary mx-auto d-table\" data-bs-toggle=\"modal\" data-bs-target=\"#loginModal\" id=\"readMoreBtn\">Keep Reading for Free<\/button>\n                    <\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Language models have been rapidly evolving in the world. Now, with Multimodal LLMs taking up the forefront of this Language Models race, it is important to understand how we can leverage the capabilities of these Multimodal models. From traditional text-based AI-powered chatbots, we are transitioning over to voice based chatbots. These act as our personal [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":226382,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[4851,28812,11489,14917,25259,5002],"dealstore":[],"offerexpiration":[],"class_list":["post-226381","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-assistance","tag-chatbot","tag-emergency","tag-empowering","tag-operator","tag-voice"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Emergency Operator Voice Chatbot: Empowering Assistance - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=226381\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Emergency Operator Voice Chatbot: Empowering Assistance - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"Language models have been rapidly evolving in the world. Now, with Multimodal LLMs taking up the forefront of this Language Models race, it is important to understand how we can leverage the capabilities of these Multimodal models. From traditional text-based AI-powered chatbots, we are transitioning over to voice based chatbots. These act as our personal [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=226381\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-06T08:28:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"278\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=226381#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=226381\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Emergency Operator Voice Chatbot: Empowering Assistance\",\"datePublished\":\"2025-05-06T08:28:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=226381\"},\"wordCount\":1594,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=226381#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png\",\"keywords\":[\"Assistance\",\"chatbot\",\"Emergency\",\"Empowering\",\"Operator\",\"Voice\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=226381#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=226381\",\"url\":\"https:\/\/fivemor.com\/?p=226381\",\"name\":\"Emergency Operator Voice Chatbot: Empowering Assistance - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=226381#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=226381#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png\",\"datePublished\":\"2025-05-06T08:28:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=226381#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=226381\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=226381#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png\",\"width\":512,\"height\":278},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=226381#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Emergency Operator Voice Chatbot: Empowering Assistance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Emergency Operator Voice Chatbot: Empowering Assistance - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=226381","og_locale":"en_US","og_type":"article","og_title":"Emergency Operator Voice Chatbot: Empowering Assistance - Som2ny Network","og_description":"Language models have been rapidly evolving in the world. Now, with Multimodal LLMs taking up the forefront of this Language Models race, it is important to understand how we can leverage the capabilities of these Multimodal models. From traditional text-based AI-powered chatbots, we are transitioning over to voice based chatbots. These act as our personal [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=226381","og_site_name":"Som2ny Network","article_published_time":"2025-05-06T08:28:57+00:00","og_image":[{"width":512,"height":278,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=226381#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=226381"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Emergency Operator Voice Chatbot: Empowering Assistance","datePublished":"2025-05-06T08:28:57+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=226381"},"wordCount":1594,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=226381#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png","keywords":["Assistance","chatbot","Emergency","Empowering","Operator","Voice"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=226381#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=226381","url":"https:\/\/fivemor.com\/?p=226381","name":"Emergency Operator Voice Chatbot: Empowering Assistance - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=226381#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=226381#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png","datePublished":"2025-05-06T08:28:57+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=226381#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=226381"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=226381#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/image2-1.png","width":512,"height":278},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=226381#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Emergency Operator Voice Chatbot: Empowering Assistance"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/226381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=226381"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/226381\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/226382"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=226381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=226381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=226381"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=226381"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=226381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}