UltraStar-Deluxe / Play

Free and open source singing game with song editor for desktop, and mobile
https://ultrastar-play.com
MIT License
399 stars 74 forks source link

Voice Assistant | "Ok Ultrastar, Select Katy Perry - Roar" #370

Open DariusRDev opened 1 year ago

DariusRDev commented 1 year ago

Issue type: Feature request

I'm just Brainstorming, this might not be worth the effort, but would be nice to have. What are your opinions on this?

Expected behaviour

Beeing able to use speech recognition to request songs, and perform other actions, while in Song Selection or Menu.

Examples: "Ok Ultrastar, Select Katy Perry - Roar", "Ok Ultrastar, Show all songs of Katy Perry", "Ok Ultrastar, start Microphone assignment",

You've Mentioned that you already implemented Speech Recognition in #106 with Vosk.

It could also help with #297 Player Assignment:

So I use UltraStar Deluxe at the moment for Partys with up to 18 People with 6 Mics, and the Mics get passed around every Song. With the Current Player System I would have to update the "Active" Check everytime we pass around the Mics and then assign the Mics new to the Players. That is a lot of afford, the Voice Assistant could come in handy here.

How about a Feature where before the song starts every Player has to say his name into his microfone, and USP uses speech recognition and a fuzzy search to select the player from the player list. And maybe it asks if the selection is right and the players have to say yes.

achimmihca commented 1 year ago

I also had the idea for voice control because the game uses a microphone anyway. It is doable, and yes I already integrated Vosk in the private repo and it could do this stuff.

But I don't think it's worth it.

The speech recognition is not as solid as Google or Siri. With non-standard words, such as artist and song names, results might be doubtful.

Plus, speech control can always only be an alternative to regular user input via point-and-click. Not every language and dialect is supported by speech recognition yet. Thus, I would like to focus on the regular input for now.

With the Current Player System I would have to update the "Active" Check everytime we pass around the Mics and then assign the Mics new to the Players

Using speech recognition does not change this. You would still need to tell which players are active for the next round.

A "(de)select all players" button may be more handy. Assigning mics to players will get easier with #297, which I want to tackle soon.

every Player has to say his name into his microfone

I actually doubt that this is faster than clicking the checkboxes, especially if there are names that are not recognized immediately.

achimmihca commented 1 year ago

I am currently changing to Whisper for speech recognition, which returns impressively accurate results.

This could also enable to control the game by voice. However, this is still not a priority because it would always only be an additional way to control the game.

AnsisMalins commented 2 months ago

Voice control should be the main way to control the game. You launch the game and put the input device away and pick up the microphone, and from then on, you should not need to reach for the keyboard or mouse or controller even once.

basisbit commented 1 month ago

Voice control should be the main way to control the game.

One of the ways? Sure, would be cool to test. The main way? Uh, I don't think it would work well during the typical karaoke party with so much noise around you all the time. I haven't seen any crowd game yet where voice control works well.