I personally use VoiceAttack with DCS (Digital Combat Simulator) to manage radio menus and UI hotkeys that are difficult to find or navigate while in VR.
This guide explains the setup and usage of VoiceAttack with the intent to use it with DCS, but the process should be mostly identical for other games such as Elite: Dangerous or whatever else you might like to use it with.
Note: Even though I am using Valve's Proton (because it's the only thing that can talk to SteamVR currently), my copy of DCS is standalone and I run it via Lutris, not Steam. For steam games things are a bit more complicated.
Dotnet and wine can get messy, so I tend to create separate prefixes when I need to use dotnet instead of the built-in wine-mono. You can do whatever you like, just be aware that installing dotnet in your prefix could actually break some other apps that were already working fine and it can be hard to uninstall sometimes.
For this guide I have the prefix location set to /home/yourname/Games/DCS/Prefixes/voiceattack
- You'll need to change that to whatever makes sense for you.
Credit: https://unix.stackexchange.com/questions/191608/wine-do-not-check-for-mono-installation
The most important step right now is to create a a new Wine prefix without wine-mono. It was not enough to remove wine-mono from an existing prefix, I had to create it without wine-mono to begin with.
To do this, create a new prefix and block wine from loading "mscoree" and at the same time install .NET so that Wine won't try to install mono later.
WINEPREFIX=/home/yourname/Games/DCS/Prefixes/voiceattack WINEDLLOVERRIDES=mscoree=d winetricks -q dotnet48
You can verify the prefix does not have wine-mono by running
WINEPREFIX=/home/yourname/Games/DCS/Prefixes/voiceattack wine uninstaller --list
It should only show Microsoft .NET Framework 4.8, with no mention of wine-mono.
Credit: https://voiceattack.com/alternate.aspx
- Download
SpeechPlatformRuntime64.msi
from https://www.voiceattack.com/speechengines/SpeechPlatformRuntime64.msi - Download at least one Speech Recognition (SR) language (Probably
MSSpeech_SR_en-US_TELE.msi
) from https://www.microsoft.com/en-us/download/details.aspx?id=27224 - (Optionally) Download at least one Text To Speech (TTS) language from the same place
Note: If you downloaded SpeechPlatformRuntime.msi
from Microsoft you may have the 32 bit version which will not work. VA will see your mic but not recognize your words. You must install the 64 bit version.
Now install them:
Speech Platform:
WINEPREFIX=/home/yourname/Games/DCS/Prefixes/voiceattack wine msiexec /i SpeechPlatformRuntime.msi
Speech Recognition:
WINEPREFIX=/home/yourname/Games/DCS/Prefixes/voiceattack wine msiexec /i MSSpeech_SR_en-US_TELE.msi
Finally, double check that your "wine uninstaller" output looks something like this, and does not contain "wine-mono"
WINEPREFIX=/home/yourname/Games/DCS/Prefixes/voiceattack wine uninstaller --list
{92FB6C44-E685-45AD-9B20-CADF4CABA132} - 1033|||Microsoft .NET Framework 4.8
{3B433087-E62E-4BF5-97F9-4AF6E1C2409C}|||Microsoft Server Speech Platform Runtime (x64)
{66D57636-BD4B-402F-9E7D-5E89C28C8136}|||Microsoft Server Speech Recognition Language - TELE (en-US)
Download the installer from https://voiceattack.com/
WINEPREFIX=/home/yourname/Games/DCS/Prefixes/voiceattack wine voiceattackinstaller_115.exe
Install it to wherever you want. Personally I find it easier if it's installed outside of the prefix, because then you can delete and recreate prefixes without needing to reinstall the app.
Configure Lutris to launch the VoiceAttack executable from wherever you installed it. Make sure you specify the same prefix we have been using this entire guide as well.
You should be able to say "browser" and if everything is working VA will acknowledge the command and open the VoiceAttack homepage in your web browser.
Here's the fun part: In order for VoiceAttack to send hotkeys to DCS (or another game) they need to be running in the same prefix together.
In order to do that they both need to be using the same version of Wine or Proton.
Also, currently only Valve's official versions of Proton (eg, Proton 9.0 or Proton Experimental) can talk to SteamVR, so you are limited to these if you use VR.
The nice part is, unlike TrackIR, VoiceAttack does not need to be started first in order to work. You can launch DCS and later launch VA if you need it. Just make sure that in Lutris they are both using the same prefix and the same runner.
I haven't tested this yet. If I end up using VA with any Steam Games I'll come back and update this with any changes.
But in theory you can follow more or less the same process but with extra steps.
- Identify the Prefix location for the game you want to play. Right click the game -> Properties -> Updates. Make note of the App ID. The Prefix is located in
~/.local/share/Steam/steamapps/compatdata/APPIDHERE/pfx
- Move or rename the prefix. Rename it "pfx-original" or something. Steam doesn't store the game files in the prefix, but game settings get stored there.
- Now follow the guide, but use
/home/yourname/.local/share/Steam/steamapps/compatdata/APPIDHERE/pfx
as your prefix location. - Copy the "drive_c/users" folder from the old pfx folder into the new pfx folder - This should restore any settings
This will make your game's prefix compatible with VoiceAttack.
Now you can play the game normally, and you should be able to launch VA from Lutris so long as again you make sure that both are being launched with the same version of Proton.