File information
Created by
Cuebit and SwimmingTiger and OdieUploaded by
CuebitVirus scan
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
Requires xSHADOWMANx's Dll Loader (The loader needs to be installed manually)
Requires .Net Framework v4.8 (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 (You do not need to enable Windows speech recognition, only install the speech recognition feature). Note: For the alpha version it is not necessary. The Voice2Json engine can replace it.
If the configuration file DragonbornSpeaksNaturally.ini contains non-ASCII characters, it must be saved as UTF-8 with BOM encoding. Check the last question of the FAQ for more details.
[zhCN] 如果配置文件 DragonbornSpeaksNaturally.ini 包含非ASCII字符(比如中文),必须另存为 UTF-8 with BOM (带有BOM的UTF-8) 编码。FAQ的最后一个问题里有更多细节。
About
This mod adds speech recognition to Skyrim so that you can speak the dialogue lines aloud to select them.
Compatible with Skyrim AE / SE / VR.
Manually Verified / Quarantined Files
dragonborn_speaks_naturally.dll contains code that hooks into SkyrimSE/VR.exe in order to take over dialogue and console commands. This hooking method is similar to a virus. Meanwhile, DragonbornSpeaksNaturally.exe has code to execute cmd commands in Windows in order to connect to the Voice2Json speech engine in docker. This makes some antivirus software think they are suspicious. In addition, DragonbornSpeaksNaturally.exe uses your microphone, which further increases the suspicion of antivirus software on it.
Therefore, every new version we upload will be quarantined and need to wait for the review of a NexusMods staff. This is why most of our releases are flagged for manually verified.
So are these files really doing the malicious things that antivirus software fears? I think the answer is no. dragonborn_speaks_naturally.dll just does what you want it to do: hooks into Skyrim, takes over Skyrim's dialogue and console commands, and simulates keypresses as you dictate. DragonbornSpeaksNaturally.exe also does what you ask it to do: record from your microphone, pass it to one of the speech recognition engines (Microsoft or Voice2Json), recognize the command you want to run and send it to dragonborn_speaks_naturally.dll. Then, dragonborn_speaks_naturally.dll will execute these commands (console, dialog or simulated keystrokes). During the entire process, your microphone recording never leaves your computer. And all the behavior of the mod depends on the configuration files you write and what you say through the microphone. No third party can remotely control its behavior.
The mod will not connect to the Internet while it is running (If you choose the Voice2Json engine, some model files will be downloaded from GitHub on the first launch, and once the download is complete, no internet connection is required; the Microsoft engine also does not use an internet connection). If you see an Internet connection in the VirusTotal behavior report, it's not the mod, but the VirusTotal's scanner are downloading the zip file from their own servers. The same page will also record the behavior of the scanner to decompress the DSN zip with 7z, which proves that not all the behaviors recorded are from the scanning target.
If you still have doubts about the safety of the mod, you can review its code yourself or ask experienced people. All of our releases after 2022 are compiled from the following repository, using Visual Studio Community 2022, to the x64 Release target: https://github.com/YihaoPeng/DragonbornSpeaksNaturally
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), you can create a configuration file DragonbornSpeaksNaturally.ini (note that the extension ".ini" will be hidden if "Hide extensions for known file types" is enabled). 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. See How to Use and FAQ 1, 2 for details.
Only the alpha version is compatible with Skyrim Anniversary Edition
To run DSN, the game version must be:
* Skyrim Anniversary Edition 1.6.640 (with or without DLC), supported since alpha 0.31.0. Only tested with the Steam version, not sure if the GOG version will work.
* Skyrim SE 1.5.97
* Skyrim VR 1.4.15
Alpha Version (New Speech Recognition Engine)
We have released v0.31.0-alpha. It adds support for Anniversary Edition and includes a new speech recognition engine Voice2Json to replace the old Microsoft speech recognition engine.
The new engine will solve many problems:
1. Microsoft's speech recognition engine is bound to the system locale, making it difficult to make the engine work properly.
2. Lower recognition rate. You have to speak clearly like an announcer to be likely to be recognized.
3. The probability of false triggering is high. After a while, any noise the microphone picks up will trigger a random command.
The new engine does not have the aforementioned drawbacks. For English speakers, it has far better recognition accuracy than Microsoft and is less prone to false triggering.
However, the new engine is not perfect, and some non-English languages may not work at all (Known issues: Russian doesn't work, Chinese works poorly). We look forward to your feedback.
Also, in order to run the new engine, you must have Docker Desktop installed. You will also need to modify the configuration file for the new engine to take effect (the default engine is still Microsoft).
The specific installation steps are here: https://github.com/YihaoPeng/DragonbornSpeaksNaturally/releases
Voice2Json speech engine is optional
The guide above is how to install the Voice2Json engine for DSN, but the engine is always optional. If you remove the Engine=Voice2Json line from the configuration file, the Microsoft Speech Recognition Engine will be used. Then you can use the alpha version like the beta version, and you don't need to install Docker for Windows.
Beta Version
We have released v0.20.2-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.
(Only v0.20.2-beta is compatible with SkyrimSE 1.5.97. So currently SkyrimSE players can only choose the Beta version.)
It compatible with both SkyrimVR 1.4.15 and SkyrimSE 1.5.97. 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.
Note: Skyrim Aniversary Edition is not supported for the beta version, you need the alpha version for it.
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 (likes Vortex or MO2). 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 (note that the extension ".ini" will be hidden if "Hide extensions for known file types" is enabled)
|- item-name-map.SAMPLE.json
And The following is the path tree of logs and configuration files:
|- <Documents (aka. My Documents)>
|- DragonbornSpeaksNaturally
|
|- dragonborn_speaks.log (Generated by dragonborn_speaks_naturally.dll.
| Only for v0.19.4-beta. In earlier versions it was located in the game root directory.)
|
|- DragonbornSpeaksNaturally.log (Generated by DragonbornSpeaksNaturally.exe)
|
|- DragonbornSpeaksNaturally.ini (Optional, you can copy DragonbornSpeaksNaturally.SAMPLE.ini to here and rename it.
| Note that the extension ".ini" will be hidden if "Hide extensions for known file types" is enabled.
| Only for v0.19.2-beta and later. In earlier versions you should place the file in the Sumwunn directory.)
|
|- item-name-map.json (Optional, you can copy item-name-map.SAMPLE.json to here and rename it)
| Only for v0.19.2-beta and later. In earlier versions you should place the file in the Sumwunn directory.)
New features for this beta version:
* Speech recognition can be paused and resumed with voice commands.
* Favorites menu voice-equip supports multiple prefixes and suffixes, and equipPhrasePrefix can be omitted.
* Favorites menu voice-equip works in SkyrimSE (In v0.18 it only works in SkyrimVR).
* 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.
* You can put the configure file DragonbornSpeaksNaturally.ini (note that the extension ".ini" will be hidden if "Hide extensions for known file types" is enabled) or item-name-map.json into
<Documents (aka. My Documents)>\DragonbornSpeaksNaturally\ folder.
* Move the log file "dragonborn_speaks.log" (generated by dragonborn_speaks_naturally.dll) to "<MyDocument>/DragonbornSpeaksNaturally" directory.
* Even if the Skyrim version is newer than the DSN, the DSN will try to load (may cause the game to crash).
Read DragonbornSpeaksNaturally.SAMPLE.ini for new features.
[zhCN] 阅读 DragonbornSpeaksNaturally.SAMPLE-zhCN.ini 了解新功能。
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 (note that the extension ".ini" will be hidden if "Hide extensions for known file types" is enabled) 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 (or only DragonbornSpeaksNaturally without ".ini" if "Hide extensions for known file types" enabled). 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 DragonbornSpeaksNaturally.SAMPLE.ini for beta on GitHub
See DragonbornSpeaksNaturally.SAMPLE.ini for old stable on GitHub
[zhCN] 在 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 | Anniversary Edition | SkyrimSE | SkyrimVR
------------------------------------------------------------------------------------------------------------------------------------------------------
Dialogue selecting | √ (since v0.31.0) | √ | √
Favorites menu voice-equip | √ (since v0.31.0) | √ (since v0.19.3-beta) | √
Custom console commands | √ (since v0.31.0) | √ (since v0.18) | √
Key simulation commands | √ (since v0.31.0) | √ (since v0.18) | √(since v0.17)
------------------------------------------------------------------------------------------------------------------------------------------------------
Troubleshooting
If DSN is not working, please try these troubleshooting steps:
1. Check the mod version you have installed. The beta version is not compatible with the Anniversary Edition update of Skyrim Special Edition (regardless of whether DLC was purchased or enabled). If you have a Skyrim Special Edition with a recent Steam update installed, you must use the alpha version, unless you have used a downgrade patch.
And when installing the DSN using your mod manager, make sure you have the correct edition selected. Your mod manager should select the correct edition (AE/SSE/VR) automatically. But if it's not the correct one, be sure to select the correct one yourself.
2. Check for the dragonborn_speaks.log file in your Skyrim installation directory (next to SkyrimVR.exe or SkyrimSE.exe) or in My Documents/DragonbornSpeaksNaturally (log moved to here since 0.19.4-beta). 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: Command "press e" crashes SkyrimVR. How to fix it?
Q: My microphone is so sensitive that I have a serious false matching problem! Environmental noise causes DSN to execute commands randomly!
Q: My configure file doesn't work, I have named it "DragonbornSpeaksNaturally.ini"
Q: Where should the configuration file "DragonbornSpeaksNaturally.ini" be placed?
Q: How to switch microphones without restarting the game?
Q: Modify custom commands without restarting the game?
Q: I use HTC Vive and/or have a lower recognition rate.
Q: An update of SkyrimVR or SkyrimSE broke the mod's running.
Q: Where is the log file of the mod?
Q: DSN can't work under my locale, "DragonbornSpeaksNaturally.log" ends with an exception.
Q: Everything looks good, but DSN doesn't recognize anything.
Q: I have a lot of custom commands (more than 1024) and the DSN doesn't work.
Q: How to start a conversation naturally in SkyrimVR with the mod?
Q: Is there a way to use this mod for ONLY dialogue purposes? I don't want to trigger a custom command while talking.
Q: Why does the key simulation commands not work in SkyrimVR?
Q: GamePad simulation doesn't works.
Q: I play SkyrimVR with left-hand mode, and the actual hand of item equipped is reverse of the voice command.
Q: Sometimes I hear beeping sounds, how do I turn them off? | DSN no longer recognizes anything after playing a beep sound.
Q: Non-ASCII characters in the configuration file cannot be recognized. | [zhCN] 配置文件中无法使用非ASCII字符(比如中文)。
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.