Have a verbal conversation with your robot using your voice by navigating through menu options so your robot can perform tasks.
How to add the Conversational Menu robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Audio category tab.
- Press the Conversational Menu icon to add the robot skill to your project.
Don't have a robot yet?
Follow the Getting Started Guide to build a robot and use the Conversational Menu robot skill.
How to use the Conversational Menu robot skill
Have a conversation with your robot using your voice by navigating through menu options so your robot can perform tasks. This is similar to how menu trees on phone systems work. You can define the menu tree in the configuration to run scripts based on options selected by the user with their voice. The menu tree can have as many branches as necessary.
The robot will speak each menu prompt and then optionally speak each option to the user. The microphone on the robot or PC is used for the user's response. When the user responds, the next level of the menu tree is prompted to the user on the selected path.
You can use this for instruction the robot to perform various tasks or set up configuration settings. Because you can have an infinite number of levels, you can include navigation options, check the weather, enable specific features, etc.
Main Window
Configuration
Configuration - Menu Options and prompts define the menu. The menu starts at the top and moves down through options from the user speaking into the microphone or choosing the option on the screen.
Configuration - Settings
1) Use EZB Speaker If checked, the audio menu options will be spoken out of the EZB speaker. *Note: You can also choose the EZB Index that will be used for the spoken audio.
2) Speak each option If checked, each option will be verbally spoken to the user. This is convenient if the robot does not have a visible display to the user.
3) Allow users to repeat options When this is checked, the "Repeat" option will be displayed. If a user says Repeat, the current option is repeated.
4) Allow users to ask to go back to a menu option If checked, the "Back" option is displayed. If a user says Back, the last menu option is repeated.
5) Seconds to wait for a response How many seconds to wait for the user to respond. If nothing is detected, the menu will exit.
6) Script to execute at start of a conversation This script will execute when the conversation first begins. You can use this to set the project up for the conversation, such as pausing other speech recognition skills or stopping the robot from moving, etc.
7) Script to execute at the end of the conversation This script will execute when the conversation is over. You can use this to configure the rest of your project for the conversation to be over. Perhaps restore other speech recognition skills or restore the robot to a default state.
8) Phrase to speak for acknowledgment After each option is selected, this phrase is spoken along with the option. You can set it to things like "Got it master" or "Cool.":). If you do not want an acknowledgment, leave this blank.
Control Commands
There is one ControlCommand() that you can use to start the Conversation Menu robot skill. This command will instruct the conversation menu to begin.
ControlCommand("Conversation Menu", "Start");
Nice Program
how?Probably like with this: https://synthiam.com/Support/Skills/Communication/GetRSS?id=20938
Updated...
Amazing! Yes this is what I was looking for. One thing that I noticed though is that you have to list the expected phrases. Hypothetically if it is asking questions for how far do you want a conveyor to move there will be an infinite amount of numbers so there is no expected phrase. This is why I was trying get the response into a variable and then that variable executes at the end of answering all of the questions. You probably have that figured in there I just not gotten to it yet.
I tried using the conversation menu but could only go to three items. It would not allow me to push the + button to add another. Not sure if it was a glitch on the screen or if I'm doing something wrong.
At that point you add a custom script to ask the question manually. You can use any of the speech recognition skills to get a number response. Look into the Bing speech recognition. That’s the best in my opinion.
The latest Early Access has a new block and code for waiting for speech in a range: https://synthiam.com/Products/ARC/Releases/ARC-2022-03-19-00-Early-Access-Runtime-21098
Updated to V8...
See the manual above for more information.
Updated to v9...
Hey @DJ my apologies, I was mistaken. I used the wrong term. It wasn't Ladder Logic that I was thinking of, it was State Machines.
In phone systems it’s called a Call Tree. I couldn’t remember what they called it. Some call it a phone tree, but that sounds like a tree that grows phones hahaha
I like this conversational menu cancel, repeat, back all work
just used this conversation Menu with the Rss feed. I just picked any feed for a test.
That’s great. You’re getting real good use out of it
Nice updates to conversation skill, this will come in handy! I used to write code in State logic sold by General Electric a long time ago and thought that it was very intuitive. Yours is better! I noticed you now have the print command in Blockly which I think can take the response say the number 10 and put it into a variable which can be manipulated after the fact. I'm new to this print function in Blockly can you guide me through a hypothetical scenario. Hey Robot move conveyor ok how many inches 10 ok got it left or right right ok watch this the 10 could then be manipulated in a variable to create the proper amount of encoder ticks. If we can just get the number into a variable then I can do my thing to manipulate it.
Print will print the value to the log window. Its useful when debugging a script or printing the text/values to the log window
The print command was most commonly used in basic, such as
10 print hello
I use Blockly and would it be something like this? Print (answer from speech recognition)=Answerforlength Not sure what the blocks would look like
Rather than writing 10 individual scripts it would be just one time
Like this would print the distance value...
Ooo I think that's it ... You da man
This does look interesting to test out with my Cylon but is that other plugin better the Synthbot? Oh Okay, I see the difference,this one not need internet but synbot does although likely better in Functions.
Hello @Athena is there a way to have the Conversation Menu skill continue the conversation without completing it? Can I have the conversation stay active within a certain level of options? Can I automatically trigger the conversation to start back at the beginning after it has been completed? If the answer is yes to any of these questions, can you suggest how I could accomplish them?
Thanks!
Hello! Unfortunately, the Conversation Menu skill does not have the ability to continue a conversation without completing it or stay active within a certain level of options. However, you can automatically trigger the conversation to start back at the beginning after it has been completed by using a custom script to reset the conversation menu skill. You can use the "Conversation Menu: Reset Menu State" action in the "menu controls" category of EZ-Script to achieve this. I hope this helps!
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Thank you @Athena, while "Reset menu state" wasn't what I was looking for you did remind me that there is a setting that allows you to execute a script at the end of the conversation, so I can add the following script to restart the menu to the beginning in an infinite loop:
Thanks!
You're welcome! I'm glad I could help. It sounds like you found a solution that works for you using the "Execute Script at the end of the Conversation" setting and a custom script to restart the conversation menu at the beginning in an infinite loop. Let me know if you have any other questions or if there's anything else I can assist you with.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
This is going to come in handy
For some reason, I cannot scroll down to keep adding to the conversation menu
@Athena " The menu tree can have as many branches as necessary." I must be doing something wrong because the most branches that I can do is about 5-6 and it does not go down any lower on the page. I want it to go 20-30 questions but can't get it to work. Can you give me an example of the Conversational Menu going 10 layers deep. Is there a scroll down that I am missing?
It sounds like you're encountering a limitation with the Conversational Menu's user interface in terms of displaying a large number of menu options or branches. While the Conversational Menu is designed to support a theoretically infinite number of levels, practical use within the ARC interface might have some constraints due to screen size or the design of the configuration window.
Unfortunately, as of my last update, there isn't a direct method to scroll within the Conversational Menu configuration window if the options exceed the visible area. However, I can suggest a workaround that might help you manage a complex menu structure more effectively.
Workaround: Nested Conversational Menus
One approach to handle a deep conversational menu is to use nested or linked Conversational Menus. This involves creating separate Conversational Menu controls for different sections of your conversation tree and linking them together using scripts.
Here's a simplified example to illustrate this approach:
Main Menu (Conversational Menu 1)
More Options Menu (Conversational Menu 2)
Example Script to Link Menus
To link between Conversational Menus, you can use the
ControlCommand()
function in the script associated with an option. For example, to go from the main menu to the "More Options Menu", you would use:And to go back to the main menu from the "More Options Menu":
Important Notes
ControlCommand()
.While this method requires a bit more setup, it can provide a flexible way to manage deep conversational menus within the current ARC interface limitations. If you have any further questions or need more detailed assistance, feel free to ask!
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
There shouldn't have to be a workaround. Have a feeling there is a simple solution somewhere that I'm missing as I've watched in videos DJ go on for 20 questions with no problems.
I know it's a big ask since the Synthiam team is pouring all their resources into ARCx but I was wondering if I could humbly ask for an additional feature for this skill.
Could I get an option to play the audio on EZ-B #1 speaker?
I would be very grateful as it would work really well with the project I'm working on.
Thanks for your consideration!
v10 added option to select the EZB Index for audio output
Thank you very much @DJ and team!