If there is no sound coming from your speakers when you see Dragonfire: GOOD MORNING SIR
on your terminal or To activate say 'Dragonfire!' or 'Wake Up!' notification after you run Dragonfire with dragonfire
command then there are two possibilities causing this problem:
- Dragonfire's audio output (ALSA plug-in [flite]: ALSA Playback) could be mapped to wrong audio device:
you can fix this either by changing it to correct device using the audio settings of your operating system or you can choose to use Phonon sudo apt-get install phonon
to configure your device priority:
- The problem could be related to missing
flite
package on your system. It should normally be installed on post-installation automatically but try to re-install it one more time with:
sudo apt-get update
sudo apt-get install flite
If flite
is missing in your distro's repositories then download it and try to install it with sudo dpkg -i flite_2.0.0-release-1_amd64.deb
.
- Since we migrated to Kaldi Speech Recognition Toolkit, Dragonfire's speech recognition procedure runs fully on local.
- First of all, please make sure that Kaldi is compiled and installed under
/usr/share/kaldi
directory. If you suspect that Kaldi's compilation failed on installation procedure then please clone the repositorygit clone https://github.com/DragonComputer/Dragonfire.git
and run install.sh script with eithersudo ./install.sh
orsudo bash install.sh
. Make sure that this block runs without any problem because it clones Kaldi under/usr/share/kaldi
and compiles it directory by directory. - If you are sure that Kaldi installation is OK then first run
export GST_PLUGIN_PATH=/usr/share/kaldi/src/gst-plugin
after that run decoder_test.py (python decoder_test.py
) to test the speech recognition. It will run two tests:- Microphone test so you will speak and it will recognize the speech.
- Audio file(located under
tests/ten_digits.wav
) test. The output should look like this:
INFO:decoder:recognize: Pushing EOS to pipeline
INFO:decoder:recognize: Got word: DRAGON
INFO:decoder:recognize: Got word: FIRE
INFO:decoder:recognize: Got word: <#s>
INFO:decoder:recognize: Pipeline received eos signal
INFO:decoder:recognize: Finishing request
['DRAGON', 'FIRE', '<#s>']
.INFO:decoder:testWav: Pipeline initialized
INFO:decoder:testWav: Connecting audio decoder
INFO:decoder:testWav: Connected audio decoder
INFO:decoder:testWav: Pushing EOS to pipeline
INFO:decoder:testWav: Got word: ONE
INFO:decoder:testWav: Got word: TWO
INFO:decoder:testWav: Got word: THREE
INFO:decoder:testWav: Got word: FOUR
INFO:decoder:testWav: Got word: FIVE
INFO:decoder:testWav: Got word: SIX
INFO:decoder:testWav: Got word: SEVEN
INFO:decoder:testWav: Got word: EIGHT
INFO:decoder:testWav: Got word: <#s>
INFO:decoder:testWav: Pipeline received eos signal
INFO:decoder:testWav: Finishing request
.
----------------------------------------------------------------------
Ran 2 tests in 23.039s
OK
- If you face with a problem in above test then most probably Dragonfire's audio input (ALSA plug-in [python]: ALSA Capture) is mapped to wrong audio device:
you can fix this either by changing it to correct device using the audio settings of your operating system or you can choose to use Phonon sudo apt-get install phonon
to configure your device priority:
File "/usr/bin/dragonfire", line 11, in <module>
load_entry_point('dragonfire', 'console_scripts', 'dragonfire')()
File "/home/tardog/Dokumente/Spielweise/Dragonfire/dragonfire/__init__.py", line 544, in initiate
start(args)
File "/home/tardog/Dokumente/Spielweise/Dragonfire/dragonfire/__init__.py", line 60, in start
recognizer = KaldiRecognizer()
File "/home/tardog/Dokumente/Spielweise/Dragonfire/dragonfire/sr/kaldi.py", line 34, in __init__
self.decoder_pipeline = DecoderPipeline({"decoder" : decoder_conf})
File "/home/tardog/Dokumente/Spielweise/Dragonfire/dragonfire/sr/decoder.py", line 17, in __init__
self.create_pipeline(conf)
File "/home/tardog/Dokumente/Spielweise/Dragonfire/dragonfire/sr/decoder.py", line 47, in create_pipeline
self.asr.set_property(key, val)
AttributeError: 'NoneType' object has no attribute 'set_property'
If you got the above error then;
- either Kaldi installation has a problem so follow the instructions in Dragonfire is not reacting to my voice?
- or Kaldi installation is OK but somehow this line is not working so run
export GST_PLUGIN_PATH=/usr/share/kaldi/src/gst-plugin
before launching Dragonfire (in the same shell).
Dragonfire starts on sleeping mode to do not disturb your acoustic environment. You need to activate her by saying DRAGONFIRE or HEY or WAKE UP to your microphone.
Then you need to deactivate her by saying GO TO SLEEP.
Simply use your headphones:headphones: instead of the speakers:speaker: to listen Dragonfire or lower the volume of your speakers:speaker:.
Then you need to silence her by saying ENOUGH OR SHUT UP.
By saying GOODBYE or BYE BYE or SEE YOU LATER.
If you did not run Dragonfire with --headless
option then you should be able to see the below avatar every time you hear a text-to-speech output.
Although, our C program that runs the avatar animation has not the best compatibility across the different desktop environments or window managers. For example; in Unity desktop environment, it flashes badly but in KDE Plasma 5, it runs pretty smooth.
Dragonfire analyzes your name that registered on the operating system to determine your gender. Sometimes she makes mistakes (mostly if your name is not an English name) and call you by your opposite gender. To fix this you can say MY TITLE IS SIR or I'M A MAN or I'M A BOY.
Dragonfire analyzes your name that registered on the operating system to determine your gender. Sometimes she makes mistakes (mostly if your name is not an English name) and call you by your opposite gender. To fix this you can say MY TITLE IS LADY or I'M A LADY or I'M A WOMAN or I'M A GIRL.
Sure, there is a command for that. You can use CALL ME *
command to manipulate her form of address for you to anything you want. For example: CALL ME MASTER or CALL ME MY LORD or CALL ME MY FRIEND etc.
Probably you don't have any of the supported file manager software packages: dolphin
, pantheon-files
, nautilus
Check the existence of sensible-browser
command. It's a command that points out to your default web browser.
Probably you don't have GIMP installed on your system: sudo apt-get install gimp
Probably you don't have Inkscape installed on your system: sudo apt-get install inkscape
Probably you don't have any of the supported video editor software packages: openshot
, lightworks
, kdenlive
This script will try to install dependencies for you. Run these commands, respectively:
git clone https://github.com/DragonComputer/Dragonfire.git
cd Dragonfire/
chmod +x install.sh
sudo ./install.sh
Dragonfire's learning is far from perfect so by the time, the conversations filled with incorrect information can lead her to wrong answers like THE SUN IS HOT AND COLD
. To fix this kind of situations you can always wipe out her memories about the subject by calling: FORGET ABOUT THE SUN
Learning feature has a priority so if in the past, you said something like ALBERT EINSTEIN IS A PHYSICIST
then it will block your way when you asked anything about Albert Einstein. To fix this you should say: FORGET ABOUT ALBERT EINSTEIN
🏁 If none of the cases listed above are fitting to your situation then always consider to file an issue or visit our chat room on Gitter.