Frequently Asked Questions

Here are some answers to questions you may have as you configure and use Jasper.

Installation & Configuration

  • Why can’t I can’t login to my Raspberry Pi for the first time?
    • Are you sure you imaged your SD card correctly? Your Raspberry Pi should emit a green LED light when booting. It may help to wipe your SD card clean with a tool like GParted before imaging with dd. See the Software Guide for full instructions.
  • What does Jasper do with the information I provide in my profile?
    • The information in the profile allows Jasper modules to tailor their responses and actions to you. For example, the weather module will be able to tell you about the weather in your area, and the time module will be able to report a time that’s sensitive to your timezone. None of this information ever leaves the Pi (unless, of course, you create a module that sends the profile information elsewhere).
  • Why does Jasper ask for my Gmail password?
    • As with any information requested in the profile populator, this is purely optional and will never leave the Pi. If provided, Jasper will be able to tell you when you have new emails. Additionally, Jasper will use this information to send relevant messages to your email and/or phone (e.g., links to articles that you’ve requested). As an alternative, consider using Mailgun.
  • Why do I get a segmentation fault when running main.py?
    • This is usually caused by the speech dictionary not being created during the boot process. Make sure you’ve added the boot script to crontab, then restart your Pi. If a dictionary.dic file is still not present in your client/ directory, just run ~/jasper/boot/boot.py manually to force the dictionary generation.
  • Can I change Jasper’s name?
  • Can Jasper understand other languages?
    • Jasper relies on CMUSphinx for voice recognition. You can change the language by configuring CMUSphinx with a new acoustic and language model, as described in the CMUSphinx FAQ.
  • Can Jasper work on other platforms? (OS X, Ubuntu, VirtualBox…)
    • Jasper is targeted at Raspberry Pi, but people have had success porting it to other platforms. Check out these threads for more information: OS X, Ubuntu. If you’d like to share your success using another platform, just submit a pull request to add to this page.
  • Can I plug in my own speech recognition engine? (Google Speech, etc)
    • Sure, check out the instructions in client/stt.py. While Pocketsphinx is the default, an example using the Google Speech API is bundled with the client.
  • Does Jasper work on Raspberry Pi B+?
    • Method 2 in the Software Guide should work. Under Method 1, we’ll try to share unofficial B+ disk images if they’re available.
  • Why do I get a kernel panic?
    • It might be because you’re using NOOBS. Try imaging your card manually with an original Raspbian version. If that doesn’t solve the problem, please do share your experience in the Jasper Support Forum.

Interacting with Jasper

  • Why isn’t Jasper responding to its name?
    • Make sure your Raspberry Pi is turned on and has been allowed to boot for a few minutes. Try moving closer to the microphone. If all else fails, you can SSH into the Raspberry Pi and run main.py yourself to see Jasper’s interpretation of your input.
  • Can I control the volume or make Jasper more sensitive to sound levels?
    • Run alsamixer on your Raspberry Pi for microphone and speaker level controls. Raising the microphone level will help Jasper to hear your voice from a greater distance.
  • Why can’t I login to my Raspberry Pi after running Jasper?
    • Jasper’s attempts to connect with a wifi network may be interfering with your attempts to make an ethernet connection. To resolve this, disconnect your wifi adapter, restart your Jasper, then plug in the ethernet cable only after Jasper fails to find a wireless network.
  • Does Jasper work with two-factor email authentication?
    • Sure does! You simply need to generate an application specific password especially for Jasper, and use this generated password in the setup process. See https://support.google.com/accounts/answer/185833?hl=en for more information about how to generate one.
  • What if I don’t have speakers that work with the Pi or don’t want Jasper to speak out loud?
    • I’d suggest using headphones! This is particularly useful for development, during which you might have Jasper repeating himself over and over, speaking sporadically, etc.

Developing on Jasper

  • What if my module’s keywords conflict with those of another module?
    • Modules are ordered using a relative priority system, so a module with higher priority will be given preference when two modules would both accept a certain input. In general, the more specific the module’s isValid function, the higher it’s priority can be, as you’ll trigger fewer false positives. For more detail, see here. For an example in the code, see the ‘News’ and ‘Hacker News’ modules, which would both accept the input “what’s on hacker news?”; the higher priority of the ‘Hacker News’ module ensures that this input is passed to the correct module.
  • Is there any way to interact with Jasper on the command-line?
    • Yes! Set the JASPER_HOME environment variable, then run main.py as follows: JASPER_HOME="/home/pi" && export JASPER_HOME && python main.py --local. The --local flag enables the command-line interface (CLI). Note that there’s no need to type “Jasper” between commands when using the CLI, as you would when interacting through speech.
  • How do I fix the KeyError: ‘JASPER_HOME’ problem?
    • JASPER_HOME is an environment variable added to later versions of the client code to be more platform-agnostic. The boot.sh script sets the JASPER_HOME variable on boot. If you run into this problem while trying to run Jasper manually, just set the JASPER_HOME variable before running main.py, as described in the previous question above.
  • What if my module needs more accurate information from the input text? For example, what if I need to capture a number (“one”, “two”, “three”, etc.)? I can’t list every number in the input, so what do I do?
    • If you need more accurate speech recognition, you could modify Jasper to utilize the AT&T speech-to-text API. This will capture a larger vocabulary at the cost of being somewhat slower and rate-limited. The primary modifications would come in mic.py, which would need to change its rendering function to call the AT&T API. Alternatively, consider limiting the set of relevant words that the user might say (e.g., if the user is choosing from a list of three items, just add “one”, “two”, and “three” to the keywords list, rather than worrying about all possible numbers).
  • What if I want to contribute to Jasper?
    • Great! There’s always work to be done. Before you get started, check out our contributing guide.

Theme based on BlackTie.co. Icons from Noun Project.