SkyWriter uses Azure Cognitive Services speech-to-text to generate captions and send them to OBS. It will automatically start recognition when it's connected to OBS and detects that a stream is active & your primary microphone source is unmuted. If you mute that source or stop streaming, the session will automatically end.
- Windows 10, 1607+ or Windows 11
- OBS 28.0+
- An active Azure Cognitive Services instance
Running the app requires a few settings to be configured in appsettings.json
:
AzureSpeechRegion
: The Azure region where your Cognitive Services instance. You can find this in your Cognitive Service under Keys and Endpoint. The default iseastus
.AzureSpeechKey
: The key used to connect to your Cognitive Services instance. You can find this in your Cognitive Service under Keys and Endpoint.AzureSpeechProfanityLevel
: The level for how you want profanity to be handled. Levels and their corresponding numeric values can be found here. The default is0
(Masked).ObsWebsocketHost
: The hostname for your OBS Websocket connection. The default islocalhost
.ObsWebsocketPort
: The port for your OBS Websocket connection. The default is4455
.ObsWebsocketPassword
: The password for your OBS Websocket connection.ObsMicrophoneSourceName
: The name of your primary microphone source in OBS. The default isMicrophone
.SpeechLanguage
: The language code for speech to be recognized. Supported language codes can be found here. The default isen-US
.UseLocalSpeechEngine
:true
if you want to use the Windows local speech recognition engine instead of Azure. NOTE: This ONLY works on Windows systems, you'll need to setup Voice Recognition in Windows before using this, and it is NOT as good as Azure.