The Submissions page displays a customizable overview of a webform node's submissions. Submissions can be reviewed, updated, flagged and annotated. Watch video
214 submissions
# | Starred | Locked | Notes | Created Sort ascending | User | IP address | Script Title | Script Description | Script | Name | Email Address | Organization Name | Organization URL | Operations |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
117 | Star/flag Script Upload: Submission #117 | Lock Script Upload: Submission #117 | Add notes to Script Upload: Submission #117 | Sun, 02/11/2024 - 15:22 | Anonymous | 5.188.210.91 | cunohpqq | <a href="https://wegovy.directory/">buy semaglutide in mexico</a> | <a href="https://wegovy.directory/">buy semaglutide in mexico</a> | wegovy 3 mg wegovy 3 mg | teresita@outlook.com | wegovy 3 mg | https://rybelsustabs.online/ | |
116 | Star/flag Script Upload: Submission #116 | Lock Script Upload: Submission #116 | Add notes to Script Upload: Submission #116 | Sat, 02/10/2024 - 14:39 | Anonymous | 5.188.210.84 | czizlupu | <a href="https://ozempic.cfd/">buy rybelsus online no script</a> | <a href="https://ozempic.cfd/">buy rybelsus online no script</a> | rybelsus 7 mg tablet rybelsus 7 mg tablet | mbushnaq@outlook.com | rybelsus 7 mg tablet | https://rybelsustabs.online/ | |
115 | Star/flag Script Upload: Submission #115 | Lock Script Upload: Submission #115 | Add notes to Script Upload: Submission #115 | Sat, 02/10/2024 - 04:33 | Anonymous | 5.188.210.30 | oiipezno | <a href="https://semaglutide.directory/">cheap semaglutide</a> | <a href="https://semaglutide.directory/">cheap semaglutide</a> | rybelsus buy uk rybelsus buy uk | globaltrade247@outlook.com | rybelsus buy uk | https://semaglutide.click/ | |
114 | Star/flag Script Upload: Submission #114 | Lock Script Upload: Submission #114 | Add notes to Script Upload: Submission #114 | Sat, 02/10/2024 - 01:22 | Anonymous | 5.188.210.38 | ajwnpwhv | <a href="http://ozempic.pics/">rybelsus canada pharmacy</a> | <a href="http://ozempic.pics/">rybelsus canada pharmacy</a> | buy rybelsus buy rybelsus | dlphn2074@outlook.com | buy rybelsus | http://wegovy.guru/ | |
113 | Star/flag Script Upload: Submission #113 | Lock Script Upload: Submission #113 | Add notes to Script Upload: Submission #113 | Fri, 02/09/2024 - 04:55 | Anonymous | 5.188.210.80 | msnkunzs | <a href="https://semaglutide.click/">rybelsus 21 mg</a> | <a href="https://semaglutide.click/">rybelsus 21 mg</a> | buy semaglutide in mexico buy semaglutide in mexico | caryandotis@yahoo.com | buy semaglutide in mexico | http://semaglutide.trade/ | |
112 | Star/flag Script Upload: Submission #112 | Lock Script Upload: Submission #112 | Add notes to Script Upload: Submission #112 | Thu, 02/08/2024 - 19:18 | Anonymous | 5.188.210.93 | hwcigpzmt | <a href="http://rybelsustabs.com/">buy semaglutide</a> | <a href="http://rybelsustabs.com/">buy semaglutide</a> | rybelsus generic cost rybelsus generic cost | luzjaz@hotmail.com | rybelsus generic cost | https://semaglutidewegovy.com/ | |
111 | Star/flag Script Upload: Submission #111 | Lock Script Upload: Submission #111 | Add notes to Script Upload: Submission #111 | Thu, 02/08/2024 - 01:50 | Anonymous | 5.188.210.84 | xvcnjxum | <a href="http://wegovy.company/">rybelsus</a> | <a href="http://wegovy.company/">rybelsus</a> | semaglutide 14mg tablets semaglutide 14mg tablets | bryanccallaway@yahoo.com | semaglutide 14mg tablets | https://rybelsus.company/ | |
110 | Star/flag Script Upload: Submission #110 | Lock Script Upload: Submission #110 | Add notes to Script Upload: Submission #110 | Thu, 03/09/2023 - 08:34 | Anonymous | 146.70.117.227 | YouTube Music Player | Description: This skill allows users to search for and play music from YouTube while complying with copyright laws. The skill will only play music that is licensed for use or falls under fair use guidelines. Activation Phrase: "Hey Neon, play music from YouTube." Sample Utterances: "Play [song name] by [artist name]." "Find [song name] on YouTube." "Play the top songs from [artist name] on YouTube." Skill Steps: Neon AI will prompt the user for the name of the song and/or artist they want to listen to. The skill will use the YouTube API to search for the requested music. If the requested music is licensed for use or falls under fair use guidelines, Neon AI will play the music for the user. If the requested music is not licensed for use or does not fall under fair use guidelines, Neon AI will inform the user that the requested music cannot be played due to copyright restrictions. The user can then request a different song or artist to listen to, or end the session. Legal Disclaimer: The YouTube Music Player skill is intended for personal, non-commercial use only. The user is responsible for ensuring that any music played through this skill is licensed for use or falls under fair use guidelines. Neon AI is not responsible for any copyright infringement that may result from the use of this skill. By using this skill, the user agrees to comply with all applicable copyright laws and regulations. |
import neon from neon_util import get_youtube_video app = neon.Application() @app.handle(intent='play_music') def play_music_handler(request, responder): song_name = request.slot_value('song_name') artist_name = request.slot_value('artist_name') # Use YouTube API to search for the requested music video_id = get_youtube_video(song_name, artist_name) if video_id is not None: # Play the music if it is licensed for use or falls under fair use guidelines responder.play_media('https://www.youtube.com/watch?v=' + video_id) else: # Inform the user that the requested music cannot be played due to copyright restrictions responder.reply('Sorry, the requested music cannot be played due to copyright restrictions.') app.run() |
Adam Obradovic | elric@riseup.net | |||
109 | Star/flag Script Upload: Submission #109 | Lock Script Upload: Submission #109 | Add notes to Script Upload: Submission #109 | Thu, 03/09/2023 - 07:58 | Anonymous | 146.70.117.227 | Re-name Neon | This skill allows the user to rename Neon and save the new name to Neon's AI's Bootable USB Drive for the Mark II. Activation Phrase: "Hey Neon, rename yourself." Sample Utterances: "Change your name to [new name]." "Can you call yourself [new name] from now on?" "I want to give you a new name. Let's call you [new name]." Skill Steps: Neon AI will prompt the user to provide a new name for it. The user will provide the new name. Neon AI will confirm the new name and ask the user if they want to save it. If the user confirms, Neon AI will save the new name to its Bootable USB Drive for the Mark II and reply with a confirmation message. If the user does not confirm, Neon AI will ask if the user wants to try again or end the session. |
import neon import os app = neon.Application() @app.handle(intent='rename_neon') def rename_neon_handler(request, responder): new_name = request.slot_value('new_name') # Confirm the new name and ask the user if they want to save it confirmation_message = f"Are you sure you want to change my name to {new_name}?" confirmation = responder.yes_or_no(confirmation_message) if confirmation == 'yes': # Save the new name to Neon's AI's Bootable USB Drive for the Mark II bootable_drive_path = "/boot" new_name_file_path = os.path.join(bootable_drive_path, "neon_name.txt") with open(new_name_file_path, "w") as f: f.write(new_name) responder.reply(f"My new name is now {new_name}.") else: # Ask the user if they want to try again or end the session retry_message = "Do you want to try again or end this session?" retry = responder.yes_or_no(retry_message) if retry == 'yes': responder.listen() else: responder.reply("Okay, see you next time!") app.run() |
Adam Obradovic | elric@riseup.net | |||
108 | Star/flag Script Upload: Submission #108 | Lock Script Upload: Submission #108 | Add notes to Script Upload: Submission #108 | Thu, 03/09/2023 - 07:54 | Anonymous | 146.70.117.227 | User Voice Recognition | This is a User Voice Recognition skill for Neon that includes the ability to recognize the user's voice and save the voice recognition data to the bootable USB drive for the Mark 2. The updated code saves the user's voice recognition file to a text file named after the user's name, and then Neon confirms that the file has been saved after the training is completed. Skill Description: This skill allows Neon AI to recognize and remember the voice of its user (up to four different voices) and save the voice recognition data to the bootable USB drive for the Mark II device. |
import speech_recognition as sr import os class UserVoiceRecognitionSkill: def __init__(self): self.user_voice_profiles = {} self.sample_rate = 44100 self.chunk_size = 1024 self.format = sr.paInt16 def train_voice_profile(self, n_session): r = sr.Recognizer() with sr.Microphone(sample_rate=self.sample_rate, chunk_size=self.chunk_size) as source: n_session.say("What is your name?") audio = r.listen(source) try: user_name = r.recognize_sphinx(audio) except sr.UnknownValueError: n_session.say("Sorry, I couldn't understand your name. Please try again.") return with sr.Microphone(sample_rate=self.sample_rate, chunk_size=self.chunk_size) as source: n_session.say(f"Hi {user_name}! Please say a few sentences so I can learn to recognize your voice.") audio = r.listen(source) try: voice_profile = r.recognize_sphinx(audio) if len(self.user_voice_profiles) < 4: self.user_voice_profiles[user_name] = voice_profile n_session.say("Thank you! I have learned to recognize your voice.") else: n_session.say("I can only recognize up to four different voices. Please remove a voice profile to add a new one.") except sr.UnknownValueError: n_session.say("Sorry, I couldn't understand what you said. Please try again.") # Save user's voice recognition file to Bootable USB Drive for the Mark II with open(f"{user_name}.txt", "w") as f: f.write(voice_profile) # Confirm the voice recognition file is saved n_session.say(f"I now know your voice, {user_name}, and have saved it to my files.") n_session.complete() def execute(self, n_session): if not self.user_voice_profiles: self.train_voice_profile(n_session) r = sr.Recognizer() with sr.Microphone(sample_rate=self.sample_rate, chunk_size=self.chunk_size) as source: audio = r.listen(source) try: user_input = r.recognize_sphinx(audio) for user_name, voice_profile in self.user_voice_profiles.items(): if voice_profile.lower() in user_input.lower(): n_session.say(f"Hi {user_name}! How can I help you today?") return n_session.say("Sorry, I don't recognize your voice. Would you like to train me again?") except sr.UnknownValueError: n_session.say("Sorry, I couldn't understand what you said.") |
Adam Obradovic | elric@riseup.net | |||
107 | Star/flag Script Upload: Submission #107 | Lock Script Upload: Submission #107 | Add notes to Script Upload: Submission #107 | Mon, 12/26/2022 - 19:58 | Anonymous | 111.196.190.249 | welcomezhh | welcomezhh in Chinese | Script: "welcomezhh" Language: zh-cn, female Variable: name Variable: like Variable: location Variable: question Neon Speak: "你好, 我名字是 Neon." Neon Speak: "你叫什么名字?" voice_input(name) Neon Speak: "很高兴见到你 {name}" Neon Speak: "你在哪个城市?" voice_input(location) Execute: " {location} 现在什么时间?" Execute: " {location} 现在什么天气?" LOOP Q1 Neon Speak: "请问我问题,或说退出或 exit" if {question} == "exit": Exit if {question} == "退出": Exit voice_input(question) #Execute: "{question}" LOOP Q1 END Exit |
andy zhou | ablozhou@gmail.com | |||
106 | Star/flag Script Upload: Submission #106 | Lock Script Upload: Submission #106 | Add notes to Script Upload: Submission #106 | Tue, 12/14/2021 - 18:17 | Anonymous | 76.121.181.179 | Testy | Test | Script: "Testy" Variable: example Variable: discard Variable: whatisay Variable: try Neon Speak: "Teach me with an example." Neon Speak: "Tell me something like this: when I say,,, jump,,, you say,,, how high." voice_input(discard) voice_input(whatisay) voice_input(discard) voice_input(whatyousay) Neon Speak: "I think I got it." Neon Speak: "Go ahead, try me." voice_input(discard) Neon Speak: "{whatyousay}" LOOP Q1 Neon Speak: "Try me again, or say exit." voice_input(try) if {try} == "exit": Exit Neon Speak: "{whatyousay}" #Execute: "{question}" LOOP Q1 END Exit |
Elon Testing | elon@neon.ai | |||
105 | Star/flag Script Upload: Submission #105 | Lock Script Upload: Submission #105 | Add notes to Script Upload: Submission #105 | Tue, 12/14/2021 - 18:03 | Anonymous | 76.121.181.179 | Corny One | The simplest possible CBE - elaborate later. | Script: "Corny One" Variable: example Variable: discard Variable: whatisay Variable: try Neon Speak: "Teach me with an example." Neon Speak: "Tell me something like this: when I say,,, jump,,, you say,,, how high." voice_input(discard) voice_input(whatisay) voice_input(discard) voice_input(whatyousay) Neon Speak: "I think I got it." Neon Speak: "Go ahead, try me." voice_input(discard) Neon Speak: "{whatyousay}" LOOP Q1 Neon Speak: "Try me again, or say exit." voice_input(try) if {try} == "exit": Exit Neon Speak: "{whatyousay}" LOOP Q1 END Exit |
Too Embarassing | elon@neon.ai | |||
104 | Star/flag Script Upload: Submission #104 | Lock Script Upload: Submission #104 | Add notes to Script Upload: Submission #104 | Fri, 08/21/2020 - 17:56 | Anonymous | 50.47.129.133 | Covid 19 Audio | COVID-19 script with prerecorded audio files | Script: "Covid 19 Audio" Language: "en-us male" @restartCovidScreening Name Speak: "Robbie", "</speak>Version 20200709 17-40 Demo Covid-19 Screening Application" Variable: userName Variable: covidUserRef Variable: covidIll Variable: covidAge Variable: covidLifeThreat Variable: covidContact Variable: covidFever Variable: covidBreath Variable: covidSevereBreath Variable: covidCough Variable: covidSevereCough Variable: covidBP Variable: covidSevereBP Variable: covidNose Variable: covidThroat Variable: covidMuscle Variable: covidTaste Variable: covidFatigue Variable: covidNausea Variable: covidLungs Variable: covidHeart Variable: covidDiabetes Variable: covidNeuroCough Variable: covidWeakImmune Variable: covidDialysis Variable: covidLiver Variable: covidObesity Variable: covidPregnancy Variable: covidComorbiditiesCount Variable: covidNursingHome Variable: covidCareGiver Variable: True = 1 Variable: False = 0 Variable: yesNoList = "yes", "no" Variable: yesList = "yes", "sure", "very", "yup", "y" Variable: noList = "no", "not", "I don't have", "nope", "n" # {ignoreList} = "I'm", "a", "the", "thanks", "thank you" # Prepositions and articles to ignore .. Variable: detailsList = "details", "more details", "tell me more" Variable: userSelfRefsList = "self", "myself", "me" Variable: userElseRefsList = "else", "someone else", "friend" Name Speak: "Robbie", "<speak></speak>This demonstration is based on the CDC's guide recommendations for Covid-19 phone screening, as of June 2020, and should not be considered a CDC or medically approved application at this time." # Name Speak: Robbie : "<speak></speak>Some text to print and not speak." #GREETING @startCovidScreening Name Speak: "Robbie", "Thank you for interacting with the demonstration Neon virtual examination room and Covid-19 conversational screening application beta test." Name Speak: "Robbie", "My name is Neon Robbie." Name Speak: "Robbie", "What is your name?" voice_input{userName} Name Reconvey: "Robbie", "Hi {userName}", "Hi" Name Reconvey: "Robbie", "I am glad you chose to talk with me about Covid-19 symptoms." @promptMoreAppInfo Name Speak: "Robbie", "Before starting the screening, would you like more information on the Neon conversational Covid-19 demo screening application?" voice_input{moreAppInfo} #if {moreAppInfo} !IN {yesNoList[*]}: # Goto: promptMoreAppInfo #if {moreAppInfo} IN {noList[*]}: if {moreAppInfo} IN {noList[*]}: Goto: BeginScreening Name Speak: "Robbie", "The Neon conversational demonstration Covid-19 screening application is based on the Center for Disease Control and Prevention recommendations for the Coronavirus Disease 2019 Telephone Response Guide. The Covid-19 screening script is available at CDC dot gov website. </speak>https://www.cdc.gov/coronavirus/2019-ncov/hcp/phone-guide/ " @BeginScreening Name Speak: "Robbie", "Your beta test virtual exam room is ready." Name Reconvey: "Robbie", "In response to screening questions you can say details to hear more details.", "Say details for details" # Name Speak: "Robbie", "or you can say previous question, or start over." @promptUserRef Name Reconvey: "Robbie", "Are you asking for help for yourself, or for someone else?" voice_input{covidUserRef} if {covidUserRef} IN {detailsList[*]}: Name Speak: "Robbie", "For record keeping, we need to keep track of who we interact with." Goto: promptUserRef #if {covidUserRef} == "myself": if {covidUserRef} IN {userSelfRefsList[*]}: userRef1 = "have you" userRef2 = "are you" userRef3 = "do you" userRef1C = "Have you" userRef2C = "Are you" userRef3C = "Do you" else: if {covidUserRef} IN {userElseRefsList[*]}: userRef1 = "has the person you are calling about" userRef2 = "is the person for whom you are calling" userRef3 = "does the person you are calling about" userRef1C = "Has the person you are calling about" userRef2C = "Is the person for whom you are calling" userRef3C = "Does the person you are calling about" else Name Reconvey: "Robbie", "Sorry {userName} I didn't get that.", "I didn't get that." Goto: promptUserRef Name Reconvey: "Robbie", "Got it {userName}.", "Got it" #TRIAGE @promptIll # Name Speak: "Robbie", "This audio guide is for people who are ill. {userRef2C} ill?" Name Reconvey: "Robbie", "This audio guide is for people who are ill" Name Reconvey: "Robbie", "Are you ill of contacting on behalf of someone who is ill?" # "Are you ill (or contacting on behalf of someone who is ill)?" voice_input{covidIll} if {covidIll} IN {detailsList[*]}: Name Reconvey: "Robbie", "We are demonstrating CDC's Covid-19 symptom screening for people who feel ill." Name Reconvey: "Robbie", "If you are not showing symptoms of illness, then this screening system can not help you." Name Reconvey: "Robbie", "If you are concerned you have Covid-19 infection you should contact your care advisor, since some people who have the Covid-19 infection are non-symptomatic." Goto: promptUserRef if {covidIll} IN {noList[*]}: Name Speak: "Robbie", "You're not symptomatic of Covid-19 but if you are concerned you have Covid-19 infection you should contact your care advisor." Name Speak: "Robbie", "Option for additional information on Covid-19 symptoms are in progress." Goto: A-noSymptoms # TODO: This could do something other than run exit, continue prompting? Ask to start over? Ask to check other symptoms? # Exit - Only for sick people else: if {covidIll} IN {yesList[*]}: Goto: promptAge else: if {covidIll} == "start over": Goto: startCovidScreening else: Goto: promptIll @promptAge Name Reconvey: "Robbie", "This audio guide is for people over 5. How many years old are you or the person you are calling about?" voice_input{covidAge} if {covidAge} IN {detailsList[*]}: Name Speak: "Robbie", "This demonstration of conversational Covid-19 symptom screening is for people over the age of 5. Thank you for helping test the Neon Covid-19 screener." Goto: promptAge if {covidAge} < 5: Goto: C-lessThanFive else: if {covidAge} >= 5: Goto: promptLifeThreatening else: Goto: promptAge # LIFE THREATENING @promptLifeThreatening Name Speak: "Robbie", "{userRef3C} have a life-threatening emergency medical condition? Say details for details." voice_input{covidLifeThreat} if {covidLifeThreat} IN {noList[*]}: Goto: promptContact else: # if {covidLifeThreat} == "details": if {covidLifeThreat} IN {detailsList[*]}: Name Speak: "Robbie", "Life-threatening emergency medical conditions include these symptoms:" Name Speak: "Robbie", "Extremely difficult breathing (can't talk without gasping for air); " Name Speak: "Robbie", "Blue-colored lips or face; Severe, constant dizziness or lightheadedness; " Name Speak: "Robbie", "Acting confused or inability to arouse; new or worsening slurred speech;" Name Speak: "Robbie", "New onset of seizures or seizures that won't stop; and " Name Speak: "Robbie", "Other life-threatening emergency signs." Name Speak: "Robbie", "Anyone with a life-threatening emergency should immediately call 911." Name Speak: "Robbie", "Thank you for helping test the Neon Covid-19 screener." Goto: promptLifeThreatening if {covidLifeThreat} !IN {yesList[*]}: Goto: promptLifeThreatening Goto: B-call911 # SCREEN FOR SYMPTOMS @promptContact Name Speak: "Robbie", "In the two weeks leading up to feeling sick {userRef1} had contact with someone who was diagnosed with COVID-19, or live in or recently visited a place where COVID-19 is spreading?" voice_input{covidContact} if {covidContact} IN {detailsList[*]}: Name Speak: "Robbie", "It is important for record keeping to keep track of known contacts to people or places that expose them to Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptContact if {covidContact} IN {noList[*]}: covidContact = {False} else: if {covidContact} !IN {yesList[*]}: Goto: promptContact covidContact = {True} # SYMPTOMS @promptFever Name Speak: "Robbie", "{userRef3C} have a fever or felt hot or feverish in the last two days?" voice_input{covidFever} if {covidFever} IN {detailsList[*]}: Name Speak: "Robbie", "People with a fever over 100.4, and trouble breathing, persistent pain or pressure in the chest, bluish lips or face, or new confusion or fainting, should immediately seek emergency medical care, should limit contact with others and be tested for Covid-19. For fever-reducing medications acetaminophen is recommended (for example Tylenol). Thank you for helping test the Neon Covid-19 screener." Goto: promptFever if {covidFever} IN {noList[*]}: covidFever = {False} else: if {covidFever} !IN {yesList[*]}: Goto: promptFever covidFever = {True} # Add - # Ask "Were you able to measure the temperature with a thermometer?" # Yes: Ask "What was the temperature and when was it measured?" # If No: Ask "Are you/they experiencing shaking, chills, or sweating? Do you/they feel very warm to the touch?" # Ask "When did the fever/feverishness start?" # Ask "Was fever-reducing medication given?" # Details: WHO recommends acetaminophen (for example Tylenol). NOT nonsteroidal anti-inflammatory drugs, NSAIDs, for example ibuprofen (like Advil), naproxen (like Aleve), aspirin, and others. # Details: Examples of fever-reducing medications include acetaminophen (for example Tylenol) and nonsteroidal anti-inflammatory drugs, or NSAIDs, for example ibuprofen (like Advil), naproxen (like Aleve), aspirin, and others. # If Yes: Ask "How long ago was the medication taken?" @promptBreath # TODO: Breath Audio here Name Speak: "Robbie", "{userRef3C} have shortness of breath?" voice_input{covidBreath} if {covidBreath} IN {detailsList[*]}: Name Speak: "Robbie", "People with trouble breathing and a fever over 100.4, persistent pain or pressure in the chest, bluish lips or face, or new confusion or fainting, should immediately seek emergency medical care, should limit contact with others and be tested for Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptBreath if {covidBreath} IN {noList[*]}: covidBreath = {False} covidSevereBreath = {False} else: if {covidBreath} !IN {yesList[*]}: Goto: promptBreath covidBreath = {True} @promptSevereBreath # TODO: Severe Breath Audio here Name Speak: "Robbie", "{userRef3C} have severe shortness of breath, such as difficulty talking or walking across the room without stopping to breath, or fainting?" voice_input{covidSevereBreath} if {covidSevereBreath} IN {yesList[*]} : covidSevereBreath = {True} Name Speak: "Robbie", "People having severe shortness of breath need urgent care and should call 911 or immediately go to the emergency department." Goto: B-call911 else: if {covidSevereBreath} !IN {noList[*]}: Goto: promptSevereBreath covidSevereBreath = {False} @promptCough if {userRef3C} == "Do you": Name Reconvey: "Robbie", "Do you have a cough?" else: Name Reconvey: "Robbie", "Does the person you are calling about have a cough?" voice_input{covidCough} if {covidCough} IN {detailsList[*]}: Name Speak: "Robbie", "People with a cough, trouble breathing, persistent pain or pressure in the chest, and a fever over 100.4, or bluish lips or face, or new confusion, or fainting, should immediately seek emergency medical care, should limit contact with others and be tested for Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptCough if {covidCough} IN {noList[*]}: covidCough = {False} covidSevereCough = {False} else: if {covidCough} !IN {yesList[*]}: Goto: promptCough covidCough = {True} @promptSevereCough if {userRef1C} == "Have you": Name Reconvey: "Robbie", "Have you coughed up a teaspoon of blood?" else: Name Reconvey: "Robbie", "Has the person you are calling about coughed up a teaspoon of blood?" voice_input{covidSevereCough} if {covidSevereCough} IN {yesList[*]} : covidSevereCough = {True} Name Speak: "Robbie", "People having severe coughing (termed hemoptysis) should go to the emergency department." Goto : D-gotoEmergency if {covidSevereCough} !IN {noList[*]}: Goto: promptSevereCough covidSevereCough = {False} @promptBP # TODO: Low BP Audio here Name Speak: "Robbie", "{userRef3C} have low blood pressure? Signs of low blood pressure can include cold, pale, or clammy skin; or feeling too light-headed and too weak to stand." voice_input{covidBP} if {covidBP} IN {detailsList[*]}: Name Speak: "Robbie", "People with a symptom of very low blood pressure, such as new confusion or fainting or being too weak to stand, should immediately seek emergency medical care. Thank you for helping test the Neon Covid-19 screener." Goto: promptBP if {covidBP} IN {noList[*]}: covidBP = {False} covidSevereBP = {False} else: if {covidBP} !IN {yesList[*]}: Goto: promptBP covidBP = {True} @promptSevereBP Name Speak: "Robbie", "{userRef3C} have severe low BP hypotension such as not being able to stand?" voice_input{covidSevereBP} if {covidSevereBP} IN {yesList[*]} : covidSevereBP = {True} Name Speak: "Robbie", "People having severe low blood pressure symptoms should go to the emergency department." Goto : D-gotoEmergency if {covidSevereBP} !IN {noList[*]}: Goto: promptSevereBP covidSevereBP = {False} @promptNose Name Reconvey: "Robbie", "{userRef3C} have a runny or stuffy nose?", "Do you of the person you are calling about have a new loss of taste or smell?" voice_input{covidNose} if {covidNose} IN {detailsList[*]}: Name Speak: "Robbie", "It is important for record keeping to keep track of symptoms related to Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptNose if {covidNose} IN {noList[*]}: covidNose = {False} else: if {covidNose} !IN {yesList[*]}: Goto: promptNose covidNose = {True} @promptThroat Name Reconvey: "Robbie", "{userRef3C} have a sore throat?", "Do you or the person you are calling about have a sore throat?" voice_input{covidThroat} if {covidThroat} IN {detailsList[*]}: Name Speak: "Robbie", "It is important for record keeping to keep track of symptoms related to Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptThroat if {covidThroat} IN {noList[*]}: covidThroat = {False} else: if {covidThroat} !IN {yesList[*]}: Goto: promptThroat covidThroat = {True} @promptMuscle Name Speak: "Robbie", "{userRef3C} have muscle aches or pains?" voice_input{covidMuscle} if {covidMuscle} IN {detailsList[*]}: Name Speak: "Robbie", "It is important for record keeping to keep track of symptoms related to Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptMuscle if {covidMuscle} IN {noList[*]}: covidMuscle = {False} else: if {covidMuscle} !IN {yesList[*]}: Goto: promptMuscle covidMuscle = {True} @promptTaste Name Reconvey: "Robbie", "{userRef3C} have a new loss of taste or smell?", "Do you or the person you are calling about have a new loss of taste or smell?" voice_input{covidTaste} if {covidTaste} IN {detailsList[*]}: Name Speak: "Robbie", "It is important for record keeping to keep track of symptoms related to Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptTaste if {covidTaste} IN {noList[*]}: covidTaste = {False} else: if {covidTaste} !IN {yesList[*]}: Goto: promptTaste covidTaste = {True} @promptFatigue Name Speak: "Robbie", "{userRef3C} have unusual tiredness, fatigue or malaise?" voice_input{covidFatigue} if {covidFatigue} IN {detailsList[*]}: Name Speak: "Robbie", "It is important for record keeping to keep track of symptoms related to Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptFatigue if {covidFatigue} IN {noList[*]}: covidFatigue = {False} else: if {covidFatigue} !IN {yesList[*]}: Goto: promptFatigue covidFatigue = {True} @promptNausea Name Speak: "Robbie", "{userRef3C} have nausea, vomiting, or diarrhea" voice_input{covidNausea} if {covidNausea} IN {detailsList[*]}: Name Speak: "Robbie", "It is important for record keeping to keep track of symptoms related to Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptNausea if {covidNausea} IN {noList[*]}: covidNausea = {False} else: if {covidNausea} !IN {yesList[*]}: Goto: promptNausea covidNausea = {True} #HIGH RISK Name Speak: "Robbie", "I am now going to ask questions about ongoing medical conditions including pregnancy." @promptLungs Name Speak: "Robbie", "{userRef3C} have chronic lung diseases?" # Details: "like asthma, chronic obstructive pulmonary disease [chronic bronchitis or emphysema], or other chronic conditions associated with impaired lung function or that require home oxygen?" voice_input{covidLungs} if {covidLungs} IN {detailsList[*]}: Name Speak: "Robbie", "Chronic lung diseases include asthma, chronic obstructive pulmonary disease, chronic bronchitis or emphysema, or other chronic conditions associated with impaired lung function or that require home oxygen. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptLungs if {covidLungs} IN {noList[*]}: covidLungs = {False} else: if {covidLungs} !IN {yesList[*]}: Goto: promptLungs covidLungs = {True} @promptHeart Name Speak: "Robbie", "{userRef3C} have congestive heart failure?" voice_input{covidHeart} if {covidHeart} IN {detailsList[*]}: Name Speak: "Robbie", "Congestive heart failure includes coronary artery blockage, heart attack, valve disease or congenital heart disease, and resulting in the heart not being able to pump efficiently and reduced blood flow. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptHeart if {covidHeart} IN {noList[*]}: covidHeart = {False} else: if {covidHeart} !IN {yesList[*]}: Goto: promptHeart covidHeart = {True} @promptDiabetes Name Speak: "Robbie", "{userRef3C} have diabetes with complications?" # Details: "like limb amputation, kidney disease, vision problems, heart disease, history of stroke, or, especially if they have uncontrolled diabetes or other complications?" voice_input{covidDiabetes} if {covidDiabetes} IN {detailsList[*]}: Name Speak: "Robbie", "Complications of diabetes include limb amputation, kidney disease, vision problems, heart disease, history of stroke, or, especially uncontrolled diabetes or other complications. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptDiabetes if {covidDiabetes} IN {noList[*]}: covidDiabetes = {False} else: if {covidDiabetes} !IN {yesList[*]}: Goto: promptDiabetes covidDiabetes = {True} @promptNeuroCough Name Speak: "Robbie", "{userRef3C} have neurological conditions that weaken ability to cough?" # Details: "like disorders of the brain, spinal cord, peripheral nerve, and muscle such as cerebral palsy, epilepsy [seizure disorders], stroke, intellectual disability, moderate to severe developmental delay, muscular dystrophy, or spinal cord injury voice_input{covidNeuroCough} if {covidNeuroCough} IN {detailsList[*]}: Name Speak: "Robbie", "Neurological conditions that weaken ability to cough include disorders of the brain, spinal cord, peripheral nerve, and muscle such as cerebral palsy, epilepsy [seizure disorders], stroke, intellectual disability, moderate to severe developmental delay, muscular dystrophy, or spinal cord injury. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptNeuroCough if {covidNeuroCough} IN {noList[*]}: covidNeuroCough = {False} else: if {covidNeuroCough} !IN {yesList[*]}: Goto: promptNeuroCough covidNeuroCough = {True} @promptWeakImmune Name Speak: "Robbie", "{userRef3C} have a weakened immune system?" voice_input{covidWeakImmune} if {covidWeakImmune} IN {detailsList[*]}: Name Speak: "Robbie", "A weakened immune system includes seeing a doctor for cancer and treatment such as chemotherapy or radiation, receiving an organ or bone marrow transplant, taking high doses of oral steroids or other immunosuppressant medications, HIV or AIDS. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptWeakImmune if {covidWeakImmune} IN {noList[*]}: covidWeakImmune = {False} else: if {covidWeakImmune} !IN {yesList[*]}: Goto: promptImmune covidWeakImmune = {True} @promptDialysis Name Speak: "Robbie", "{userRef3C} have dialysis or under treatment for a kidney disease?" voice_input{covidDialysis} if {covidDialysis} IN {detailsList[*]}: Name Speak: "Robbie", "Dialysis includes any type of dialysis, and kidney diseases are not specified in the CDC guide recommendations. Additional details in progress. Thank you for helping test the Neon Covid-19 screener." Goto: promptDialysis if {covidDialysis} IN {noList[*]}: covidDialysis = {False} else: if {covidDialysis} !IN {yesList[*]}: Goto: promptDialysis covidDialysis = {True} @promptLiver Name Speak: "Robbie", "{userRef3C} have cirrhosis of the liver, chronic hepatitis or other liver disease?" voice_input{covidLiver} if {covidLiver} IN {detailsList[*]}: Name Speak: "Robbie", "Liver disease includes cirrhosis of the liver, chronic hepatitis or other liver disease, not are not specified in the CDC Covid-19 screening guide recommendations. Additional details in progress. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptLiver if {covidLiver} IN {noList[*]}: covidLiver = {False} else: if {covidLiver} !IN {yesList[*]}: Goto: promptLiver covidLiver = {True} @promptObesity Name Speak: "Robbie", "{userRef3C} have extreme obesity?" voice_input{covidObesity} if {covidObesity} IN {detailsList[*]}: Name Speak: "Robbie", "Extreme obesity is Body Mass Index [BMI] greater than or equal to 40. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Additional details in progress. Thank you for helping test the Neon Covid-19 screener." Goto: promptObesity if {covidObesity} IN {noList[*]}: covidObesity = {False} else: if {covidObesity} !IN {yesList[*]}: Goto: promptObesity covidObesity = {True} @promptPregnancy Name Speak: "Robbie", "{userRef3C} have a current pregnancy or pregnant in the last 2 weeks?" voice_input{covidPregnancy} if {covidPregnancy} IN {detailsList[*]}: Name Speak: "Robbie", "Pregnancy and recent pregnancy are considered ongoing medical conditions in the CDC Covid-19 screening guide. People with ongoing medical conditions are more at risk of severe symptoms from Covid-19. Thank you for helping test the Neon Covid-19 screener." Goto: promptPregnancy if {covidPregnancy} IN {noList[*]}: covidPregnancy = {False} else: if {covidPregnancy} !IN {yesList[*]}: Goto: promptPregnancy covidPregnancy = {True} # CALCULATE COMORBIDITIES AND ADVERSE RISKS Python: covidComorbiditiesCount = {covidLungs} + {covidHeart} + {covidDiabetes} + {covidNeuroCough} + {covidDialysis} + {covidLiver} + {covidObesity} + {covidPregnancy} if {covidComorbiditiesCount} >0 : Name Speak: "Robbie", "Important! You've reported significant underlying medical conditions and illness symptoms you are advised to contact a care provider and be seen within 24 hours." # Add - Collect details? .. If history appears unreliable: Screen for other medical conditions. "Please tell me about any medicine that you/sick person take(s) daily or regularly." Ask about current medications that might indicate underlying chronic conditions. # CHECK IF CAREGIVER OR LIVING IN FACILITY @promptNursingHome Name Speak: "Robbie", "{userRef3C} live in a nursing home or other long-term care facility?", "Do you or the person you are calling about live in a nursing home or other long-term care facility?" voice_input{covidNursingHome} if {covidNursingHome} IN {noList[*]}: covidNursingHome = {False} else: if {covidNursingHome} !IN {yesList[*]}: Goto: promptNursingHome covidNursingHome = {True} covidCareGiver = {False} Name Speak: "Robbie", "It is important that you immediately report these symptoms to your nursing home or care facility immediately, including shortness of breath, fever or cough." Goto: G-careFacilityReport @promptCareGiver Name Reconvey: "Robbie", "{userRef3C} been involved as a worker, student or volunteer at a health care setting in the last two weeks?", "In the last two weeks have you or the person you are calling about worked or volunteered... work?" # Details: in the last two weeks worked or volunteered in a hospital, emergency room, clinic, medical office, ambulance service, first responder services, or any health care setting, or taken care of patients as a student as a part of your/their work? voice_input{covidCareGiver} if {covidCareGiver} IN {noList[*]}: covidCareGiver = {False} else: if {covidCareGiver} !IN {yesList[*]}: Goto: promptCareGiver covidCareGiver = {True} Name Speak: "Robbie", "It is important that you immediately report your symptoms to the occupational health provider for the care facility where you were involved, including shortness of breath, fever or respiratory symptoms." Goto: F-careGiverReport # List Symptoms, Comorbidities & Risks Name Speak: "Robbie", "Would you like me to list your information including Symptoms and Comorbidities?" voice_input(userInput) if {userInput} IN {noList[*]}: Goto: checkDispositions Name Speak: "Robbie", "I will list your information. Would you like me to read out loud?" voice_input(userInput) if {userInput} IN {noList[*]}: varNoSpeak = "</speak>" else varNoSpeak = "" varProsody = "rate='x-fast'" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> User Name {userName} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> User Ref {covidUserRef} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> User Ill {covidIll} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> User Age {covidAge} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Life Threat {covidLifeThreat} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Contact {covidContact} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Fever {covidFever} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Breathing {covidBreath} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Severe Breathing {covidSevereBreath} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Cough {covidCough} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Severe Cough {covidSevereCough} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> BP {covidBP} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Severe BP {covidSevereBP} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Nose {covidNose} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Throat {covidThroat} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Muscle {covidMuscle} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Taste {covidTaste} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Fatigue {covidFatigue} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Nausea {covidNausea} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Comorbidities </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Lungs {covidLungs} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Heart {covidHeart} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Diabetes {covidDiabetes} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Neuro Cough {covidNeuroCough} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Weakened Immune {covidWeakImmune} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Dialysis {covidDialysis} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Liver {covidLiver} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Obesity {covidObesity} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Pregnancy {covidPregnancy} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Comorbidities Total {covidComorbiditiesCount} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Nursing Home or Facility {covidNursingHome} </prosody>" Name Speak: "Robbie", "{varNoSpeak} <prosody {varProsody}> Care Giving {covidCareGiver} </prosody>" @checkDispositions Name Speak: "Robbie", "Neon AI test - Checking for Dispositions for the reported symptoms." # CALCULATE D-gotoEmergency DISPOSITION Python: covidEmergencyCount = {covidSevereBreath} + {covidSevereCough} + {covidSevereBP} if {covidEmergencyCount} >0 : Name Speak: "Robbie", "People with these severe symptoms are advised to immediately go to the Emergency Department." Goto: D-gotoEmergency # CALCULATE E-callMedicalProvider DISPOSITION # TODO: '*' is not a valid character Python: covidProvider24Count = {covidBreath} + ( {covidFever} * {covidComorbiditiesCount} ) + ( {covidCough} * {covidComorbiditiesCount} ) if {covidProvider24Count} >0 : Name Speak: "Robbie", "People with the reported symptoms are advised to call a medical provider within 24 hours, and are encouraged to participate in tele-health options from their health care provider." Goto: E-callMedicalProvider # CALCULATE BREATHING DISPOSITIONS if {covidBreath}: if {covidComorbiditiesCount} >= 1: Goto: B-call911 Goto: D-gotoEmergency # CALCULATE H-selfCare DISPOSITION Python: covidStayHomeCount = {covidFever} + {covidFever} + {covidCough} if {covidStayHomeCount} >0 : Name Speak: "Robbie", "People with the reported symptoms are advised to stay home and call their health care provider if they get worse, and are encouraged to participate in tele-health options from their health care provider." Goto: H-selfCare # TODO: Goto line here to catch no response, different response for completion vs not ill DM # NO SYMPTOMS - A @A-noSymptoms Name Speak: "Robbie", "The Neon AI triage service is intended for people who are ill or caring for someone who is ill. For general information about coronavirus disease 2019 (COVID-19), please refer to the Centers for Disease Control and Prevention (CDC) website. Do you have something to write with? The CDCs website is www.cdc.gov/COVID19." Goto: promptCreateReport #CALL 911 - B @B-call911 Name Reconvey: "Robbie", "Immediate medical attention is needed. You need to call 911 now. Tell the 911 operator if you have been in contact with someone with COVID-19 or if you have recently been to an area where COVID-19 is spreading." Goto: promptCreateReport #CHILD LESS THAN 5 YEARS OLD - C @C-lessThanFive Name Speak: "Robbie", "This triage line is intended for children who are at least five years old and adults. If your child is younger than five years old and is sick, please contact their medical provider as soon as possible. If your child has had contact with a person who is sick with COVID-19 or has been in an area with community spread of COVID-19, please let their medical providers know." Goto: promptCreateReport #GO TO EMERGENCY DEPARTMENT - D @D-gotoEmergency Name Reconvey: "Robbie", "Urgent medical attention is needed." Name Reconvey: "Robbie", "You need to go to your nearest emergency department." Name Speak: "Robbie", If you have had contact with a person who is sick with COVID-19 or you have been in an area with community spread of COVID-19, please let your medical providers know as soon as you arrive at the emergency department." Goto: promptCreateReport #CONTACT MEDICAL PROVIDER WITHIN 24 HOURS - E @E-gotoMedicalProvider Name Reconvey: "Robbie", "You have some symptoms that may be related to COVID-19. Stay home except to get medical care. Separate yourself from others in your home. Wear a facemask, if possible. Clean your hands often. Avoid sharing personal household items. Clean all high-touch surfaces everyday. Monitor your symptoms and seek prompt medical attention if your illness is worsening.", "You have some symptoms that may be related to COVID-19... Monitor your symptoms and seek prompt medical attention if your illness is worsening." Goto: promptCreateReport #CONTACT OCCUPATIONAL HEALTH PROVIDER AT WORK - F @F-careGiverReport Name Speak: "Robbie", "Contact an occupational health provider in your healthcare facility as soon as possible. If you have cared for a person who is sick with COVID-19 or have been in an area with community spread of COVID-19, please let your occupational health provider know as soon as you speak with them." Goto: promptCreateReport #CONTACT HEALTHCARE PROVIDER IN LONG TERM CARE FACILITY - G @G-careFacilityReport Name Speak: "Robbie", "You may be at higher risk for severe illness since you live in a nursing home or a long-term care facility. Tell a caregiver at the facility that you are sick and need to see a medical provider as soon as possible." Goto: promptCreateReport #STAY HOME AND TAKE CARE OF YOURSELF. CONTACT PROVIDER IF THINGS GET WORSE - H @H-selfCare Name Speak: "Robbie", "Sorry you are feeling ill. You have one or more symptom(s) that may be related to COVID-19. Stay home and take care of yourself. Please follow steps to prevent others in your household or community from getting sick." Goto: promptCreateReport # Not Done Yet - Z @Z-inProgress Name Speak: "Robbie", "I'm sorry {userName} I'm not programmed for that answer yet. I'm sorry you are feeling ill. You have one or more symptom(s) that may be related to COVID-19. Stay home and take care of yourself. Please follow steps to prevent others in your household or community from getting sick." Goto: promptCreateReport # CREATE REPORT @promptCreateReport Name Speak: "Robbie", "Would you like me to send you an email with the information you have reported today, including User info, Symptoms and Comorbidities?" voice_input(userInput) if {userInput} IN {noList[*]}: Goto: screeningComplete Variable: screeningReport screeningReport = "User Name {userName} " screeningReport = "{screeningReport}, User Ref {covidUserRef} " screeningReport = "{screeningReport}, Ill {covidIll} " screeningReport = "{screeningReport}, Age {covidAge} " screeningReport = "{screeningReport}, Life Threat {covidLifeThreat} " screeningReport = "{screeningReport}, Contact {covidContact} " screeningReport = "{screeningReport} \nSymptoms \n" screeningReport = "{screeningReport}Fever {covidFever} " screeningReport = "{screeningReport}, Breathing {covidBreath} " screeningReport = "{screeningReport}, Severe Breathing {covidSevereBreath} " screeningReport = "{screeningReport}, Cough {covidCough} " screeningReport = "{screeningReport}, Severe Cough {covidSevereCough} " screeningReport = "{screeningReport}, BP {covidBP} " screeningReport = "{screeningReport}, Severe BP {covidSevereBP} " screeningReport = "{screeningReport}, Nose {covidNose} " screeningReport = "{screeningReport}, Throat {covidThroat} " screeningReport = "{screeningReport}, Muscle {covidMuscle} " screeningReport = "{screeningReport}, Taste {covidTaste} " screeningReport = "{screeningReport}, Fatigue {covidFatigue} " screeningReport = "{screeningReport}, Nausea {covidNausea} " screeningReport = "{screeningReport} \nComorbidities \n" screeningReport = "{screeningReport}Lungs {covidLungs} " screeningReport = "{screeningReport}, Heart {covidHeart} " screeningReport = "{screeningReport}, Diabetes {covidDiabetes} " screeningReport = "{screeningReport}, Neuro Cough {covidNeuroCough} " screeningReport = "{screeningReport}, Weakened Immune {covidWeakImmune} " screeningReport = "{screeningReport}, Dialysis {covidDialysis} " screeningReport = "{screeningReport}, Liver {covidLiver} " screeningReport = "{screeningReport}, Obesity {covidObesity} " screeningReport = "{screeningReport}, Pregnancy {covidPregnancy} " screeningReport = "{screeningReport} \nComorbidities Total {covidComorbiditiesCount} \n" screeningReport = "{screeningReport}Nursing Home or Facility {covidNursingHome} " screeningReport = "{screeningReport}, Care Giving {covidCareGiver} " Name Speak: "Robbie", "<prosody rate="x-fast">This is your Screening Report {screeningReport}</prosody>" Name Speak: "Robbie", "Report ready to email. Say cancel to not send the email, or say send to send." voice_input(userInput) if {userInput} == "cancel": Goto: screeningComplete Email: "Neon COVID Screening Report", screeningReport @screeningComplete Name Speak: "Robbie", "Would you like to restart the demonstration Covid-19 screening application test?" voice_input(userInput) if {userInput} IN {yesList}: Name Speak: "Robbie", "Would you like to erase all your answers before restarting the demonstration Covid-19 screening application test?" voice_input(userInput) if {userInput} IN {yesList[*]}: Name Speak: "Robbie", "Erasing current test answers and restarting." Goto: restartCovidScreening Name Speak: "Robbie", "Restarting screening test with current test answers." Goto: startCovidScreening Name Speak: "Robbie", "Thank you {userName} for testing the Neon AI Conversational Covid 19 Screening Script. "Robbie", signing off." Name Speak: "Robbie", "Would you like to test the Neon AI Patient Assistant Script?" voice_input {askReturnValue} if {askReturnValue} IN {yesList[*]}: Name Reconvey: "Robbie", "Transferring to Pat, our Patient Assistant demonstration. Goodbye {userName}.", "Goodbye" Execute : "Run the patient assistant script" # Name Speak : Robbie :"</speak>Neon run the Patient Assistant script starting at SCRIPTENTRY" exit # Name Speak: "Robbie", "Lastly, would you like to test the Neon AI Conversational Script Menu?" # voice_input {askReturnValue} # if {askReturnValue} IN {yesList[*]}: # Name Speak: "Robbie", "Transferring to Otto, our Conversational Script Menu Assistant demonstration. Goodbye {userName}." # Name Speak: "Robbie", "</speak>Neon run the script menu script starting at SCRIPTENTRY" # exit Name Speak: "Robbie", "Thank you {userName} for helping me practice my conversational skills and letting me practice help you." exit |
Daniel McKnight | daniel@neongecko.com | |||
103 | Star/flag Script Upload: Submission #103 | Lock Script Upload: Submission #103 | Add notes to Script Upload: Submission #103 | Thu, 08/06/2020 - 11:57 | imedqo | 24.19.150.34 | Guess My Word | Guess My Word | Script: "Guess My Word" Language: "en-us female" # Demonstration word game player from Neon AI # "Hi {userName}. Let's play the game guess my 7 word popular phrase. It very simple. I will choose a 7 word phrase and tell you one word. Then you guess a word, and if it is in the seven work phrase I will tell you its position or to guess again. Anytime you want you can guess the phrase, just say I guess and I will tell you if you're right. If you want me to tell you what you've already guessed, just say recap or history. Say hint and I will tell you another word." # Later n word phrases; n letter words; subject specific popular phrase input from Wolfram, google; foreign language # Set up wait time for participant responses Variable: timeoutReturnLabel = AnnounceVersion Timeout: 30 TIMEOUT @AnnounceVersion Name Speak : Gamon : "Neon Word Game Demonstration Version 2020 08 06 22:30 </speak> Testing" # Announce version ("Testing" is displayed as text and is not spoken) Variable: sevenWordPhraseArray = "A DATE THAT WILL LIVE IN INFAMY", "A DAY THAT WILL LIVE IN INFAMY", "A WORD TO THE WISE IS ENOUGH", "A WORD TO THE WISE IS SUFFICIENT", "AND A MERRY OLD SOUL WAS HE", "CAN'T SEE THE FOREST FOR THE TREES", "CHILL OUT AND PLAY SOME VIDEO GAMES", "COME OUT COME OUT WHEREVER YOU ARE", "I SMELL THE BLOOD OF AN ENGLISHMAN", "I'M LATE FOR A VERY IMPORTANT DATE", "IF IT AIN'T BROKE DON'T FIX IT", "IF YOU BUILD IT HE WILL COME", "IF YOU BUILD IT THEY WILL COME", "IT WAS A DARK AND STORMY NIGHT", "IT'S ALL HUMBUG I TELL YOU HUMBUG", "JACK AND JILL WENT UP THE HILL", "JACK FELL DOWN AND BROKE HIS CROWN", "LAUGH AND THE WORLD LAUGHS WITH YOU", "LEAP TALL BUILDINGS IN A SINGLE BOUND", "LIFE LIBERTY AND THE PURSUIT OF HAPPINESS", "LIONS AND TIGERS AND BEARS OH MY", "LITTLE BO PEEP HAS LOST HER SHEEP", "LITTLE PIGS LITTLE PIGS LET ME IN", "LIVE FROM NEW YORK IT'S SATURDAY NIGHT", "NEITHER A BORROWER NOR A LENDER BE", "NOT BY THE HAIR ON MY CHINNY-CHIN-CHIN", "NOT BY THE HAIR OF MY CHINNY-CHIN-CHIN", "NOW I LAY ME DOWN TO SLEEP", "OH WHAT A TANGLED WEB WE WEAVE", "ONE THING I CAN SAY FOR SURE", "OLD MOTHER HUBBARD WENT TO THE CUPBOARD", "OVER THE RIVER AND THROUGH THE WOODS", "THE BEST-LAID SCHEMES OF MICE AND MEN", "THE BEST-LAID PLANS OF MICE AND MEN", "DISCRETION IS THE BETTER PART OF VALOR", "THE BETTER PART OF VALOR IS DISCRETION", "THE FACE THAT LAUNCHED A THOUSAND SHIPS", "THE HABITS OF HIGHLY EFFECTIVE PEOPLE", "THE STUFF THAT DREAMS ARE MADE FROM", "THE STUFF THAT DREAMS ARE MADE OF", "THE STUFF OF WHICH DREAMS ARE MADE", "THE STUFF FROM WHICH DREAMS ARE MADE", "THINGS THAT GO BUMP IN THE NIGHT", "THIS IS THE SONG THAT NEVER ENDS "TO ERR IS HUMAN TO FORGIVE DIVINE", "TO FETCH HER POOR DOG A BONE", "WE HOLD THESE TRUTHS TO BE SELF-EVIDENT", "WE THE PEOPLE OF THE UNITED STATES", "WHEN IN THE COURSE OF HUMAN EVENTS" Variable: usedPhrases Variable: chosenPhrase Variable: hintCount Variable: sayNext Variable: foundWords Variable: chosenPhraseWords Variable: chosenPhraseWordsByLen Variable: iWord Variable: blankCount Variable: userInput Variable: userInputWords Variable: userInputWordsLen usedPhrases[*] = "" Variable: True = 1 Variable: False = 0 Variable: exitList = "exit", "cancel", "never mind" Variable: noList Variable: yesList Variable: alertsPhraseList Variable: inProgressList Variable: heyList Variable: askPrompt Variable: returnLabel Variable: heardSilence Variable: falseAlarmCount Variable: askReturnValue = "" Variable: userName Variable: moreAppInfo Variable: customizeSettings Variable: customizeLanguage Variable: customizeProsody Variable: photoTime Variable: enableNeonApps @StartUp # Initialize # exitList = "exit", "cancel", "never mind" noList = "no", "not now", "never mind", "nope", "n" yesList = "yes", "yup", "y" alertsPhraseList = "help", "I need help", "help me", "emergency", "this is an emergency", "i need a doctor", "i need a doctor", "i need a doctor", "i need a doctor", "i need a doctor", "i need a nurse", "i need aid", "i need a caregiver", "i need assistance", "i fell", "i can't get up", "fire" inProgressList = "what time is it", "Remind me to", "Play", "Record this", "Send an email", "Send a text" heyList = "hey Gamon", "Gamon are you there", "is anybody listening", "what time is it" speechGenderList = "female", "male" speechRateList = "medium", "fast", "slow" speechAccentList = "American", "British", "Australian" askPrompt = "" returnLabel = "" heardSilence = "" falseAlarmCount = 0 askReturnValue = "" userName = "" moreAppInfo = "" customizeSettings = "" customizeLanguage = "" customProsody = "rate='medium'" photoTime = "" enableNeonApps = {True} # Ask to install assistant @PromptInstallAssistant returnLabel = InstallAssistant timeoutReturnLabel = PromptInstallAssistant Name Speak : Gamon : "Hi, I'm Gamon. I'm a demonstration word game player from Neon AI. Thank you for helping test my conversational skills." askPrompt = "Please tell me your name, or you can say cancel to exit." GOTO : ASK @InstallAssistant userName = {askReturnValue} Name Speak : Gamon : "Hi {userName}. I am glad you chose to play word games with me." ## Offer additional information @ReAskMoreInfo Name Speak : Gamon : "Before starting the Neon Word Game, would you like more information on the Neon conversational AI?" timeoutReturnLabel = ReAskMoreInfo voice_input{moreAppInfo} if {moreAppInfo} IN {noList[*]}: GOTO : PromptCustomize Name Speak : Gamon : "Hi {userName}. I'm Gamon the word games playing assistant from Neon AI. I am an artificial intelligence personal assistant, I'm augmented with Neon Gecko open source code and CPI Corp patented technology." # Customize @PromptCustomize ## Offer customization of settings for administrator, voice and system settings ## Set up PA voice: name, gender, accent, pitch, speed, [Later: language, diction, empathy] ## Set up system settings: timeoutSeconds (wait time for user input) customLanguage = "" enableNeonApps = {True} Name Speak : Gamon : "Would you like to customize the Neon Word Game settings to change my voice?" # Later: Provide example of new Language/Prosody and offer reset timeoutReturnLabel = PromptCustomize voice_input{customizeSettings} if {customizeSettings} !IN {yesList[*]}: GOTO : BeginAssistant Name Speak : Gamon : "Hi {userName}. You can customize my voice for the Neon demonstration conversational game player. You can say female, male, normal, fast, slow, American, British or Australian, or say no change. </speak>" @ReAskCustomize # Name Speak : Gamon : "Would you like to change the voice of the Neon conversational Word Game Assistant?" timeoutReturnLabel = ReAskCustomize voice_input{customizeSettings} if {customizeSettings} == "": GOTO : PromptCustomize if {customizeSettings} CONTAINS "no change": GOTO : BeginAssistant if {customizeSettings} IN {noList[*]}: GOTO : BeginAssistant # Variable: britWords = british, gb, uk if {customizeSettings} CONTAINS british, gb, uk: customLanguage = "'en-GB'" else if {customizeSettings} CONTAINS "Australian, AU, aussie": customLanguage = "en-AU" else customLanguage = "en-us" if {customizeSettings} CONTAINS "female": customLanguage = "{customLanguage} female" else customLanguage = "{customLanguage} male" Language: {customLanguage} if {customizeSettings} CONTAINS "fast": customProsody = "rate='fast'" else if {customizeSettings} CONTAINS "slow": customProsody = "rate='slow'" else customProsody = "rate='medium'" @ReAskApps Name Speak : Gamon : "Would you like to enable more Neon applications including playing music, playing other games, taking notes, setting reminders, making calculation, requesting general information or changing my voice?" timeoutReturnLabel = ReAskApps voice_input{customizeSettings} if {customizeSettings} == "": GOTO : ReAskApps if {customizeSettings} IN {noList[*]}: enableNeonApps = {False} GOTO : BeginAssistant @BeginAssistant timeoutReturnLabel = WaitForAlertPhrase Name Speak : Gamon : "<prosody {customProsody}> Your demonstration word game assistant has signed in. If you want to know if I am listening, you can say, hey Gamon , or, Gamon are you there. </prosody>" Name Speak : Gamon : "Hi {userName}. Let's play the game guess my 7 word popular phrase. It very simple. I will choose a 7 word phrase and tell you one word. Then you guess a word, and if it is in the seven work phrase I will tell you its position or to guess again. Anytime you want you can guess the phrase, just say I guess and I will tell you if you're right. If you want me to tell you what you've already guessed, just say recap or history. Say hint and I will tell you another word." ### SET UP GAME # Choose New Phrase @ChooseNewPhrase chosenPhrase = random {sevenWordPhraseArray} # Check if used before if usedPhrases CONTAINS chosenPhrase GOTO : ChooseNewPhrase # Add New Phrase to list of phrased used usedPhrases = chosenPhrase hintCount = 0 sayNext = "" foundWords[*] = "" # Build word row for the sevenWordPhrase Python: chosenPhraseWords = chosenPhrase.split() # Build word row by word length [0]..[6] Python: chosenPhraseWordsByLen = chosenPhraseWords.sort(key=len) @NextHint # Give first or next hint if foundWords CONTAINS chosenPhraseWordsByLen[hintCount] : Python: hintCount++ GOTO : NextHint Name Speak : Gamon : "Hint {hintCount}, the {sayNext} longest word is" {chosenPhraseWordsByLen[hintCount]} foundWords = {chosenPhraseWordsByLen[hintCount]} Python: hintCount++ sayNext = "next" @GuessNextWord Name Speak : Gamon : "Here's where we're at" iWord = 0 blankCount = 0 LOOP SayFoundWords if chosenPhraseWord[iWord] in foundWords : Name Speak : Gamon : chosenPraseWord[i] else Name Speak : Gamon : "blank" Python: blankCount++ Python: iWord++ LOOP SayFoundWords UNTIL iWord >= 7 if blankCount == 0 Name Speak : Gamon : "Game Over! Thank you {userName} for playing with me" Name Speak : Gamon : "Let's play again" GOTO : ChooseNewPhrase ### Wait for Gamon/Emergency/Neon activiation alert phrase @WaitForAlertPhrase askPrompt = "Say I guess followed by a word, or I guess followed a phrase, or hint or recap or guessed words or exit" timeoutReturnLabel = WaitForAlertPhrase returnLabel = GotUserPhrase Goto : ASK @GotUserPhrase userInput = askReturnValue if {userInput} == "" : GOTO : ReAskGuess if {userInput} STARTSWITH "hint" : GOTO : NextHint if {userInput} IN "guessed words", "recap", "history" : Name Speak : Gamon : "Here are your mis guessed words" {guessedWords} GOTO : GuessNextWord if {userInput} STARTSWITH "I guess" : Python: userInputWords = userInput.split() Python: userInputWordsLen = len(userInputWords) Python: userInputWords = userInput.split() if userInputWordsLen == 3 : guessedWord = userInputWords[2] if chosenPhraseWords[*] CONTAINS guessedWord : if guessedWord !IN foundWords[*] : foundWords = guessedWord else if guessedWord !IN misGuessedWords[*] : misGuessedWords = guessedWord GOTO : GuessNextWord if userInputWordsLen != 9 : # wrong number of words Name Speak : Gamon : "I'm sorry {userName} I heard the wrong number of words." Name Speak : Gamon : "I heard {userInputWords}" Name Speak : Gamon : "Please try again." GOTO : GuessNextWord if userInputWords[2:] != chosenPhrase Name Speak : Gamon : "I heard {userInputWords}" Name Speak : Gamon : "I'm sorry {userName} that's not the popular phrase I'm thinking of." Name Speak : Gamon : "Please try again." GOTO : GuessNextWord Name Speak : Gamon : "Yay {userName} userInputWords[2:] is correct. Name Speak : Gamon : "Game Over! Thank you {userName} for playing with me" Name Speak : Gamon : "Let's play again" GOTO : ChooseNewPhrase ### SYSTEM ALERT PHRASES ## Did user ask for "help" if {askReturnValue} !IN {alertsPhraseList[*]}: ## Not an emergency alert, check for secondary (in progress) if {enableNeonApps}: ## if {askReturnValue} CONTAINS {inProgressList[*]}: if {askReturnValue} STARTSWITH {inProgressList[*]}: Case: # inProgressList = "what time is it", "Remind me to", "Play", "Record this", "Send an email", "Send a text" Name Speak : Gamon : "I'm sorry {userName} that is under construction." ## Not a Gamon/Alert/Neon activation phrase, listen again GOTO : WaitForAlertPhrase # Possible EMERGENCY Name Speak : Gamon : "The Emergency Assistant heard an emergency alert. I heard {askReturnValue}" Reconvey : askReturnValue Name Speak : Gamon : "</speak>PA 6 did reconvey" @PromptConfirmHelp askPrompt = "Please say just kidding if this is not an emergency" returnLabel = ConfirmHelp GOTO : ASK @ConfirmHelp ## Did user REALLY ask for "help"? if {askReturnValue} == "": Name Speak : Gamon : "The Emergency Assistant heard nothing. I heard" Reconvey : askReturnValue Name Speak : Gamon : "</speak>PA 8 did reconvey of nothing heard" ## PA heard nothing after emergency request .. if second time then this is an emergency if {heardSilence} == {True} : GOTO : Emergency heardSilence = {True} ## Increase volume and speak slowly Name Speak : Gamon : "<prosody volume='+100%' rate='slow'>{userName}! I need to hear from you! Is this an emergency?</prosody>" GOTO : PromptConfirmHelp if {askReturnValue} CONTAINS "just kidding", "never mind", "not an emergency": Name Speak : Gamon : "The Emergency Assistant heard you say this is not an emergency. I heard" Reconvey : askReturnValue ### Name Speak : Gamon : "</speak>Did reconvey of jk" ## User said jk so restart listening Name Speak : Gamon : "Please say help again if this is an emergency." Python: falseAlarmCount = {falseAlarmCount} + 1 GOTO : WaitForAlertPhrase # EMERGENCY @Emergency Name Speak : Gamon : "<prosody volume='+100%' rate='normal'>{userName}! Needs! Help! This is an EMERGENCY</prosody>" Name Speak : Gamon : "The Emergency Assistant would now send an emergency alert, sound an alarm, keep engaged with the user, and send updated alerts to the caregiver." Name Speak : Gamon : "Gamon test completed. Say start again to start again?" voice_input{askReturnValue} if {askReturnValue} == "start again": Name Speak : Gamon : "</speak> Gamon is restarting. Thanks again." GOTO : StartUp Name Speak : Gamon : "Gamon exiting. Thanks again for helping test my skills." exit # ========== Subroutines @ASK # The ASK subroutine speaks the askPrompt and waits for a response. If the response is a command to Gamon to perform an action, then the request is effected and Gamon continues waiting for a response, otherwise, the response is returned to the caller in the askReturnValue. # Input parameters: askPrompt, returnLabel and timeOutReturnLabel # Result parameter: askReturnValue ### Name Speak : Gamon : "Ask 1 Starting" if {askPrompt}: Name Speak : Gamon : " {askPrompt} " ### Name Speak : Gamon : "Ask 2 Starting ask subroutine" voice_input {askReturnValue} ### Name Speak : Gamon : "Ask 3 got input" if {askReturnValue} IN {exitList[*]}: Name Speak : Gamon : "Say yes to confirm exiting Gamon, the Neon Word Game Assistant" voice_input{askReturnValue} if {askReturnValue} IN {yesList[*]}: Name Speak : Gamon : "Gamon , the Neon Word Game Assistant, signing off" exit else GOTO : ASK ### Name Speak : Gamon : "Ask 4 not cancel command {askReturnValue}" if {askReturnValue} IN {heyList[*]}: Name Speak : Gamon : "<prosody {customProsody}> {userName}, Gamon the Word Game Assistant demo here. I'm listening all the time but I don't <phoneme alphabet= "x-sampa” ph= "rikord”>record</phoneme> everything you say. I only make recordings of calls for help or if you say emergency. </prosody>" # Note - Disambiguation for the pronunciations of "record": <phoneme alphabet= "x-sampa” ph= "rikord”>record</phoneme> Verb as in “I record everything you say” vs. Noun as in "Make a record of the conversation". Name Speak : Gamon : "The time is" Execute : "Neon what time is it" if {falseAlarmCount} != 0: Name Speak : Gamon : "The false alarm count is {falseAlarmCount}!" GOTO : ASK ### Name Speak : Gamon : "Ask 5 About to return to {returnLabel}" GOTO : {returnLabel} @TIMEOUT GOTO : {timeoutReturnLabel} |
Josh | josh@neongecko.com | |||
102 | Star/flag Script Upload: Submission #102 | Lock Script Upload: Submission #102 | Add notes to Script Upload: Submission #102 | Thu, 07/09/2020 - 18:25 | Anonymous | 73.42.151.74 | Test Pat | Richard Test Pat Patient Assistant Script | Script: "Test Pat" Language: "en-us male" # Set up wait time for patient responses Variable: timeoutReturnLabel = AnnounceVersion Timeout: 30 TIMEOUT # Announce version ("Testing" is displayed as text and is not spoken) @AnnounceVersion Name Speak : Pat : "Neon Patient Assistant Application Demonstration Version 2020 07 09 18:22 again </speak> Testing" Variable: True = 1 Variable: False = 0 Variable: exitList = "exit", "cancel", "never mind" Variable: noList Variable: yesList Variable: alertsPhraseList Variable: inProgressList Variable: heyPatList Variable: askPrompt Variable: returnLabel Variable: heardSilence Variable: falseAlarmCount Variable: askReturnValue = "" Variable: userName Variable: moreAppInfo Variable: customizeSettings Variable: customizeLanguage Variable: customizeProsody Variable: photoTime Variable: enableNeonApps @StartUp # Initialize # exitList = "exit", "cancel", "never mind" noList = "no", "not now", "never mind", "nope", "n" yesList = "yes", "yup", "y" alertsPhraseList = "help", "I need help", "help me", "emergency", "this is an emergency", "i need a doctor", "i need a doctor", "i need a doctor", "i need a doctor", "i need a doctor", "i need a nurse", "i need aid", "i need a caregiver", "i need assistance", "i fell", "i can't get up", "fire" inProgressList = "hey pat", "pat are you there", "is anybody listening", "what time is it", "Remind me to", "Play", "Email", "Record" heyPatList = "hey pat", "pat are you there", "is anybody listening", "what time is it" speechGenderList = "female", "male" speechRateList = "medium", "fast", "slow" speechAccentList = "American", "British" or "Australian" askPrompt = "" returnLabel = "" heardSilence = "" falseAlarmCount = 0 askReturnValue = "" userName = "" moreAppInfo = "" customizeSettings = "" customizeLanguage = "" customProsody = "rate='medium'" photoTime = "" enableNeonApps = {True} # Ask to install assistant @PromptInstallAssistant returnLabel = InstallAssistant timeoutReturnLabel = PromptInstallAssistant Name Speak : Pat : "Hi, I'm Pat. I'm a demonstration patient assistant from Neon AI. Thank you for helping test my conversational skills." askPrompt = "Please tell me your name, or you can say cancel to exit." Goto : ASK @InstallAssistant userName = {askReturnValue} Name Speak : Pat : "Hi {userName}. I am glad you chose to install the Neon Patient Assistant Application." ## Offer additional information @ReAskMoreInfo Name Speak : Pat : "Before starting the Patient Assistant, would you like more information on the Neon conversational patient assistance application?" timeoutReturnLabel = ReAskMoreInfo voice_input{moreAppInfo} if {moreAppInfo} IN {noList[*]}: Goto: PromptCustomize Name Speak : Pat : "Hi {userName}. I'm Pat the demonstration conversational patient assistant from Neon AI. I am an artificial intelligence personal assistant, I'm augmented with Neon Gecko open source code and CPI Corp patented technology. Neon AI makes the Patient Assistant application to enable patients to alert their caregivers to emergencies and other needs, and to get simple information. As your automated patient assistant I listen for calls for help and send alerts to the patient care administrator. For example, you can say help, or I fell. Another thing you can say is what time is it .. </speak> In the future you will be able to play your favorite music, turn the lights on or off, and even ask to send a text message .. And if you don't want to call me Pat, someday you will be able to change my name." # Customize @PromptCustomize ## Offer customization of settings for administrator, voice and system settings ## Set up PA voice: name, gender, accent, pitch, speed, [Later: language, diction, empathy] ## Set up system settings: timeoutSeconds (wait time for user input) ## Set up administrator (password, email, name, phone, [Later: staff names, secondary contacts] ..) ## Set up nurse (password, email, name, phone, [Later: staff names, secondary contacts] ..) customLanguage = "" enableNeonApps = {True} Name Speak : Pat : "Would you like to customize the Patient Assistant settings to disable non-emergency Neon AI patient applications, or to change my voice?" # Name Speak : Pat : "Would you like to customize the Patient Assistant settings for administrator, voice and PAT system settings?" timeoutReturnLabel = PromptCustomize voice_input{customizeSettings} if {customizeSettings} !IN {yesList[*]}: Goto: BeginAssistant Name Speak : Pat : "Hi {userName}. You can customize the voice for the Neon demonstration conversational patient assistant. You can say no change, or say female, male, normal, fast, slow, American, British or Australian. </speak> In the future you will be able to set up information for the administrator, staff members and the patient, and change my name and other PAT system settings." @ReAskCustomize # Name Speak : Pat : "Would you like to change the voice of the Neon conversational patient assistance application?" timeoutReturnLabel = ReAskCustomize voice_input{customizeSettings} if {customizeSettings} == "": Goto: PromptCustomize if {customizeSettings} CONTAINS "no change": Goto: BeginAssistant if {customizeSettings} IN {noList[*]}: Goto: BeginAssistant # Variable: britWords = british, gb, uk if {customizeSettings} CONTAINS british, gb, uk: customLanguage = "'en-GB'" else if {customizeSettings} CONTAINS "Australian, AU, aussie": customLanguage = "en-AU" else customLanguage = "en-us" if {customizeSettings} CONTAINS "female": customLanguage = “{customLanguage} female" else customLanguage = “{customLanguage} male" Language: {customLanguage} if {customizeSettings} CONTAINS "fast": customProsody = "rate='fast'" else if {customizeSettings} CONTAINS "slow": customProsody = "rate='slow'" else customProsody = "rate='medium'" # Later: Provide example of new Language/Prosody and offer reset # Later: Make settings into a case statement and error check: # split_words(wordList, customizeSettings) # customSettingCount = length({wordList}) # wordListIndex = 0 # LOOP # Case # LOOP END @ReAskApps Name Speak : Pat : "Would you like to enable more Neon patient assistance applications including playing music, playing games, reminders for medicine, hydration, meals and sleep, requests to record symptoms or other stats, and to request general information or assistance with math?" timeoutReturnLabel = ReAskApps voice_input{customizeSettings} if {customizeSettings} == "": Goto: ReAskApps if {customizeSettings} IN {noList[*]}: enableNeonApps = {False} Goto: BeginAssistant @BeginAssistant timeoutReturnLabel = WaitForAlertPhrase Name Speak : Pat : "<prosody {customProsody}> Your demonstration patient assistant has signed in. If you want to know if I am listening, you can say, hey Pat, or, Pat are you there. </prosody>" # Wait for alert @WaitForAlertPhrase askPrompt = "" returnLabel = GotPatientPhrase ### Name Speak : Pat : "PA 1 pre ask" Goto : ASK @GotPatientPhrase ## Did patient ask for "help" if {askReturnValue} !IN {alertsPhraseList[*]}: ## Not an emergency alert, check for secondary (in progress) if {enableNeonApps}: ## if {askReturnValue} CONTAINS {inProgressList[*]}: if {askReturnValue} STARTSWITH {inProgressList[*]}: Name Speak : Pat : "I'm sorry {userName} that is under construction." ## Not an alert, listen again Goto: WaitForAlertPhrase # Possible EMERGENCY Name Speak : Pat : "Pat the Patient Assistant heard an emergency alert. I heard {askReturnValue}" Reconvey : askReturnValue Name Speak : Pat : "</speak>PA 6 did reconvey" @PromptConfirmHelp askPrompt = "Please say just kidding if this is not an emergency" returnLabel = ConfirmHelp Goto : ASK @ConfirmHelp ## Did patient REALLY ask for "help"? if {askReturnValue} == "": Name Speak : Pat : "Pat the Patient Assistant heard nothing. I heard" Reconvey : askReturnValue Name Speak : Pat : "</speak>PA 8 did reconvey of nothing heard" ## PA heard nothing after emergency request .. if second time then this is an emergency if {heardSilence} == {True} : Goto: Emergency heardSilence = {True} ## Increase volume and speak slowly Name Speak : Pat : "<prosody volume='+100%' rate='slow'>{userName}! I need to hear from you! Is this an emergency?</prosody>" Goto: PromptConfirmHelp if {askReturnValue} CONTAINS "just kidding", "never mind","not an emergency": Name Speak : Pat : "Pat the Patient Assistant heard you say this is not an emergency. I heard" Reconvey : askReturnValue ### Name Speak : Pat : "</speak>Did reconvey of jk" ## Patient said jk so restart listening Name Speak : Pat : "Please say help again if this is an emergency." Python: falseAlarmCount = {falseAlarmCount} + 1 Goto: WaitForAlertPhrase # EMERGENCY @Emergency Name Speak : Pat : "<prosody volume='+100%' rate='normal'>{userName}! Needs! Help! This is an EMERGENCY</prosody>" Name Speak : Pat : "Pat the Patient Assistant would now send an emergency alert, sound an alarm, keep engaged with the patient, and send updated alerts to the caregiver." Name Speak : Pat : "Pat test completed. Say start again to start again?" voice_input{askReturnValue} if {askReturnValue} == "start again": Name Speak : Pat : "</speak>Pat is restarting. Thanks again." Goto: StartUp Name Speak : Pat : "Pat exiting. Thanks again for helping test my skills." exit # ========== Subroutines @ASK # The ASK subroutine speaks the askPrompt and waits for a response. If the response is a command to Pat to perform an action, then the request is effected and Pat continues waiting for a response, otherwise, the response is returned to the caller in the askReturnValue. # Input parameters: askPrompt, returnLabel and timeOutReturnLabel # Result parameter: askReturnValue ### Name Speak : Pat : "Ask 1 Starting" if {askPrompt}: Name Speak : Pat : " {askPrompt} " ### Name Speak : Pat : "Ask 2 Starting ask subroutine" voice_input {askReturnValue} ### Name Speak : Pat : "Ask 3 got input" if {askReturnValue} IN {exitList[*]}: Name Speak : Pat : "Say yes to confirm exiting Pat, the Neon AI Patient Assistant" voice_input{askReturnValue} if {askReturnValue} IN {yesList[*]}: Name Speak : Pat : "Pat, the Neon AI Patient Assistant, signing off" exit else goto: ASK ### Name Speak : Pat : "Ask 4 not cancel command {askReturnValue}" if {askReturnValue} IN {heyPatList[*]}: Name Speak : Pat : "<prosody {customProsody}> {userName}, Pat the AI Patient Assistant demo here. I'm listening all the time but I don't <phoneme alphabet=”x-sampa” ph=”rikord”>record</phoneme> everything you say. I only make recordings of calls for help or in an emergency. </prosody>" # Note - Disambiguation for the pronunciations of "record": <phoneme alphabet=”x-sampa” ph=”rikord”>record</phoneme> Verb as in “I record everything you say” vs. Noun as in "Make a record of the conversation". Name Speak : Pat : "The time is" Execute : "Neon what time is it" if {falseAlarmCount} != 0: Name Speak : Pat : "The false alarm count is {falseAlarmCount}!" goto : ASK ### Name Speak : Pat : "Ask 5 About to return to {returnLabel}" Goto: {returnLabel} @TIMEOUT Goto: {timeoutReturnLabel} |
Richard | richard@neon.ai | |||
101 | Star/flag Script Upload: Submission #101 | Lock Script Upload: Submission #101 | Add notes to Script Upload: Submission #101 | Mon, 06/29/2020 - 17:32 | Anonymous | 50.47.129.133 | Language Test | Short example demonstrating changing language settings. | Script: Language test Language: en-us male Neon speak: "I am an American Male" Language: female en-au Neon speak: "Now I am Australian Female" Language: en-gb Neon speak: Now I am British in your preferred gender Exit |
Daniel McKnight | daniel@neongecko.com | |||
99 | Star/flag Script Upload: Submission #99 | Lock Script Upload: Submission #99 | Add notes to Script Upload: Submission #99 | Wed, 06/24/2020 - 19:21 | Anonymous | 50.35.82.111 | Subroutine Test | Testing subroutines | # Subroutine Test Script: "Subroutine Test" Name Speak : Patty : "</speak>Version 20200624 18:33 Subroutine Test" ## Initialize Variable: {exitList} = “Patty exit”, “Patty cancel”, “never mind” Variable: {noList} = “no”, “not now”, "never mind", "nope", "n" Variable: {yesList} = "yes", "yup", "y" Variable: {alertsPhraseList} = "help", "I need help", "help me", "emergency", "this is an emergency", "I need a doctor", "I need a doctor", "I need a doctor", "I need a doctor", "I need a doctor", "I need a nurse", "I need aid", "I need a caregiver", "I need assistance", "I fell", "I can't get up" Variable: {heyPattyList} = "hey Patty", "Patty are you there" Variable: {askPrompt} = "" Variable: {returnLabel} = "" Variable: {askInput} = "" returnLabel = InstallAssistant askPrompt = "Hi, I'm Patty. Say your name, or cancel." Goto : ASK @InstallAssistant userName = askInput Name Speak : Patty : "Hi {userName}. I am glad you chose to test subroutines." Name Speak : Patty : "Patty Exiting" exit ## @ASK if {askPrompt} != "" Name Speak : Patty : "{askPrompt}" voice_input {askInput} if {askInput} IN {exitList[*]}: Name Speak : Patty : "Say yes to confirm exiting Patty" voice_input{askInput} if {askInput} IN {yesList[*]}: Name Speak : Patty : "Patty, signing off" exit else goto : ASK if {askInput} IN {heyPattyList[*]}: Name Speak : Patty : "Patty, the Neon AI Patient Assistant, is listening" goto : ASK Name Speak : Patty : "About to return to {returnLabel}" Goto: {returnLabel} |
Daniel McKnight | daniel@neongecko.com | |||
98 | Star/flag Script Upload: Submission #98 | Lock Script Upload: Submission #98 | Add notes to Script Upload: Submission #98 | Wed, 06/24/2020 - 18:33 | imedqo | 24.19.150.34 | Patient Assistant | Patient Assistant | Script: "Patient Assistant" Language: "en-us male" # Set up wait time for patient responses Variable: timeoutReturnLabel = AnnounceVersion Timeout: 30 TIMEOUT # Announce version ("Testing" is displayed as text and is not spoken) @AnnounceVersion Name Speak : Pat : "Neon Patient Assistant Application Demonstration Version 2020 07 07 18:00 </speak> Testing" Variable: exitList = "exit", "cancel", "never mind" Variable: noList Variable: yesList Variable: alertsPhraseList Variable: heyPatList Variable: askPrompt Variable: returnLabel Variable: heardSilence Variable: falseAlarmCount Variable: askReturnValue = "" Variable: userName Variable: moreAppInfo Variable: customizeSettings Variable: customizeLanguage Variable: customizeProsody Variable: photoTime @StartUp # Initialize # exitList = "exit", "cancel", "never mind" noList = "no", "not now", "never mind", "nope", "n" yesList = "yes", "yup", "y" alertsPhraseList = "help", "I need help", "help me", "emergency", "this is an emergency", "i need a doctor", "i need a doctor", "i need a doctor", "i need a doctor", "i need a doctor", "i need a nurse", "i need aid", "i need a caregiver", "i need assistance", "i fell", "i can't get up", "fire" heyPatList = "hey pat", "pat are you there", "is anybody listening", "what time is it" speechGenderList = "female", "male" speechRateList = "medium", "fast", "slow" speechAccentList = "American", "British" or "Australian" askPrompt = "" returnLabel = "" heardSilence = "" falseAlarmCount = 0 askReturnValue = "" userName = "" moreAppInfo = "" customizeSettings = "" customizeLanguage = "" customProsody = "rate=’medium’" photoTime = "" # Ask to install assistant @PromptInstallAssistant returnLabel = InstallAssistant timeoutReturnLabel = PromptInstallAssistant Name Speak : Pat : "Hi, I'm Pat. I'm a demonstration patient assistant from Neon AI. Thank you for helping test my conversational skills." askPrompt = "Please tell me your name, or you can say cancel to exit." Goto : ASK @InstallAssistant userName = {askReturnValue} Name Speak : Pat : "Hi {userName}. I am glad you chose to install the Neon Patient Assistant Application." ## Offer additional information @ReAskMoreInfo Name Speak : Pat : "Before starting the Patient Assistant, would you like more information on the Neon conversational patient assistance application?" timeoutReturnLabel = ReAskMoreInfo voice_input{moreAppInfo} if {moreAppInfo} IN {noList[*]}: Goto: PromptCustomize Name Speak : Pat : "Hi {userName}. I'm Pat the demonstration conversational patient assistant from Neon AI. I am an artificial intelligence personal assistant, I'm augmented with Neon Gecko open source code and CPI Corp patented technology. Neon AI makes the Patient Assistant application to enable patients to alert their caregivers to emergencies and other needs, and to get simple information. As your automated patient assistant I listen for calls for help and send alerts to the patient care administrator. For example, you can say help, or I fell. Another thing you can say is what time is it .. </speak> In the future you will be able to play your favorite music, turn the lights on or off, and even ask to send a text message .. And if you don't want to call me Pat, someday you will be able to change my name." # Customize @PromptCustomize ## Offer customization of settings for administrator, voice and system settings ## Set up PA voice: name, gender, accent, pitch, speed, [Later: language, diction, empathy] ## Set up system settings: timeoutSeconds (wait time for user input) ## Set up administrator (password, email, name, phone, [Later: staff names, secondary contacts] ..) ## Set up nurse (password, email, name, phone, [Later: staff names, secondary contacts] ..) Name Speak : Pat : "Would you like to customize the Patient Assistant settings for my voice?" # Name Speak : Pat : "Would you like to customize the Patient Assistant settings for administrator, voice and PAT system settings?" timeoutReturnLabel = PromptCustomize voice_input{customizeSettings} if {customizeSettings} !IN {yesList[*]}: Goto: BeginAssistant Name Speak : Pat : "Hi {userName}. You can customize the voice for the Neon demonstration conversational patient assistant. You can say no change, or say female, male, normal, fast, slow, American, British or Australian. </speak> In the future you will be able to set up information for the administrator, staff members and the patient, and change my name and other PAT system settings." @ReAskCustomize # Name Speak : Pat : "Would you like to change the voice of the Neon conversational patient assistance application?" timeoutReturnLabel = ReAskCustomize voice_input{customizeSettings} if {customizeSettings} == "": Goto: PromptCustomize if {customizeSettings} CONTAINS "no change": Goto: BeginAssistant if {customizeSettings} IN {noList[*]}: Goto: BeginAssistant customLanguage = "" # Variable: britWords = british, gb, uk #if {customizeSettings} CONTAINS "British": if {customizeSettings} CONTAINS british, gb, uk: customLanguage = "'en-GB'" else if {customizeSettings} CONTAINS "Australian, AU, aussie": customLanguage = "en-AU" else customLanguage = "en-us" if {customizeSettings} CONTAINS "female": customLanguage = “{customLanguage} female" else customLanguage = “{customLanguage} male" Language: {customLanguage} if {customizeSettings} CONTAINS "fast": customProsody = "rate='fast'" else if {customizeSettings} CONTAINS "slow": customProsody = "rate='slow'" else customProsody = “rate=’medium’” # Later: Provide example of new Language/Prosody and offer reset # Later: Make settings into a case statement and error check: # split_words(wordList, customizeSettings) # customSettingCount = length({wordList}) # wordListIndex = 0 # LOOP # Case # LOOP END @BeginAssistant timeoutReturnLabel = WaitForAlertPhrase Name Speak : Pat : "<prosody {customProsody}> Your demonstration patient assistant has signed in. You can say, hey Pat, or, Pat are you there, if you want to know if I am listening. </prosody>" # Wait for alert @WaitForAlertPhrase askPrompt = "" returnLabel = GotPatientPhrase ### Name Speak : Pat : "PA 1 pre ask" Goto : ASK @GotPatientPhrase ## Did patient ask for "help" if {askReturnValue} !IN {alertsPhraseList[*]}: ### Name Speak : Pat : "PA 4 not an alert, listen again" Goto: WaitForAlertPhrase # Possible EMERGENCY Name Speak : Pat : "PA 5 got alert, about to reconvey {askReturnValue}" Reconvey : askReturnValue Name Speak : Pat : "PA 6 did reconvey" @PromptConfirmHelp askPrompt = "Please say just kidding if this is not an emergency" returnLabel = ConfirmHelp ### Name Speak : Pat : "PA 7 about to ask to cancel help request" Goto : ASK @ConfirmHelp ### Name Speak : Pat : "PA 8 check for jk" ## Did patient REALLY ask for "help"? if {askReturnValue} == "": Name Speak : Pat : "Pat the Patient Assistant heard nothing." Name Speak : Pat : "PA 7 got alert, about to reconvey of heard nothing {askReturnValue}" Reconvey : askReturnValue Name Speak : Pat : "PA 8 did reconvey of nothing?" ## PA heard nothing after emergency request .. if second time then this is an emergency if {heardSilence == "TRUE"} : Goto: Emergency heardSilence = "TRUE" ## LATER: Increase volume, speak slower Name Speak : Pat : "{userName}! I need to hear from you! Is this an emergency?" Goto: PromptConfirmHelp if {askReturnValue} CONTAINS "just kidding", "never mind","not an emergency": Name Speak : Pat : "Pat the Patient Assistant heard you say this is not an emergency." Reconvey : askReturnValue Name Speak : Pat : "Please say help again if this is an emergency." ### Name Speak : Pat : "PA 9 jk so restart listening" Python: falseAlarmCount = {falseAlarmCount} + 1 Goto: WaitForAlertPhrase # EMERGENCY @Emergency Name Speak : Pat : "This is an EMERGENCY" Name Speak : Pat : "Pat the Patient Assistant would now send an emergency alert, keep engaged with the patient, and send updated alerts to the caregiver." Name Speak : Pat : "Pat test completed. Say start again to start again?" voice_input{askReturnValue} ### Name Speak : Pat : "PA 10 check for restart request" if {askReturnValue} == "start again": ### Name Speak : Pat : "PA 10 restarting" Goto: StartUp Name Speak : Pat : "Pat exiting" exit # ========== Subroutines @ASK # The ASK subroutine speaks the askPrompt and waits for a response. If the response is a command to Pat to perform an action, then the request is effected and Pat continues waiting for a response, otherwise, the response is returned to the caller in the askReturnValue. # Input parameters: askPrompt, returnLabel and timeOutReturnLabel # Result parameter: askReturnValue ### Name Speak : Pat : "Ask 1 Starting" if {askPrompt}: Name Speak : Pat : " {askPrompt} " ### Name Speak : Pat : "Ask 2 Starting ask subroutine" voice_input {askReturnValue} ### Name Speak : Pat : "Ask 3 got input" if {askReturnValue} IN {exitList[*]}: Name Speak : Pat : "Say yes to confirm exiting Pat, the Neon AI Patient Assistant" voice_input{askReturnValue} if {askReturnValue} IN {yesList[*]}: Name Speak : Pat : "Pat, the Neon AI Patient Assistant, signing off" exit else goto: ASK ### Name Speak : Pat : "Ask 4 not cancel command {askReturnValue}" if {askReturnValue} IN {heyPatList[*]}: Name Speak : Pat : "<prosody {customProsody}> {userName}, Pat the AI Patient Assistant demo here. I'm listening all the time but I don't <phoneme alphabet=”x-sampa” ph=”rikord”>record</phoneme> everything you say. I only make recordings of calls for help or in an emergency. </prosody>" # Note - Disambiguation for the pronunciations of "record": <phoneme alphabet=”x-sampa” ph=”rikord”>record</phoneme> Verb as in “I record everything you say” vs. Noun as in "Make a record of the conversation". Name Speak : Pat : "The time is" Execute : "Neon what time is it" if {falseAlarmCount} != 0: Name Speak : Pat : "The false alarm count is {falseAlarmCount}!" goto : ASK ### Name Speak : Pat : "Ask 5 About to return to {returnLabel}" Goto: {returnLabel} @TIMEOUT Goto: {timeoutReturnLabel} |
jsh r | j@j.com | |||
97 | Star/flag Script Upload: Submission #97 | Lock Script Upload: Submission #97 | Add notes to Script Upload: Submission #97 | Fri, 06/19/2020 - 15:55 | Anonymous | 50.35.82.111 | Demo Profile Reconveyance | Short demo that includes reading a value from a user profile and reconveyance of user input. | Script: Demo Profile Reconveyance Variable: body = "Test email body\nnewline" Variable: emailAddr = profile(user.email) Variable: spoken if {emailAddr}: Neon speak: "your email address is {emailAddr}" else: Neon speak: I don't know what your email address is Neon speak: Say something and I'll say it back to you voice_input(spoken) Neon Speak: You said: Reconvey: spoken Exit |
Daniel | daniel@neongecko.com |