0 of 0

File information

Last updated

Original upload

Created by

Cuebit

Uploaded by

Cuebit

Virus scan

Some manually verified files

About this mod

Adds speech recognition to Skyrim VR or Skyrim SE so you can recite your dialogue lines to select them.

Requirements
Permissions and credits
Changelogs
Dragonborn Speaks Naturally

Requires xSHADOWMANx's Dll Loader (The loader needs to be installed manually)
Requires .Net Framework v4.0 or later (Already included in Windows 10. Windows 7 may require a manual installation.)
Requires Windows Speech Recognition Engine for your system locale or the locale specified in a ini file.


About
This mod adds speech recognition to SkyrimVR or SkyrimSE so that you can speak the dialogue lines aloud to select them.
Compatible with SkyrimVR and SkyrimSE


Installation
1. Install xSHADOWMANx's Dll Loader
2. Download the latest archive and extract it to your SkyrimVR/Data or SkyrimSE/Data directory.
3. (Optional) If you need to set the language locale (the default is your system-installed language) for your needs, you can edit the /Data/Plugins/Sumwunn/DragonbornSpeaksNaturally.ini file (no need to restart the game after editing it, the setting will be automatically reloaded after saving since v0.18. The game needs to be restarted only when the file is first created).

Beta Test (Optional)
We have released v0.19.1-beta. Looking forward to your testing and feedback. If you don't want to join the beta test, you can continue to use v0.18.1.

It compatible with both SkyrimVR 1.4.15 and SkyrimSE 1.5.73. Other versions are not supported. If you try to use it with other Skyrim versions, you may get a game crash. This is not a bug.

We have changed the packaging method. Now the files for SkyrimVR and SkyrimSE are in the same archive. A mod manager can correctly identify which files need to be installed in your game data.
It is recommended to install with a mod manager. For manual installation, please select the correct subdirectory:
* For SkyrimSE, copy SkyrimSE\Data\* to you game Data\ directory.
* For SkyrimVR, copy SkyrimVR\Data\* to you game Data\ directory.

