Skip to main content

Hey Siri and Ok Google type Voice Assistant implemented in python+rust, Iron Man style!

Project description

Overview

Friday is an AI assistant inspired from Tony Stark's replacement of Vision. Friday uses vosk model for speech recognition and a custom Natural Language Processing Server that runs in the local host, to identify commands.

Friday can also speak, which is done using a custom library written in rust (using tts_rust crate), making use of GTTS (Google Text to Speech) client. The rust lib is integrated into python with maturin.

Table of Contents

Mechanism

  • Speech to Text

    • Friday needs a vosk model to recognize speech and convert it to text. Friday particularly uses Indian english version of the model. Find it here along with several other versions of vosk.

    • The output from vosk is processed by a custom NLP server running in the local host, that returns the properly processed command back to Friday. This NLP server has been made using rasa platform.

    • Both vosk model and NLP server are part of Friday's "Brain" and are a vital part of Friday's response.

  • Text to Speech

    • Friday's speaking abilities are powered by Google Text To Speech client, which was used to write Friday's TTS library in rust (for speed).

    • Apart from that, Friday uses threads to speak, which further enhances Friday's voice control.

  • Overall Integration

    • Friday's overall integration is a result of simultaneous working of several components altogether.

Requirements

  • Mandatory conda

    conda must be installed in the system and enabled.

  • Mandatory python v3.12

    rasa uses python v3.9 and it will be installed in a separate conda env automatically by Friday

  • Mandatory maturin

    can be installed using $ pip install maturin

  • ffmpeg

    ffmpeg is not a mandatory requirement but if Friday encounters some errors related to it, download it.

Installation

To install Friday, clone this repository.

git clone https://github.com/d33pster/Friday.git

then, move into the directory with cd.

cd Friday

then, install it using pip.

maturin needs to be installed before this step.

pip install .

Usage

To use Friday, open two terminals.

in terminal 1

friday server

and wait for it show, rasa server is up and running!

after that, in terminal 2

friday

After Friday is online, just call "Friday!" to wake Friday up. and then a command.

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

friday_d33pster-0.2.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

friday_d33pster-0.2-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

File details

Details for the file friday_d33pster-0.2.tar.gz.

File metadata

  • Download URL: friday_d33pster-0.2.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for friday_d33pster-0.2.tar.gz
Algorithm Hash digest
SHA256 3bb66b5f8e0b5d8a77069ed744acddc4f560b3deffc22d05d4fadb13cd0fb89b
MD5 dded2a7266b2ccae50a49f86ba061074
BLAKE2b-256 48a493acda59084b45e24954cd0e9a0b3a87f4f1995bfb5213512a78b2241658

See more details on using hashes here.

File details

Details for the file friday_d33pster-0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for friday_d33pster-0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 954f9dfd2b5ca555ca3872f7797d1bd24f8138987d1c79b2db9f2333ef12e012
MD5 ac5921dfe558163506f22519da1747b7
BLAKE2b-256 1408a922cff332d4a31cbb4f44502e555b92ef9ba80d981452d39214c9155ec5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page