Skip to content

EIC-NLP/EIC_Chula_Robocup_NLP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

EIC Chula Robocup NLP

A network of NLP services for robocup competition

The MIT License

About The Project

More information about the project are on our website EIC Chula Robocup

Guide for Beginners

For Python beginnering or new NLP team recruitment, check out the guide please.

Click here for Guide

(back to top)

Features

Service Name Offline Status Legend
Intent Classification Rasa Open Source 🟩 🟩 Working
Large-Language-Model OpenAI ChatGPT3.5/4 🟩 🟨 Developing
Large-Language-Model Meta Llama 🟨 🟥 Broken
ROS Server Custom Package 🟨
Speech-to-Text OpenAI/whisper 🟩
Speech-to-Text hugging-face/distil-whisper 🟩
Text-to-Speech IBM Mimic 🟩
Text-to-Speech Azure Cognitive Service 🟥
Wake Word Porquipine 🟩

Roadmap:

  • ✅ Trancription as accurate as human
  • ✅ Hardware acceleration on NVIDIA & Macbook Apple Silicon
  • ✅ Multi-Intent Extraction
  • Offline LLM
  • Streaming Live-Transcription
  • Multi-language Support
    • ✅ English
    • Thai

Requirements

Supported Operating system:

  • macos
  • Ubuntu
  • Windows 1.

Hardware preference:

  1. Nvidia GPU with CUDA support
  2. AMD GPU with ROCm support
  3. Macbook with Apple Silicon

(back to top)

1: Libraries conflict with Pydub and PyAudio. Dual-booting is recommended.

Getting Started

Software installation is required. Please install the following:

  • VSCode
  • Anaconda
  • GHDesktop
  • HomeBrew (for MacOS only)

Installation & Setup for MacOS

  • In VS Code, open a terminal, in the root directory of the project (/Robocup-2024-NLP).

    source init_macos.sh

Installation & Setup for Ubuntu

  • In VS Code, open a terminal, in the root directory of the project (/Robocup-2024-NLP).

    source init_ubuntu.sh

Installation & Setup Manually

If the above scripts do not work, please install manually.

  1. In VS Code, open a terminal, in the root directory of the project (/Robocup-2024-NLP).
  # Create a new conda environment
  conda create -n "nlp" python=3.9.16

  # Activate the environment
  conda activate nlp

  # Update pip
  pip install --upgrade pip

  # Install all the requirements
  pip install -r requirements.txt

  # install the client package, which is used to communicate with the server in python files
  cd src_client_pkg
  pip install -e .
  1. Install pytorch for the GPU accerlation:

    • For MacOS, use the following command:
    conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 -c pytorch
    • For Ubuntu go to Pytorch Run Locally select:
      • Stable
      • Linux
      • Conda
      • Python
      • CUDA 12.1 {or other CUDA version}
        • Then install the selected version of CUDA here CUDA
    conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

Architechture

This NLP system is built on a client-server architecture. The client is a python package src_client_pkg. the client is a installable library. The server can be run independently.

Each service has a unique port number. however each service server has the same port to make switch from one service to another easier. For example, Azure and Mimic has the same port number. To switch from Azure to Mimic, simply start one server over another. This it to avoid having to change the client code.

More information at config.py


Usage

main.py runs the available services indexed at socketconfig.yaml. when running main.py, the user will be prompted to select which service to run.

Any of the services' server in the root directory can be run independently with python <service_name>.py.

Running services

main.py can run any combination of services. To run all services, run the following command and select option 1.

# Run all services
conda activate nlp
python main.py


------ OUTPUT ------
Choose task:
1. nlpall[offline]
2. nlpstt
3. nlptts
4. nlprasa
5. nlpwakeword
task:

Running client libraries in python

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Contact

First Author: Tinapat (Game) Limsila - LinkedIn - @gametl02 - limsila.limsila@gmail.com

Second Author: Suppakit (Jom) Laomahamek - LinkedIn

(back to top)

Acknowledgments

Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!

(back to top)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published