Author Topic: Celeste Command strings  (Read 1968 times)

Vivian Noelle

  • Newbie
  • *
  • Posts: 1
Celeste Command strings
« on: March 17, 2024, 07:02:12 PM »
I'm trying to play Celeste with voice attack and I've been having trouble with stringing commands together so I've been creating new commands for each time I wanted to string commands together, but I would like to string commands together and have them activate in sequence.

For example, "Jump right, Dash up, Jump left" to be activated as a string of commands instead of having to make a separate command for this example.

Is this possible?

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4781
  • RTFM
Re: Celeste Command strings
« Reply #1 on: March 18, 2024, 01:39:54 AM »
Normal commands need to be spoken one at a time.

The point of predefined phrases is that the Microsoft speech recognition system will "know" exactly what may be spoken.
With arbitrary combinations of words or phrases, that would not be the case.

Astan

  • Newbie
  • *
  • Posts: 22
Re: Celeste Command strings
« Reply #2 on: March 18, 2024, 08:22:38 AM »
TLDNR: try the following combination of settings in your individual commands: Recognition set to "Continuous Speech" + "Allow other commands to execute while this one is running" + Advanced / Resource balance offset set to "1". Use "Recorder" if you need to maintain key timing, and create separate commands with consistent key timing for those (repeatable) streaks.



While what Pfeil wrote above is true, and generally works best in VoiceAttack, you may still wish to experiment with some extra options that are available (for individual commands, but taken as a collective).

With "Recognition" set to "Continuous Speech" in any command, you should be able to speed up the recognition, and, by extension, the processing of that command. That may, potentially, allow for quickly processing streaks of such commands.

For this to work, your commands need to be unique, or at the very least cannot fully overlap. That's because a command will trigger as soon as you finish saying the last matching word. For example, your listed command "Jump left Dash seven" will never be recognized with those settings, because "Jump left" will always trigger ahead of it. However, "Jump left" and (then) "Dash seven" should both be recognized – if both are set to "Continuous Speech".

Edit: You still need to pause briefly in between those two spoken commands, but a much shorter pause should be needed with this setting. For precision: you are able to issue another command at minimum as soon as you see the previous one recognized in the log in VoiceAttack. Experiment with how long, in practice, you need to pause in between spoken commands.

Open any command and hover your cursor over this option to read more about it from its tooltip.

If that works (do test this thoroughly first, and with only a few commands at a time), then the next step could be allowing the commands to process:
  • simultaneously (or, rather: overlapping), with the option "Allow other commands to execute while this one is running" (Edit: this is for whatever the command does, not for how it is recognized – this might allow you to time your commands a bit better by allowing them to overlap slightly, if any command takes a bit longer to execute), and
  • faster, with "Advanced" command options / "Resource balance offset" set to "1" (or more).
Again, check the tooltips to read more about those options.



Keep in mind that if you need to maintain exact timing in (between) those keystrokes, then it will likely be off, due to the delays in speech recognition (which are there by definition). It doesn't hurt to test the method I described above, but don't be disappointed if you cannot pull things off with the right timing using spoken commands.

If that's the case, then you're much better off using the "Recorder" function for capturing keystrokes in sequences (aka key streaks…strokes…strokestreaks), and while maintaining their timing. That doesn't solve the issue with having to add a new command for each such (repeatable) streak, but the upside is that you only need to do this once per any such streak, and then you just have to call on the right, single command to reenact multiple keystrokes, with the right intervals, in a sequence (rather than having to tediously evoke several commands which only press a single key for you).
« Last Edit: March 18, 2024, 09:42:26 AM by Astan »

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4781
  • RTFM
Re: Celeste Command strings
« Reply #3 on: March 18, 2024, 08:51:36 AM »
To be clear: the "Continuous Speech" option can certainly speed up recognition of a given single command, however it does not allow speaking multiple commands as a single phrase.

The speech recognition engine requires a pause in the input, before new recognition can occur.

E.G. if you have a command "alpha", and a command "bravo", both set to "Continuous Speech", speaking "alpha bravo" would only execute "alpha".
You'd need to stop speaking momentarily between "alpha" and "bravo" for both to be recognized, as you would with commands that aren't set to "Continuous Speech".

Astan

  • Newbie
  • *
  • Posts: 22
Re: Celeste Command strings
« Reply #4 on: March 18, 2024, 09:43:11 AM »
Many thanks for the clarification, Pfeil. I edited my post to emphasize what you wrote.

To sum up: the described method helps minimize the timing between commands, but does not eliminate the need for the pauses between spoken commands, nor does it allow combining several spoken commands into one.