%----PrefaceImport----%
\documentclass{article}
\usepackage{fancyhdr}
\usepackage[a4paper,margin=1in,headsep=25pt]{geometry}
\usepackage{lipsum,hyperref}
\usepackage{enumerate,fullpage,proof}
\usepackage[fontsize=12pt]{fontsize}
\usepackage{amsmath,amscd,amsbsy,amssymb,latexsym,url,bm,amsthm}
\usepackage{epsfig,graphicx,subfigure}
\usepackage{listings}
\usepackage{bbm}
\usepackage[usenames]{xcolor}

\newtheorem{thm}{Theorem}
\newtheorem{lemma}[thm]{Lemma}

\pagestyle{fancy}
\pagenumbering{Alph}
\setlength{\headheight}{36.0pt}
\headsep = 25pt
\fancyhf{}
\lhead{CSE 4392/5369}
\rhead{Homework 12: Dialogue System}
\lfoot{2026 Kenny Zhu}
%----Documentation----%
\begin{document}

\title{CSE 4392/5369 Special Topic: Natural Language Processing}
\author{Homework 12 - Spring 2026}
\date{Due Date: April 27, 2026, 11:59 PM}
\maketitle
\thispagestyle{fancy}

%----Homeworks----%

Welcome to this week's NLP homework assignment! 
Your task is to design and implement a real-time communication robot that can
talk to you with audio, just like Siri or Google Assistant!
This bot consists of three key components: speech-to-text conversion (ASR), 
 dialogue response generation, and text-to-speech synthesis (TTS). 
 \textbf{You're encouraged to utilize any API or tool} available for each component, 
 allowing you to explore various NLP techniques and 
 unleash your creativity in crafting an engaging and 
 responsive communication robot. Whether you envision a virtual assistant,
 chatbot, or conversationalist, this assignment offers the opportunity
 to experiment with cutting-edge NLP technologies and bring your ideas to life. 
 %Get ready to dive into the world of NLP and 
 %let your imagination soar as you embark on this exciting journey! 
 Happy coding!

\section*{Problem 1 - 100\%}

This assignment is to examine the abilities of:
\begin{itemize}
    \item Information Retrieval
    \item Application of existing APIs
    \item Product design
    \item Engineering efforts
\end{itemize}

\subsection*{Real Time System}
You need to design a real-time system that can:
\begin{enumerate}
    \item Once the system is started, it should be able to listen to the user's voice.
    \item The system could automatically stop listening when the user stops speaking.
    \item A response should be generated in real-time in the form of audio.
    \item After the response is generated, the system should be able to listen to the 
user's voice again.
    \item Once the system hears a specific keyword (e.g., "Exit the bot"), 
it should stop listening and terminate the program.
\end{enumerate}

\subsection*{Speech to Text}
For speech-to-text conversion, you may use any available API or tool. For example:
\begin{itemize}
    \item \href{https://pypi.org/project/SpeechRecognition/}{SpeechRecognition Library}
    \item \href{https://developers.openai.com/api/docs/guides/speech-to-text}{OpenAI Speech-to-Text}
    \item \href{https://docs.cloud.google.com/speech-to-text/docs}{Google Cloud Speech-to-Text}
    \item ...
\end{itemize}

\subsection*{Response Generation}
For response generation, you may use any available API or tool. For example:
\begin{itemize}
    \item \href{https://docs.chatterbot.us/}{ChatterBot Library}
    \item \href{https://developers.openai.com/api/docs/guides/text}{OpenAI API (Text Generation / Responses API)}
    \item \href{https://developers.openai.com/api/docs/guides/realtime}{OpenAI Realtime API}
    \item ...
\end{itemize}

\subsection*{Text to Speech}
For text-to-speech synthesis, you may use any available API or tool. For example:
\begin{itemize}
    \item \href{https://developers.openai.com/api/docs/guides/text-to-speech}{OpenAI Text-to-Speech}
    \item \href{https://pypi.org/project/pyttsx3/}{pyttsx3 Library}
    \item ...
\end{itemize}

\subsection*{}
\textbf{Attach your codes and a captured video demo that explains how your app works.}


\vspace{0.8em}
\noindent{\color{red}\footnotesize
\textbf{Submission Format:}
Submit one zip file via Canvas containing only
the \texttt{.pdf} version of your homework (typed submissions are preferred;
scanned images must be readable), the corresponding
source files, and a \texttt{README} file describing how to run the code.
The zip file must be named
\texttt{lastname\_studentID\_hw12.zip}.
}

\end{document}



