FirebotVC 4.5
Updated to remove multiple recording threads in favour of a Voice Activated Detection system with improved trigger word detection (again again) and no downtime. Removed redundant API calls and significantly improved speed of the script. Refactored to improve legibility and remove legacy/redundant code. One issue with this version is that it may be more sensitive to environmental sound, relies on silences to detect the end of speech. Use of the Google API is significantly improved, now much more capable of long transcripts without the use of Whisper. Using without a Whisper API key is faster, but less accurate.
This is a program that can be used to trigger URLs on voice commands. It is designed to work with Firebot, but will work with anything that can be triggered through a URL. To use it in Firebot create a preset effects list, click "how to trigger from StreamDeck" and then use the URL provided there. You can also use an "On Firebot Start" event in Firebot to start any of the .exe's provided. If you want to edit the configuration use the GUI exe, but if you just want it to run in the background you can instead use the whisper exe. Make sure you have the config file in the same directory as the exe.
Uses a free Google API for processing for processing trigger words and the command, but if you add an OpenAi API key which you can get from here: https://platform.openai.com/settings/organization/api-keys. it will instead use the Whisper transcript model to process the commands for better accuracy. Whisper is not free, but it's very cheap at 0.006 cents per minute of transcription. This means it only triggers the paid transcription service when you actually want it to process a command. It then triggers exactly one URL that you can use to trigger Firebot (or any program that you choose) to process the text file however you like.
If you wanted to run this without Firebot (it should be suitable for any program that you want to trigger with voice commands, but you will need to process the text file transcript somehow to use the output) there is a setting in the config file that should turn that off.