anki / vector-python-sdk

Anki Vector Python SDK
Other
562 stars 382 forks source link

How to add a new voice command to vector #44

Open tonyyang1995 opened 4 years ago

tonyyang1995 commented 4 years ago

Does Vector API can add custom functions with voice command. Like I want to add a custom function called "light the cube", then I want to control with the voice "hey vector, light the cube". Any ideas to add the voice command into the SDK? Many thanks.

rmcolbert commented 4 years ago

Voice recognition is done via web call to external voice services so the SDK itself can't add new voice triggers on a prod bot but if you had another device (PC or something running Google Voice or Amazon Voice services, you could add a voice trigger to one of them and have it run SDK commands that talks to your Vector.

Once OSKR & Escape Pod options are released, it would be possible to add voice triggers that can fired from Vector.

MicaelJarniac commented 4 years ago

Kinda unrelated, but I find it funny that Digital Dream Labs seems to "not know" how to add new voice commands directly to "hey, Vector", since they're always adding new commands to "hey, Vector - I have a question" instead, even ones that aren't a question at all, like the trigger to play Rock, Paper, Scissors.

It seems to me as if they just learned how to append commands to the list of possible questions, and kept doing it that way, not even bothering to learn how to properly add them as new voice commands on their own.

Sure, it's probably easier to append them as possible questions rather than an entirely new voice command, but I don't think I'm the only one bothered about how cumbersome the process to trigger those can become. IIRC, to play Rock, Paper, Scissors, the process is kinda like so:

Hey, Vector. (...) I have a question. (...) Play Rock, Paper, Scissors. (...) Hey, Vector. (...) I have a question. (...) Scissors. (...)

And that feels like a mess.

For "native" games, like Blackjack (I think there's only Blackjack, though), the process is a whole lot simpler:

Hey, Vector. (...) Play Blackjack. (...) (Vector says something) Yes/No (...) (Vector says something) Yes/No (...)

There's a whole lot less unnecessary stuff going on. If DDL were to implement Blackjack, it'd be something like so:

Hey, Vector. (...) I have a question. (...) Play Blackjack. (...) (Vector says something) Hey, Vector. (...) I have a question. (...) Yes/No (...) (Vector says something) Hey, Vector. (...) I have a question. (...) Yes/No (...)

That feels very wrong IMO. I hope they go back to those "voice commands" they added, and turn those into actual voice commands that feel more native, rather than "questions".

grant-olson commented 4 years ago

Yes, we need to make a software update to the robots for this to happen which is in the works. The current batch of commands were added on the cloud servers which is much more flexible in terms of upgrading and much, much easier to roll back changes if something is done wrong than sending out a bad software update to 100,000 robots where you can't just hit the undo button.

-Grant

On 9/28/20 9:33 AM, Micael Jarniac wrote:

Kinda unrelated, but I find it funny that Digital Dream Labs seems to "not know" how to add new voice commands directly to "hey, Vector", since they're always adding new commands to "hey, Vector - I have a question" instead, even ones that aren't a question at all, like the trigger to play Rock, Paper, Scissors.

It seems to me as if they just learned how to append commands to the list of possible questions, and kept doing it that way, not even bothering to learn how to properly add them as new voice commands on their own.

Sure, it's probably easier to append them as possible questions rather than an entirely new voice command, but I don't think I'm the only one bothered about how cumbersome the process to trigger those can become. IIRC, to play Rock, Paper, Scissors, the process is kinda like so:

Hey, Vector. (...) I have a question. (...)
Play Rock, Paper, Scissors. (...)
Hey, Vector. (...) I have a question. (...)
Scissors. (...)

And that feels like a mess.

For "native" games, like Blackjack (I think there's only Blackjack, though), the process is a whole lot simpler:

Hey, Vector. (...) Play Blackjack. (...)
(Vector says something)
Yes/No (...)
(Vector says something)
Yes/No (...)

There's a whole lot less unnecessary stuff going on. If DDL were to implement Blackjack, it'd be something like so:

Hey, Vector. (...) I have a question. (...)
Play Blackjack. (...)
(Vector says something)
Hey, Vector. (...) I have a question. (...)
Yes/No (...)
(Vector says something)
Hey, Vector. (...) I have a question. (...)
Yes/No (...)

That feels very wrong IMO. I hope they go back to those "voice commands" they added, and turn those into actual voice commands that feel more native, rather than "questions".

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/anki/vector-python-sdk/issues/44#issuecomment-700009597, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB6OIDJ7FS5ZQWPZTBMN23SICGDHANCNFSM4R34MK2A.

MicaelJarniac commented 4 years ago

I think it'd be cool if a software update could bypass the need for "I have a question" but still allow new voice commands to be added on the cloud side directly.

That way, you guys could keep adding new voice commands without needing to release OTAs, and the new voice commands could work in "native mode", without needing to "ask a question".

It'd most likely require some reworking of how voice commands are handled, but it'd allow more flexible expansion of such in the future.

That way, there could be new "native" voice commands both on Vector's firmware side and on the cloud side, and both wouldn't require "I have a question" to work.

And it'd also allow hobbyists using the Escape Pod or SDK to play a whole lot with voice commands without needing to fidget with the firmware itself directly.