Skyrim Special Edition

File information

Last updated

Original upload

Created by

Cuebit and SwimmingTiger and Odie

Uploaded by

Cuebit

Virus scan

Some manually verified files

About this mod

Adds speech recognition to Skyrim AE/SE/VR 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.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 Special Edition / Anniversary Edition 1.6.1170 (with or without DLC), supported since alpha 0.31.1.
   Only tested with the Steam version, not sure if the GOG version will work.
* Skyrim Special Edition 1.5.97
* Skyrim VR 1.4.15


Alpha Version (New Speech Recognition Engine)

We have released v0.31.1-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.21.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.
(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?
Spoiler:  
Show

There is a discussion about the issue here: https://github.com/YihaoPeng/DragonbornSpeaksNaturally/issues/10

Solutions available for reference (choose any of them):

1. Automatically disable VR controller before press e

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

2. Use Talk 2 Close Ones.

;Talk 2 Close Ones
Hi there=press y
Hi friend=tapkey lshift y

    See https://www.reddit.com/r/skyrimvr/comments/szbwki/dragonborn_speaks_naturally_ini_customizations/ for more details.

3. If you have EngineFixesVR, disable its MemoryManager option:

    Edit EngineFixesVR.ini, and change
MemoryManager = true
    To
MemoryManager = false

    See https://github.com/rollingrock/EngineFixesVR/issues/28 for more details.



Q: My microphone is so sensitive that I have a serious false matching problem! Environmental noise causes DSN to execute commands randomly!
Spoiler:  
Show

A: Lowering the microphone volume or using active noise cancellation software such as RTX voice can alleviate the problem.

Look at this topic: https://www.nexusmods.com/skyrimspecialedition/mods/16514/?tab=forum&topic_id=9671828

Or the Voice2Json engine in the Alpha test may make the recognition accuracy better.


Q: My configure file doesn't work, I have named it "DragonbornSpeaksNaturally.ini"
Spoiler:  
Show

A: Try rename it to "DragonbornSpeaksNaturally" (without ".ini"). If it works, means the "Hide extensions for known file types" is enabled for your file explorer. So when you name the file "DragonbornSpeaksNaturally.ini", the actual file name is "DragonbornSpeaksNaturally.ini.ini". If this does not work, disable "Hide extensions for known file types" for diagnostic purposes.


Q: Where should the configuration file "DragonbornSpeaksNaturally.ini" be placed?
Spoiler:  
Show

A: Depending on the version you use, there are two locations:

For beta: you can put the configure file DragonbornSpeaksNaturally.ini into <Documents (aka. My Documents)>\DragonbornSpeaksNaturally\ folder, or the Data\Plugins\Sumwunn subdirectory of the game installation directory. Choose one of two positions.

For old stable: you can only place it in the Data\Plugins\Sumwunn subdirectory of the game installation directory.


Q: How to switch microphones without restarting the game?
Spoiler:  
Show

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.

Since version 0.19, you only need to switch the default microphone to take effect, no need to disable the old device.


Q: Modify custom commands without restarting the game?
Spoiler:  
Show

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.
Spoiler:  
Show

A: The HTC Vive's microphone has a low quality in recording, 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's 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.

In addition, if you don't mind misrecognition, you can increase the recognition rate by lowering the recognition threshold in DragonbornSpeaksNaturally.ini:

[SpeechRecognition]
; Set these to override the minimum confidence required for matching dialogue and commands
dialogueMinConfidence=0.4
commandMinConfidence=0.5

Or the Voice2Json engine in the Alpha test may make the recognition accuracy better.



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

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?
Spoiler:  
Show

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" that named "dragonborn_speaks.log". In old versions, it is located in your SkyrimSE/VR install directory. In newer versions, it has been moved to the "Documents\DragonbornSpeaksNaturally" directory.


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

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.

Or you can try a method provided by lukysak:

So, I'm here just to add my experience and I hope it will help someone with similar problems. Making it work actually took me like a week of trying, leaving it be, and trying again until I finally succeed :D 

What was my problem:
My windows locale language was Czech, windows speech recognition doesn't accept Czech and my game is in English. Also later I noticed how bad my HTC Vive mic is.
I followed the installation tutorial (installed DLL injector and other requirements, installed Dragonborn Speaks Naturally through MO2)

What I did  to make it work:
  • I had to completely change windows language to en-US (sadly there's no workaround for my native language)
  • Changed speech recognition language to en-US
  • Changed speech recognition mic to HTC-Vive
  • Opened Dragonborn Speaks Naturally zip file, went into SkyrimVR>Data>Plugins>Sumwunn and extracted DragonbornSpeaksNaturally.SAMPLE.ini to my desktop
  • Opened the ini file in text editor and found ;Locale=en-US
  • Deleted ";" before the line
  • Changed dialogueMinConfidence and commandMinConfidence to value 0.1 (because I found after testing in game that log file say there was not enough confidence to execute the commands, which means HTC Vive mic is sjit) and saved.
    (Developer Tip: If your microphone is good, don't change the value to 0.1, otherwise you may encounter too many false matches. First keep the default, if it prompts that the confidence is too low, then lower it.)
  • Renamed the file to DragonbornSpeaksNaturally.ini
  • Moved it into DragonbornSpeaksNaturally folder in My Documents>DragonbornSpeaksNaturally

Then I started the game as usual (through MO2 SKSE) and it finally works.

I hope it will help someone, its a super amazing mod, but instructions are not so clear for users from non-English speaking countries. 

If none of the above fix your issue, you can consider joining the Alpha test on Github and use the Voice2Json engine instead.



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

A: When you switching the language in the advanced options for Windows Speech Recognition, you will see the following prompt:

Speech Recognition will use the updated settings the next time it starts. Ensure that the recognizer language matches the Windows language for Speech Recognition to work properly.



Since DSN uses the speech recognition engine provided by Windows, this limitation also applies to DSNs. Setting a recognition language that different from the system language will cause DSN to not work properly: everything looks OK, but nothing is recognized.

So you must make the DSN's recognition language consistent with the system's display language. You can try this:
* Temporarily switching your Windows display language to match DSN's "Locale=" (or change "Locale=" to match your Windows display language). You don't need change the "Country or region".
* 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.

Or you can try a method provided by lukysak:

So, I'm here just to add my experience and I hope it will help someone with similar problems. Making it work actually took me like a week of trying, leaving it be, and trying again until I finally succeed :D 

What was my problem:
My windows locale language was Czech, windows speech recognition doesn't accept Czech and my game is in English. Also later I noticed how bad my HTC Vive mic is.
I followed the installation tutorial (installed DLL injector and other requirements, installed Dragonborn Speaks Naturally through MO2)

What I did  to make it work:
  • I had to completely change windows language to en-US (sadly there's no workaround for my native language)
  • Changed speech recognition language to en-US
  • Changed speech recognition mic to HTC-Vive
  • Opened Dragonborn Speaks Naturally zip file, went into SkyrimVR>Data>Plugins>Sumwunn and extracted DragonbornSpeaksNaturally.SAMPLE.ini to my desktop
  • Opened the ini file in text editor and found ;Locale=en-US
  • Deleted ";" before the line
  • Changed dialogueMinConfidence and commandMinConfidence to value 0.1 (because I found after testing in game that log file say there was not enough confidence to execute the commands, which means HTC Vive mic is sjit) and saved.
    (Developer Tip: If your microphone is good, don't change the value to 0.1, otherwise you may encounter too many false matches. First keep the default, if it prompts that the confidence is too low, then lower it.)
  • Renamed the file to DragonbornSpeaksNaturally.ini
  • Moved it into DragonbornSpeaksNaturally folder in My Documents>DragonbornSpeaksNaturally

Then I started the game as usual (through MO2 SKSE) and it finally works.

I hope it will help someone, its a super amazing mod, but instructions are not so clear for users from non-English speaking countries. 

If none of the above fix your issue, you can consider joining the Alpha test on Github and use the Voice2Json engine instead.



Q: I have a lot of custom commands (more than 1024) and the DSN doesn't work.
Spoiler:  
Show

A: Microsoft's speech recognition engine can only load 1024 phrases. Exceeding this limit will cause an internal error in the speech engine (the exception is not currently recorded in the log) and cause speech recognition to fail.

Search for the following keywords to learn more about this limitation:
Too many grammars have been loaded. Number of grammars cannot exceed 1024.

However, you can load an SRGS XML file to bypass this limitation. See here for more details. You can find the example SRGS file here.



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

A: It can be simulated by Excuse me=press e. The downside is that you need to point to an NPC.

Here's another (and probably better) solution:
https://www.reddit.com/r/skyrimvr/comments/9x4phu/how_to_start_conversations_using_dragonborn/

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.
Spoiler:  
Show

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?
Spoiler:  
Show

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 be received by 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:
1. Switching window needs time, so if SkyrimVR is not the current active window, the key simulation may be missed at the first time when you call it. Adding the switchwindow command ensures that the key simulation takes effect when you call it again, to prevent that it completely not working.
2. As with SkyrimSE, connecting a XBox controller will disable the keyboard inputs for SkyrimVR, causing key commands like press e to fail. You can consider disabling the XBox controller in the game, or use the methods mentioned below.


Q: GamePad simulation doesn't works.
Spoiler:  
Show

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.

However, adelinadragonborn mentioned a solution in a post: you can "fix" for gamepad by using custom controlmap - https://www.nexusmods.com/skyrim/mods/30913.

"This text file lets you use your Xbox 360 controller and your keyboard simultaneously." So you can use keyboard simulation likes press e or press m.

Although is has some issues (like for adelinadragonborn it is hangs when moving mouse or some other issues with tab for example), it really works with this mod. Might be helpful for somebody.


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

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



Q: Sometimes I hear beeping sounds, how do I turn them off? | DSN no longer recognizes anything after playing a beep sound.

Spoiler:  
Show

Delete the content after pausePhrases= and resumePhrases= in DragonbornSpeaksNaturally.ini to prevent accidental triggering of the pause and resume functions. They will play beeping sounds.

[SpeechRecognition]
;;; The speech engine will pause recognition after you say the following phrase.
;;; Both dialogue and console commands recognition are paused until you say one of the resume phrase.
pausePhrases=
;;; Say the following phrase to resume recognition from the pause.
resumePhrases=



Q: Non-ASCII characters in the configuration file cannot be recognized. | [zhCN] 配置文件中无法使用非ASCII字符(比如中文)。
Spoiler:  
Show

If there are non-ASCII characters in the configuration file DragonbornSpeaksNaturally.ini, the file encoding must be UTF-8 with BOM. UTF-8 configuration file without BOM seem to be loaded as only ASCII encoding (not ANSI/CP936/GBK).

Therefore, the easiest way to solve the problem is to open the ini with the notepad that comes with Windows and save it as UTF-8 with BOM. The old version of notepad does not have this option, just save it as "UTF-8" encoding. It will add a BOM (Byte Order Mark) to the file. If you use another editor, please save it as "UTF-8 with BOM".

------------------------------------------------------
[zhCN]

如果配置文件 DragonbornSpeaksNaturally.ini 中存在非ASCII字符,文件编码必须是 UTF-8 with BOM。没有BOM的UTF-8配置文件似乎会被当做仅ASCII编码加载(不会被当作ANSI/CP936/GBK)。

所以,解决问题的最简单办法是用Windows自带的记事本打开ini然后另存为“带有BOM的UTF-8”编码,它会给文件加BOM (Byte Order Mark,字节序标记)。旧版记事本没有该选项,直接另存为“UTF-8”编码即可。如果你使用其他编辑器,请自行另存为“UTF-8 with BOM”。


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.