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 hashes)

Uploaded Source

Built Distribution

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

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