Skip to main content

Python

Deployments

pages-build-deployment

pypi

Jarvis UI

Connects to Jarvis running in the backend to process request and response via API calls.

Kick off

Install

python -m pip install jarvis-ui

Initiate

import jarvis_ui


if __name__ == '__main__':
    jarvis_ui.start()

Environment Variables

Env vars are loaded from a .env file and validated using pydantic

To use custom .env files

To use a custom .env file, set the filename to the env var env_file before importing jarvis_ui module.

import os
os.environ['env_file'] = "jarvis_ui.env"

import jarvis_ui

if __name__ == '__main__':
    jarvis_ui.start()

Mandatory

  • SERVER_URL: Endpoint URL to which the API call has to be made. Can be localhost or a tunneled URL behind a reverse proxy/CDN.
  • TOKEN: Authentication token.

Optional

  • HEART_BEAT: Defaults to None - Interval in seconds to trigger background healthcheck on the server with automatic restart
  • DEBUG: Defaults to False - Enable debug level logging

  • SPEECH_TIMEOUT: Defaults to 0 for macOS, 10 for Windows - Timeout for speech synthesis

  • NATIVE_AUDIO: Defaults to False - If set to True, the response is generated in the server's default voice
  • WAKE_WORDS: Defaults to jarvis (Defaults to alexa in macOS older than 10.14) - Wake words to initiate Jarvis
  • SENSITIVITY: Defaults to 0.5 - Sensitivity of wake word detection

  • MICROPHONE_INDEX: Defaults to None - Use peripherals.py to get the index values
  • VOICE_NAME: Defaults to the author's favorite per the OS. Name of the voice supported by the OperatingSystem
  • VOICE_RATE: Defaults to the value in py3-tts module - Speed/rate at which the text should be spoken
  • VOICE_PITCH: Defaults to the value in py3-tts module - Currently available only for Linux OS

  • LISTENER_TIMEOUT: Defaults to 2 - Timeout for listener once wake word is detected - Awaits for a speech to begin until this limit
  • LISTENER_PHRASE_LIMIT: Defaults to 5 - Timeout for phrase once listener is activated - Listener will be deactivated after this limit
  • RECOGNIZER_SETTINGS: JSON object of customized speech recognition settings.
Custom settings for speech recognition

The default values for RECOGNIZER_SETTINGS are customized according to the author's voice pitch. Please use test_listener.py to figure out the suitable values in a trial and error method.

Sample settings (formatted as JSON object)

RECOGNIZER_SETTINGS: '{"energy_threshold": 1100, "dynamic_energy_threshold": false, "pause_threshold": 1, "phrase_threshold": 0.1}'

Description

  • energy_threshold: Minimum audio energy to consider for recording. Greater the value, louder the voice should be.
  • dynamic_energy_threshold: Change considerable audio energy_threshold dynamically.
  • pause_threshold: Seconds of non-speaking audio before a phrase is considered complete.
  • phrase_threshold: Minimum seconds of speaking audio before it can be considered a phrase - values below this are ignored. This helps to filter out clicks and pops.
  • non_speaking_duration: Seconds of non-speaking audio to keep on both sides of the recording.

:bulb:   Refer Jarvis' README for more information on setting up the backend server.

Coding Standards

Docstring format: Google
Styling conventions: PEP 8
Clean code with pre-commit hooks: flake8 and isort

Release Notes

Requirement

python -m pip install gitverse

Usage

gitverse-release reverse -f release_notes.rst -t 'Release Notes'

Linting

PreCommit will ensure linting, and the doc creation are run on every commit.

Requirement

python -m pip install sphinx==5.1.1 pre-commit recommonmark

Usage

pre-commit run --all-files

Pypi Package

pypi-module

https://pypi.org/project/jarvis-ui/

Runbook

made-with-sphinx-doc

https://thevickypedia.github.io/Jarvis_UI/

License & copyright

© Vignesh Rao

Licensed under the MIT License

Metadata

Release files for jarvis-ui 2.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for jarvis-ui 2.3.1
File Interpreter ABI Platform
jarvis_ui-2.3.1-py3-none-any.whl Python 3 none any Details

Release files / jarvis_ui-2.3.1-py3-none-any.whl

Download URL jarvis_ui-2.3.1-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d52cba073e428d7749c6caca7d06a2b10138c3a2eada15f97ce74e7036caaa94
BLAKE2b-256 checksum
How to use checksums
f6091b0280c1061b143b30171a8744cefd3b119962426b0bb31c2b9704d83b39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

2.3.1 This release

1 release file

2.3

1 release file

2.2

1 release file

2.1

1 release file

2.0

1 release file

1.1

1 release file

1.0

1 release file

0.8

1 release file

0.7

1 release file

0.5.4

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page