Skip to content

norbibi/GSAT

Repository files navigation

GSAT

GSAT allows you to converse with anyone regardless of their language.
It runs on top of Golem Network and works with the usual chat tools like Discord, Teams, Duo, ...
This software is available on Linux and Windows.

Supported languages:

 English, Arabic, Bengali, Catalan, Czech, Chinese, Welsh, Danish, German, Estonian,  
 Finnish, French, Hindi, Indonesian, Italian, Japanese, Korean, Maltese, Dutch,  
 Persian, Polish, Portuguese, Romanian, Russian, Slovak, Spanish, Swedish,  
 Swahili, Telugu, Tagalog, Thai, Turkish, Ukrainian, Urdu, Uzbek, Vietnamese 

This application is based on Meta's Seamless Communication AI models.
Meta's model Seamless Expressive aims to preserve the subtleties of discourse such as pauses and speaking rate in addition to vocal style and emotional tone.

Requirements

How to use

This software is in portable version, so, just download the zip archive for your system and extract it.
The binary file to launch is called GSAT(.exe).

Use of the Seamless Expressive model is licensed.

How to get access (generate token)

Sign in/up on Huggingface then request access to the model https://huggingface.co/facebook/seamless-expressive

Once approved (email notification), create an access token https://huggingface.co/settings/tokens

Add generated token to your environment with HF_TOKEN variable.
Without this token, the application will run correctly but the voices will be generic and monotonic.

Echo cancellation has been disabled for performance purposes, so configure your system to use headset.
Once started, select the languages ​​for you and your interlocutor, wait for the scan to find providers then select one, adjust the duration and click the start button.
The full duplex translation will be operational when the timer is launched and will stop when it expires or when you click on the stop button.
You can now use the Golem_Speaker/Golem_Microphone (Linux) or CABLE_IN/CABLE_OUT (Windows) virtual audio devices in your favorite chat application.

 

Optional parameters
  • subnet: default public, related to Golem Network.
  • network: default polygon, can be holesky.
  • logLevel: default none, can be child, debug, info, warn, error.
  • hfToken: will be used instead of environment variable if passed here.
  • dbg: switch to enable debug mode (show hidden window, enable SSH to provider, loopback from microphone to speaker).

Examples:

  • Linux: ./GSAI --dbg --subnet=my_subnet --network=holesky --logLevel=debug --hfToken=my_token
  • Windows: GSAI.exe --dbg --subnet=my_subnet --network=holesky --logLevel=debug --hfToken=my_token

How it works

Build application (only dev)

Build application process requires Node.js.

git clone https://github.com/norbibi/GSAT.git  
cd GSAT/GSAT  
npm ci
npm run make -- --platform win32
npm run make -- --platform linux

Build GVMI image (only dev)

Build GVMI process requires Docker and Python3 (gvmkit-build package).
Uploading image to Golem registry (https://registry.golem.network) requires registration and repository creation.

git clone https://github.com/norbibi/GSAT.git  
cd GSAT  
docker build -t docker_gvmi_gsat:latest Docker_GVMI_GSAT  
gvmkit-build docker_gvmi_gsat --push-to [YOUR_USERNAME]/[YOUR_REPOSITORY]:[VERSION] --upload-chunk-size 30000000 --upload-workers 16