After the installation, your game dir will look like this:
|- SkyrimSE.exe or SkyrimVR.exe
|- DINPUT8.dll (from xSHADOWMANx's Dll Loader, DSN will not work without this dll)
|- Data
  |- Plugins
    |- Sumwunn
      |- DllLoader.ini (from xSHADOWMANx's Dll Loader, DSN will not work without this ini)
      |- dragonborn_speaks_naturally.dll
      |- DragonbornSpeaksNaturally.exe
      |- DragonbornSpeaksNaturally.SAMPLE.ini
      |- item-name-map.SAMPLE.json


New features for this beta version:
* Speech recognition can be paused and resumed with voice commands.
* SkyrimVR only: Favorites menu voice-equip supports multiple prefixes and suffixes, and equipPhrasePrefix can be omitted. (SkyrimSE doesn't support favorites menu voice-equip.)
* The subset matching mode of dialogues can be changed or disabled.
* The contents in parentheses in a dialogue will no longer be deleted. Since subset matching is enabled by default, you don't need to say anything in parentheses. But if the conversation has only the content in parentheses, now you can select it with your voice.
* The switching of default recording device will take effect immediately, no need to disable the original device.

Read DragonbornSpeaksNaturally.SAMPLE.ini for new features.

Looking forward to your feedback:
* If you use a mod manager, does it install the file correctly? (Refer to the manual installation instructions above. The mod manager should do the same for you automatically. We have fixed the "No valid game data" issue of MO2 in v0.19.1-beta.)
* Are all new features working properly? Are there any features that don't work as expected?
* Do you like the newly added features? Any suggestions for them?
* Did you notice an unexpected change to an existing feature (for example, a setting worked before, but it is not working properly now)?
* Have you experienced a game crash (CTD)?

If you encounter any problems, please post an issue on the Bugs page. Thank you for participating in the beta.

Known incompatible changes:
1. The configuration item SubsetMatchingMode has been moved from the SpeechRecognition section to the Dialogue section. If you used it before (before it was a hidden option), you need to move the location of the configuration item.
2. The left and right in mainHand will change depending on your settings. If you set equipLeftSuffix=right, mainHand=right will be equiped to the left hand (friendly to left hand mode). This change does not affect console commands.


How to Use
When the dialogue menu appears, try reciting the line out loud and it will be selected.

Additionally, you can specify "goodbye phrases" to use to exit dialogue, and bind custom phrases to arbitrary console commands to have them executed when said outside of dialogue.

To use these additional features, create a new DragonbornSpeaksNaturally.ini file and tweak as desired. Here's an example:

[Dialogue]
goodbyePhrases=I'll talk to you later;That's enough chit chat for now
[ConsoleCommands]
Give me all of the arrows=player.additem 00038341 999999;player.additem 00034182 999999
Give me some gold=player.additem f 100
Die die die=killall
Ready to battle=player.equipitem 139af; player.equipshout 48ac9
I need treatment=player.equipspell 12fcc left; player.equipspell 12fcc right; player.cast 12fcc player left; player.cast 12fcc player right
Fus Loda=player.cast 00013f3a player voice
Open Map=press m
Hello, man=press e
Sneak and cancel=press ctrl; sleep 5000; press ctrl


You can also copy DragonbornSpeaksNaturally.SAMPLE.ini in /Data/Plugins/Sumwunn directory and rename it to DragonbornSpeaksNaturally.ini. It contains examples of all DSN settings and various console commands and may be helpful. There are also examples for casting specific dragon shouts via your voice.
See the preview of DragonbornSpeaksNaturally.SAMPLE.ini on GitHub

DSN also provides some additional commands (key simulation, window switching, delayed execution) besides Skyrim's console commands.
Please see our guide on GitHub

How about item-name-map.SAMPLE.json? It was used to simplify the equipment names if you installed a item sorting mod likes VIS. See this github page for the original idea and describe of the feature.

And you can copy item-name-map.SAMPLE.json to item-name-map.json to enable this feature. Edit item-name-map.json for your need.


The difference between SkyrimSE and SkyrimVR

Feature          | SkyrimSE    | SkyrimVR
Dialogue selecting      | √         | √
Favorites menu voice-equip  | ×          | √
Customconsole commands  | √(sincev0.18)  | √
Key simulation commands    | √(sincev0.18)  | √(sincev0.17)



Troubleshooting
If DSN is not working, please try these troubleshooting steps:

1. Check the version of SkyrimSE.exe or SkyrimVR.exe (Right click on the exe, select Property > Details > Product Version).

The version of SkyrimSE.exe should be 1.5.73.0 and the version of SkyrimVR.exe should be 1.4.15.0. If the version doesn't match, it means that Skyrim has released an incompatible update and you need a new version of DSN.

If you want the current DSN to work now, consider downgrade your Skyrim to above versions.

You can also implement the downgrading by downloading SkyrimSE-1.5.73.exe.zip or SkyrimVR-1.4.15.exe.zip to extract and overwrite your exe.


2. Check for the dragonborn_speaks.log file in your Skyrim installation directory (next to SkyrimVR.exe or SkyrimSE.exe). If it does not exist, that means the mod is not being loaded. In this case, make sure you have installed xSHADOWMANx's Dll Loader and make sure that DSN is installed to the correct location: SkyrimVR/Data/Plugins/Sumwunn/ or Skyrim Special Edition/Data/Plugins/Sumwunn/.

3. If the dragonborn_speaks.log file exists, that means the mod has initialized. Check your My Documents/DragonbornSpeaksNaturally/DragonbornSpeaksNaturally.log file for any errors that indicate DSN failed to startup correctly. Please post an issue on the Bugs page with the contents of this log.

4. If the log files look good, double check your preferred microphone is set as the default after SteamVR has started (the default microphone may changed after SteamVR started). Also, double check the mic is not muted and the volume is reasonably high (sometimes too high of volume can cause recognition issues).

5. Read the FAQ below to see if you can find a solution. If it doesn't help, go to the Bugs page to see if there is an answer. If you still don't find a solution, please submit a new bug.

It is not recommended to submit a issue to the Posts page. The Posts page may have too much informations so that the issue is not seen in time.


FAQ

Q: How to switch microphones without restarting the game?

A: The mod will use your system default microphone input. Since v0.17, you don't need to restart the game after changing the default microphone, just disable the old device from Windows voice dialog and the new will be used.


Q: Modify custom commands without restarting the game?

A: Since v0.18, modifying the DragonbornSpeaksNaturally.ini file no longer requires restarting the game. The settings will be automatically reloaded after saving. However, if you just created the ini file, you need a restart.
Tips: There may be a bug in the feature, which may cause speech recognition accidental not work after your saving your edit. In this case, a restart may be required.


Q: I use HTC Vive and/or have a lower recognition rate.

A: The HTC Vive microphone is not the best, so speech recognition might not work well. (If you run DSN with HTC Vive and have a low recognition rate, consider adding a USB microphone. Bluetooth headsets are not recommended because the recording quality of Bluetooth devices is very bad. In addition, HTC Vive Pro microphone is good.)

Also, maximize speech recognition accuracy by eliminating as much background noise as possible and ensure your microphone volume is turned up.
If you don't speak English and have a "DragonbornSpeaksNaturally.ini", please comment or delete "Locale=eu-US" or change it to your locale. Incorrect locale can also cause recognition rate issues.


Q: An update of SkyrimVR or SkyrimSE broke the mod's running.

A: This mod requires direct hooks into Skyrim which means it will break when Skyrim is updated. I will try to keep this mod up to date with the latest version of SkyrimVR and SkyrimSE as quickly as possible. However, if you want to make DSN works again immediately, you can follow the steps above (in Troubleshooting) to downgrade your Skyrim.


Q: Where is the log file of the mod?

A: The log of "DragonbornSpeaksNaturally.exe" is located in the "Documents" directory of your Windows system (the directory is called "My Documents" in Windows XP and "Documents" in Win7 and above). The exe will create a sub-directory "DragonbornSpeaksNaturally" in "Documents" and a file "DragonbornSpeaksNaturally.log" in the sub-directory.

For Win7 and above, the default location for "Documents" directory is "C:\Users\%username%\Documents". But user can move it to a new location.
In addition, the most quick way to enter this directory is to access the "Documents" shortcut from "This Computer" home page.

If you still can't find the log, consider running "DragonbornSpeaksNaturally.exe" manually to see if the log generated. If the exe cannot keep running and no log generated in your Windows 7, try install .Net Framework v4.6.1 or later.

And, there is a log for "dragonborn_speaks_naturally.dll", it is located in your SkyrimSE/VR install directory and named "dragonborn_speaks.log".


Q: DSN can't work under my locale, "DragonbornSpeaksNaturally.log" ends with an exception.

A: If Windows Speech Recognition is not available in your locale, the DSN is not available too. Microsoft said: Speech Recognition is only available for the following languages: English (United States, United Kingdom, Canada, India, and Australia), French, German, Japanese, Mandarin (Chinese Simplified and Chinese Traditional), and Spanish.

Try install English as your secondry locale and set "Locale=en-US" in the ini file. You need to install English (United States) Speech Recognition before use it. You can install it from "Setting > Time & Language > Language > Add Language" (for Win10).

If your locale supports Windows Speech Recognition, but the DSN still doesn't work, make sure the Windows Speech Recognition Engine for your locale is installed correctly. You can consider using DISM++ to check and install the speech engine: enter Optional Features, check Show All Features, find <your locale> Speech Recognition and click Install.


Q: Everything looks good, but DSN doesn't recognize anything.

A: We have received more than one such reports. It seems a issue in Windows Speech Recognition and need be fixed by Microsoft. To verify if this is a issue in Windows itself, you can run the Windows Speech Recognition application. See this guide from Microsoft. If the Windows Speech Recognition application works, the DSN will usually work as well.

Provide several possible solutions:
* If your system locale is inconsistent with "Locale=" in the DSN configuration, speech recognition may not work under certain circumstances. Temporarily switching your system language/locale to match DSN's "Locale=" may solve the problem.
* A user reported that neither his DSN nor the Windows Speech Recognition application worked. His Cortana can work normally. Then he disabled Cortana and both DSN and Windows Speech Recognition application are back to normal.


Q: How to start a conversation naturally in SkyrimVR with the mod?

A: Please refer to the guide on reddit. The core commands from the guide:

hallo=setini "fActivatePickLength:Interface" 220.0000; setini "bUsingMotionControllers:VRInput" 0; sleep 10; press E; sleep 10; setini "bUsingMotionControllers:VRInput" 1; setini "fActivatePickLength:Interface" 50.0000;

excuse me=setini "fActivatePickLength:Interface" 220.0000; setini "bUsingMotionControllers:VRInput" 0; sleep 10; press E; sleep 10; setini "bUsingMotionControllers:VRInput" 1; setini "fActivatePickLength:Interface" 50.0000;

Lydia=setini "fActivatePickLength:Interface" 220.0000; setini "bUsingMotionControllers:VRInput" 0; sleep 10; press E; sleep 10; setini "bUsingMotionControllers:VRInput" 1; setini "fActivatePickLength:Interface" 50.0000;


Q: Is there a way to use this mod for ONLY dialogue purposes? I don't want to trigger a custom command while talking.

A: Yes you can, just remove all commands from DragonbornSpeaksNaturally.ini like this:

[SpeechRecognition]
; Set this to override your system's default locale
Locale=en-US

; When set to 1, the speech recognition service will log any audio signal issues like "too loud" or "too noisy"
bLogAudioSignalIssues=0

; Set these to override the minimum confidence required for matching dialogue and commands (default values are shown here)
dialogueMinConfidence=0.5
commandMinConfidence=0.7

[Favorites]
; Set enabled to 0 to disable the favorites menu voice-equip
enabled=0

[Dialogue]
; These phrases can be said to exit from dialogue
goodbyePhrases=I'll talk to you later;That's enough chit chat for now

[ConsoleCommands]
; no commands



Q: Why does the key simulation commands not work in SkyrimVR?

A: Due to the limitation of the Windows system, keys that are simulated by commands such as press can only be sent to the currently active window. When you play in SkyrimSE, it will always be the current active window, which is fine. But in SkyrimVR it's different, you can easily switch to another window through Steam's Desktop view and return to your VR game. If you don't switch back to SkyrimVR before using the press command, the simulated key will be sent to the wrong window and will not work for your game. To avoid this problem, it is recommended to add the switchwindow command in front of all key simulation commands:

Sneak and cancel=switchwindow; press ctrl; sleep 5000; press ctrl
Left Hand Magic=switchwindow; press leftmousebutton 5000
Right Hand Magic=switchwindow; press rightmousebutton 5000
Use something=switchwindow; press e
Casting a shout=switchwindow; press z 3000


Tips: Switching window needs time, so the first key simulation may be missed if SkyrimVR is not the current active window. Adding the switchwindow command ensures that the second key simulation takes effect, in case you get the illusion that the key simulation is completely not working.


Q: GamePad simulation doesn't works.

A: In fact, I didn't test the GamePad simulation. I only copied the DirectX Scan Codes about GamePad from this CreationKit page. So it doesn't work is understandable.

Only keyboard and mouse simulation are currently guaranteed. Both SkyrimVR and SkyrimSE support keyboard and mouse controls. The following code will work in SkyrimVR and SkyrimSE:

Wait=press t
Hello=press e

If use it in VR, please ensure that SkyrimVR is the active window, otherwise you need the switchwindow command.


Q: I play SkyrimVR with left-hand mode, and the actual hand of item equipped is reverse of the voice command.

A: Currently DSN has no left-hand mode, but it allows you to configure the title of the left and right hand. So you can exchange them like this:

equipLeftSuffix=right
equipRightSuffix=left
equipBothSuffix=both

For custom console commands, just exchange the word left and right:

left hand treatment=player.equipspell 12fcc right
right hand treatment=player.equipspell 12fcc left



How it Works
DSN works by hooking directly into the Skyrim code where the dialogue menu is updated. It also starts a background service to handle the speech recognition. When the background service identifies the dialogue line, the Skyrim hooks execute to select the spoken line.


Contributors & Source Codes

DSN is currently being released as an open source project, and developers are encouraged to modify it, enhance its functionality, or port it to other games. If you are interested in the development of DSN, you can find the project source code at the bottom of the description page.

Please note that the source code for SKSE64 and SKSEVR is referenced in the DSN project. However, according to the requirements of SKSE developers, you cannot separate the SKSE source code from this project and publish it as a separate project.

You can access the source code maintained by each of the DSN's contributors from the links below. DougHamil (Cuebit) is the founder of the project and YihaoPeng (SwimmingTiger) is the current main maintainer. Currently, YihaoPeng holds the main branch of the project. If you are ready to contribute code, consider fork YihaoPeng's repo and send a Pull Request to the repo.


What license does the DSN source code use?

Sorry, there is currently no license. Because Cuebit did not select a license for the project, and the SKSE source code referenced by the project does not allow redistribution. Because the project has fewer contributors, we can consider choosing a license in the future.

It looks like the modification and redistribution of the mod will not cause objections from existing contributors. If you plan to use the source code commercially, please contact all contributors.
Top