Releases: YihaoPeng/DragonbornSpeaksNaturally
[0.31.1] Update for AE 1.6.1170
To run DSN, the game version must be:
- Skyrim Special Edition / Anniversary Edition 1.6.1170 (with or without DLC), supported since 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
Update
[0.31.1] Compatible with version 1.6.1170 of SE/AE.
About the New Engine
A new optional speech recognition engine Voice2Json has been added to DSN since v0.30.0.
Voice2Json Available Locales
ca-es, cs-cz, de, el-gr, en, en-in, en-us, es, es-mexican,
fr, hi, it, ko-kr, kz, nl, pl, pt-br, ru, sv, vi, zh, zh-cn
Voice2Json MAY recognize the following languages better:
cs-cz, de, en, en-us, es, fr, it, ko-kr, nl, sv, vi
Microsoft speech recognition engine is recommended for other languages.
Official language support page: http://voice2json.org/#supported-languages
If you see the word kaldi
after a language, it should be recognized better. If the words behind it are pocketsphinx
, the recognition performance is poor.
How about deepspeech
? I think it's somewhere between kaldi
and pocketsphinx
. You can test it yourself.
Special note: Voice2Json's Chinese support is currently poor, and it is not recommended for Chinese users. The Chinese language support of Microsoft's speech recognition engine is much better. (synesthesiam/voice2json#76)
[zhCN] 特别说明:Voice2Json的汉语支持目前很烂,不建议汉语用户使用。微软语音识别引擎的汉语识别效果好得多。(synesthesiam/voice2json#76)
Voice2Json speech engine is optional
The follow 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
.
Install DSN with Voice2Json
-
Install xSHADOWMANx's Dll Loader manully (without mod manager) to the Skyrim root directory (the directory that has
SkyrimSE.exe
orSkyrimVR.exe
). It is a mandatory dependency of DSN. -
Install Docker Desktop in your system: https://www.docker.com/products/docker-desktop/
If available, check "Use WSL2 instead of Hyper-V" when installing.
Running Docker Desktop in WSL2 will provide better performance and flexibility than Hyper-V. -
If your Docker Desktop doesn't launch properly, try running the following commands with Admin PowerShell:
wsl --update wsl --shutdown
Then restart your Docker Desktop.
If still unsuccessful, you need to enable CPU virtualization (Intel VT-x or AMD-V) in the BIOS settings.
If docker still doesn't work for you, you can try to install Voice2Json in WSL1 and uncomment
bVoice2JsonUseDocker=0
inDragonbornSpeaksNaturally.ini
. There is currently no comprehensive guide, but you can refer to this comment.More about WSL1 and WSL2: https://aka.ms/wsl2
-
Download the
DragonbornSpeaksNaturally-Voice2Json-Alpha-0.31.x.zip
file fromAssets
at below and install with your mod manager. -
Rename
DragonbornSpeaksNaturally.SAMPLE.ini
toDragonbornSpeaksNaturally.ini
and
open it with your text editor, change theLocale=en_us
to the value you want. It could be:ca-es, cs-cz, de, el-gr, en, en-in, en-us, es, es-mexican,
fr, hi, it, ko-kr, kz, nl, pl, pt-br, ru, sv, vi, zh, zh-cnIf you want to try a different backend recognizer, you can fill in the
Locale
containing the recognizer, for example:Locale=en-us_deepspeech-mozilla
See the recognizer backends available for each language.
If you want to use the old configuration file, edit the following options:
;;; Please do not edit, delete or move the next line (the ini section title), otherwise the options below will not take effect [SpeechRecognition] ;;; Uncomment (remove leading semicolon) to choose speech engine (default is Microsoft) ;;; ;;; Voice2Json recognizes the following languages better: ;;; cs-cz, de, en, en-us, es, fr, it, ko-kr, nl, ru, sv, vi ;;; Microsoft is recommended for other languages. ;;; ;;; To use the Voice2Json engine, you need to install Docker Desktop: ;;; Download from https://www.docker.com/products/docker-desktop/ ;;; ;Engine=Microsoft ;;; 【You need to add this】 Engine=Voice2Json ;;; Set this to override your system's default locale ;;; ;;; Available Locales for Engine=Microsoft: ;;; en-us, en-uk, en-ca, en-in, en-au, fr, de, ja, ;;; zh-cn, zh-tw, zh-hk, zh-sg ;;; ;;; Available Locales for Engine=Voice2Json: ;;; ca-es, cs-cz, de, el-gr, en, en-in, en-us, es, es-mexican, ;;; fr, hi, it, ko-kr, kz, nl, pl, pt-br, ru, sv, vi, zh, zh-cn ;;; References: http://voice2json.org/#supported-languages ;;; ;;; 【You need to change this】 Locale=en-us ;;; When set to 1, the speech recognition service will log any audio signal issues like "too loud" or "too noisy" ;;; 【Enable this for debug】 bLogAudioSignalIssues=1
-
Launch the game and DSN will do the rest automatically.
SeeMy Documents\DragonbornSpeaksNaturally\DragonbornSpeaksNaturally.log
for the launching progress. -
If you don't launch Docker Desktop, DSN will try to launch it for you and a UAC popup will appear. (Why we need UAC?)
If you don't want the UAC popup, please launch Docker Desktop manually before launching Skyrim. -
On first launch, an container image of several hundred megabytes will be downloaded from Docker Hub.
So the speech recognition may not ready anytime soon at the first time.
SeeMy Documents\DragonbornSpeaksNaturally\DragonbornSpeaksNaturally.log
for the downloading progress. -
Every time you change the
Locale
, Voice2Json needs to download some speech recognition model files from github.
Once the model is downloaded, all other operations do not require an Internet connection.
Speech recognition is done entirely locally and your voice is not uploaded to any server. -
If for some reason DSN cannot create the docker container automatically, you can create it manually:
docker run -dit --name dsn_voice2json --entrypoint /bin/sh synesthesiam/voice2json
And download the model files:
docker exec dsn_voice2json /usr/lib/voice2json/bin/voice2json -p en-us download-profile
Train the model files (with the default texts, just for test):
docker exec dsn_voice2json /usr/lib/voice2json/bin/voice2json -p en-us train-profile
Change
en-us
to your locale. -
If your
dsn_voice2json
container is corrupted for some reason, you can remove it with the command:docker rm -f dsn_voice2json
You can also remove it from the Docker Desktop GUI.
The next time you launch DSN, it will automatically be recreated. You can also recreate it manually with the step 10.
Known Issues
-
SRGS.xml does not work with the Voice2Json engine, so the Dragonborn Unlimited configuration file will not work.
-
SubsetMatchingMode
option doesn't work, butoptionalExpression
works fine. So you won't be able to omit words in a sentence unless they are in parentheses. -
When launching for the first time in a new language, the
dsn_voice2json
docker container will download some model files for the language from Github. If you have a poor connection to GitHub and the model cannot be downloaded, Voice2Json will not work properly. If this occurred, do step 10 to manually download the model files, or get a VPN for your network connection temporarily (Once step 10 is done, the VPN or network connection is no longer needed).
FAQ
Q: Do I need to download voice2jason? and if so where and how. Description is unclear.
A: When you launch Skyrim for the first time after installing Docker for Windows, DSN will automatically install voice2json with the docker command for you. When the installation is complete, you will see a dsn_voice2json
container in the Docker Desktop UI.
Q: What's inside the Data\Plugins\Sumwunn\Resources\
folder?
A: These are the files to support Voice2Json Chinese speech recognition. There is no space between words in Chinese sentences, while Voice2Json can only accept input in word units. This makes DSN have to complete Chinese word segmentation by itself before using Voice2Json for Chinese speech recognition. And the Resources
folder contains the dictionary files needed to implement it.
If you don't use Voice2Json for Chinese speech recognition, you can delete this folder.
Q: Some special symbols in the sentence make the recognizer error, how can I get rid of them?
A: In DragonbornSpeaksNaturally.ini
, for a single character:
; ...
[SpeechRecognition]
; ...
; Remove the semicolon `;` in front of the following two lines and
; add the special symbol you want to remove after the `,`
normalizeExpression=(?:[",!?]|\s+|(?<![a-zA-Z])')
normalizeReplacement=" "
For multiple characters:
normalizeExpression=(?:[",!...
[0.31.0-alpha] New speech recognition engine Voice2Json (based on Kaldi)
To run DSN, the game version must be:
- Skyrim Anniversary Edition 1.6.640 (with or without DLC), supported since 0.31.0.
- Skyrim SE 1.5.97
- Skyrim VR 1.4.15
Update
Added a new optional speech recognition engine: Voice2Json
[0.31.0]
- Added support for Anniversary Edition (with or without DLC). Only tested with the Steam version, not sure if the GOG version will work.
Fix
[0.30.1]
- Launch Docker Desktop with elevated privileges in case the
docker
commands don't work. - Do not repeat launch when Docker Desktop has already launched.
[0.30.3]
- Fix:
File contains no section headers. '\ufeff[dsn_1_0]\n']
- Upgrade .NET version to 4.8.
[0.30.4]
- Fix voice recognition failure after recording device change.
- Fixed recording transmission failure caused by Windows console text encoding.
[0.30.5]
- Fix the loading path of Voice2Json Chinese dictionary, Chinese is works with
Engine=Voice2Json
(but the Chinese recognition performance is very bad, not recommended).
[0.30.6]
- Allow selection of Voice2Json recognizer backend via
Locale
configuration.
[0.30.7]
- Correctly release microphone resources after configuration file update.
Avoid increased CPU and memory usage due to useless recordings in the background.
[0.30.8]
- Fixed
!
appearing in a sentence causing Voice2Json recognizer to throw an exception.
[0.30.9]
- Fix the problem that the confidence is enlarged by 100 times in the Voice2Json engine. Note that this doesn't change the behavior of Voice2Json which tends to return a confidence of 1 (100%), it just gets handled correctly when it returns a value less than 1.
- Add a new option
bVoice2JsonUseDocker=0
to switch to the Voice2Json installation in bash (WSL), here for more details. - Fix the exception caused by Russian capital letters,
Engine=Voice2Json
now can work withLocale=ru
(but the accuracy may be poor). - Add a new option
bLowercasePhrases=1
to convert all uppercase letters passed to the Voice2Json speech engine to lowercase. If you see capital letters causing exception in the log, you can enable this option. This option is already enabled by default forru
.
Voice2Json Available Locales
ca-es, cs-cz, de, el-gr, en, en-in, en-us, es, es-mexican,
fr, hi, it, ko-kr, kz, nl, pl, pt-br, ru, sv, vi, zh, zh-cn
Voice2Json MAY recognize the following languages better:
cs-cz, de, en, en-us, es, fr, it, ko-kr, nl, sv, vi
Microsoft speech recognition engine is recommended for other languages.
Official language support page: http://voice2json.org/#supported-languages
If you see the word kaldi
after a language, it should be recognized better. If the words behind it are pocketsphinx
, the recognition performance is poor.
How about deepspeech
? I think it's somewhere between kaldi
and pocketsphinx
. You can test it yourself.
Special note: Voice2Json's Chinese support is currently poor, and it is not recommended for Chinese users. The Chinese language support of Microsoft's speech recognition engine is much better. (synesthesiam/voice2json#76)
[zhCN] 特别说明:Voice2Json的汉语支持目前很烂,不建议汉语用户使用。微软语音识别引擎的汉语识别效果好得多。(synesthesiam/voice2json#76)
Voice2Json speech engine is optional
The follow 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
.
Install DSN with Voice2Json
-
Install xSHADOWMANx's Dll Loader manully (without mod manager) to the Skyrim root directory (the directory that has
SkyrimSE.exe
orSkyrimVR.exe
). It is a mandatory dependency of DSN. -
Install Docker Desktop in your system: https://www.docker.com/products/docker-desktop/
If available, check "Use WSL2 instead of Hyper-V" when installing.
Running Docker Desktop in WSL2 will provide better performance and flexibility than Hyper-V. -
If your Docker Desktop doesn't launch properly, try running the following commands with Admin PowerShell:
wsl --update wsl --shutdown
Then restart your Docker Desktop.
If still unsuccessful, you need to enable CPU virtualization (Intel VT-x or AMD-V) in the BIOS settings.
If docker still doesn't work for you, you can try to install Voice2Json in WSL1 and uncomment
bVoice2JsonUseDocker=0
inDragonbornSpeaksNaturally.ini
. There is currently no comprehensive guide, but you can refer to this comment.More about WSL1 and WSL2: https://aka.ms/wsl2
-
Download the
DragonbornSpeaksNaturally-Voice2Json-Alpha-0.30.x.zip
file fromAssets
at below and install with your mod manager. -
Rename
DragonbornSpeaksNaturally.SAMPLE.ini
toDragonbornSpeaksNaturally.ini
and
open it with your text editor, change theLocale=en_us
to the value you want. It could be:ca-es, cs-cz, de, el-gr, en, en-in, en-us, es, es-mexican,
fr, hi, it, ko-kr, kz, nl, pl, pt-br, ru, sv, vi, zh, zh-cnIf you want to try a different backend recognizer, you can fill in the
Locale
containing the recognizer, for example:Locale=en-us_deepspeech-mozilla
See the recognizer backends available for each language.
If you want to use the old configuration file, edit the following options:
;;; Please do not edit, delete or move the next line (the ini section title), otherwise the options below will not take effect [SpeechRecognition] ;;; Uncomment (remove leading semicolon) to choose speech engine (default is Microsoft) ;;; ;;; Voice2Json recognizes the following languages better: ;;; cs-cz, de, en, en-us, es, fr, it, ko-kr, nl, ru, sv, vi ;;; Microsoft is recommended for other languages. ;;; ;;; To use the Voice2Json engine, you need to install Docker Desktop: ;;; Download from https://www.docker.com/products/docker-desktop/ ;;; ;Engine=Microsoft ;;; 【You need to add this】 Engine=Voice2Json ;;; Set this to override your system's default locale ;;; ;;; Available Locales for Engine=Microsoft: ;;; en-us, en-uk, en-ca, en-in, en-au, fr, de, ja, ;;; zh-cn, zh-tw, zh-hk, zh-sg ;;; ;;; Available Locales for Engine=Voice2Json: ;;; ca-es, cs-cz, de, el-gr, en, en-in, en-us, es, es-mexican, ;;; fr, hi, it, ko-kr, kz, nl, pl, pt-br, ru, sv, vi, zh, zh-cn ;;; References: http://voice2json.org/#supported-languages ;;; ;;; 【You need to change this】 Locale=en-us ;;; When set to 1, the speech recognition service will log any audio signal issues like "too loud" or "too noisy" ;;; 【Enable this for debug】 bLogAudioSignalIssues=1
-
Launch the game and DSN will do the rest automatically.
SeeMy Documents\DragonbornSpeaksNaturally\DragonbornSpeaksNaturally.log
for the launching progress. -
If you don't launch Docker Desktop, DSN will try to launch it for you and a UAC popup will appear. (Why we need UAC?)
If you don't want the UAC popup, please launch Docker Desktop manually before launching Skyrim. -
On first launch, an container image of several hundred megabytes will be downloaded from Docker Hub.
So the speech recognition may not ready anytime soon at the first time.
SeeMy Documents\DragonbornSpeaksNaturally\DragonbornSpeaksNaturally.log
for the downloading progress. -
Every time you change the
Locale
, Voice2Json needs to download some speech recognition model files from github.
Once the model is downloaded, all other operations do not require an Internet connection.
Speech recognition is done entirely locally and your voice is not uploaded to any server. -
If for some reason DSN cannot create the docker container automatically, you can create it manually:
docker run -dit --name dsn_voice2json --entrypoint /bin/sh synesthesiam/voice2json
And download the model files:
docker exec dsn_voice2json /usr/lib/voice2json/bin/voice2json -p en-us download-profile
Train the model files (with the default texts, just for test):
docker exec dsn_voice2json /usr/lib/voice2json/bin/voice2json -p en-us train-profile
Change
en-us
to your locale. -
If your
dsn_voice2json
container is corrupted for some reason, you can remove it with the command:docker rm -f dsn_voice2json
You can also remove it from the Docker Desktop GUI.
The next time you launch DSN, it will automatically be recreated. You can also recreate it manually with the step 10.
Known Issues
-
SRGS.xml does not work with the Voice2Json engine, so the Dragonborn Unlimited configuration file will not work.
-
SubsetMatchingMode
option doesn't work, butoptionalExpression
works fine. So you won't be able to omit words in a sentence unless they are in parentheses. -
When launching for the first time in a new language, the
dsn_voice2json
docker container will download some model files for the language from Github. If you have a poor connection to GitHub and the...
[0.21.1-beta] Making Microsoft's speech recognition engine work easier
-
Use a better way to get the current system locale. Users whose system installation language and display language do not match should now be able to get the correct default locale. This makes it easier for Microsoft's speech recognition engine to work.
-
Add more explicit prompts for changing locale (remove leading semicolon before modification).
[v0.21.0-beta] Bug fix; Probably more reasonable default settings
New
- [Favorites menu voice-equip] Allows players to choose different main hands for spells and weapons.
- [Favorites menu voice-equip] Add a
leftHandMode
option to match the left-hand mode in SkyrimVR. - [Favorites menu voice-equip] Use separate options
useEquipHandPrefix
,useEquipHandInfix
,useEquipHandSuffix
to control the position of the hand description. You can now say "equip left xxx" withuseEquipHandInfix=1
. - [Dialogue] Add an option to disable the dialogue voice selection.
- [INI] Add a sample ini with description in Simplified Chinese (DragonbornSpeaksNaturally.SAMPLE-zhCN.ini).
Change
- [Favorites menu voice-equip] In order to prevent random equiping items, this feature is disabled by default. If you want to use it, you can set
enabled=1
in ini. - [Favorites menu voice-equip]
omitHandSuffix
is now a separate option to allow omit the equip prefix, and it is not enabled by default. The old method of adding a semicolon at the beginning of the value ofequipPhrasePrefix
no longer works. - [Dialogue]
SubsetMatchingMode
is disabled by default to reduce false matches. As a compensation, CJK brackets are added tooptionalExpression
. - [INI] Players will no longer have the trouble of the hidden ".ini" extension.
DragonbornSpeaksNaturally.ini.ini
is now a valid configuration file name.
Fix
- [Favorites menu voice-equip] Dual wielding weapons (
both equip xxx
) should now work properly. - [INI] Players will not encounter the following error because of deleting the value of some items in ini:
'one-of' must contain at least one'item' element
. - [Log] The misleading notice that appeared with the
Unknown process name
record indragonborn_speaks.log
has been corrected. The old version has hints contrary to the actual situation. - [Launching] Fixed an issue where DSN might not load correctly in installation paths with spaces.
[v0.20.2-beta] Support Skyrim SE 1.5.97
Compatible with both SkyrimVR 1.4.15 and SkyrimSE 1.5.97.
Fix exception caused by using Chinese with single quotes.
It is recommended to install with a mod manager (likes Vortex or MO2). See Description page for manual installation steps.
Release 1 for SSE 1.5.80
- Compatible with Skyrim Special Edition 1.5.80.
- Compatible with SkyrimVR 1.4.15.
Allow game executables to be renamed.
To fix this issue:
I renamed SkyrimVR.exe to SkyrimVR_real.exe
and renamed skse to SkyrimVR.exe. then set skse to auto run SkyrimVR_real.exe
by doing this, I can run skyrim from within steamVR without needing to use the desktop.
Unfortunately that results in:
Unsupported process: SkyrimVR_real.exe
Unofficial Release rc1 for SSE 1.5.73
This is not an official release of Dragonborn Speaks Naturally, but the publisher is one of the main maintainers of the mod recently.
Basic informations of the release:
- Compatible with Skyrim Special Edition 1.5.73.
- Can work with Skyrim VR 1.4.15 but will crash frequently (old version of
dragonborn_speaks_naturally.dll
is recommand). - Dialogue and custom commands are available in both SSE and SkyrimVR.
- Favorites menu equipping work only for SkyrimVR (not tested).
What's New:
- No new features.
Fixed:
- DragonbornSpeaksNaturally.exe cannot exit normally if DragonbornSpeaksNaturally.ini not exists.
How to install it
You can install the mod via NMM or Vortex. They will automatically put the files in the correct location.
If you choose to install manually, copy the Data
directory into the SkyrimSE
or SkyrimVR
directory (depending on your game version) to your game's install directory.
The mod depends on xSHADOWMANx's Dll Loader and the loader must be installed manually.
Downgrade your SkyrimSE.exe
or SkyrimVR.exe
for compatibility
If DSN is not working, please 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 the following SkyrimSE-1.5.73.exe.zip or SkyrimVR-1.4.15.exe.zip to extract and overwrite your exe.
Unofficial Release rc3 for SSE 1.5.62 / SVR 1.4.15
This is not an official release of Dragonborn Speaks Naturally, but the publisher is one of the main maintainers of the mod recently.
Basic informations of the release:
- Compatible with Skyrim Special Edition 1.5.62
- Compatible with Skyrim VR 1.4.15
- Dialogue and custom commands are available in both SSE and SkyrimVR.
- Favorites menu equipping work only for SkyrimVR.
What's New:
- Automatically reload the configuration file. You do not have to restart the game after modifying the configuration file. All modifications will take effect immediately after saving.
- Added a new option
useEquipHandPrefix
to the favorites menu voice-equip:
; Consider the above equipLeft/Right/BothSuffix as a prefix instead of a suffix.
; If enabled, equip phrases will be "off/main/both equip xxx" instead of "equip xxx off/main/both".
; Open according to your preferences. This may be more convenient in some languages.
; In addition, you can set equipPhrasePrefix to empty to make better use of hands prefix.
useEquipHandPrefix=0
- Add more examples and documentation links to the configuration sample. Preview the configuration
Fixed:
- Fix compatibility issues of hand suffix in Chinese.
- Fix "valid values" of
mainHand
not work. - Fix an issue in rc2 that no log outputs.
How to install it
You can install the mod via NMM or Vortex. They will automatically put the files in the correct location.
If you choose to install manually, copy the Data
directory into the SkyrimSE
or SkyrimVR
directory (depending on your game version) to your game's install directory.
The mod depends on xSHADOWMANx's Dll Loader and the loader must be installed manually.
Downgrade your SkyrimSE.exe
or SkyrimVR.exe
for compatibility
If DSN is not working, please 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.62.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 the following SkyrimSE-1.5.62.exe.zip
or SkyrimVR-1.4.15.exe.zip
to extract and overwrite your exe.
Unofficial Release for SSE 1.5.62 rc2
This is not an official release of Dragonborn Speaks Naturally, but the publisher is one of the main maintainers of the mod recently.
About the unofficial release:
- Compatible with Skyrim Special Edition 1.5.62
- Compatible with Skyrim VR 1.4.15
- Dialogue and custom commands are available in both SSE and SkyrimVR.
- Favorites menu equipping work only for SkyrimVR.
How to install it
You can install the mod via NMM or Vortex. They will automatically put the files in the correct location.
If you choose to install manually, copy the Data
directory into the SkyrimSE
or SkyrimVR
directory (depending on your game version) to your game's install directory.
The mod depends on xSHADOWMANx's Dll Loader and the loader must be installed manually.