You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Arsen6331 ee76c1afc5
Fix module path
2 years ago
plugins Switch TTS from mimic to flite 2 years ago
.envrc Initial Commit 2 years ago
.gitignore Initial Commit 2 years ago
LICENSE Initial Commit 2 years ago
Makefile Initial Commit 2 years ago
README.md Switch TTS from mimic to flite 2 years ago
action.go Initial Commit 2 years ago
activate.wav Initial Commit 2 years ago
audio.go Fix done condition in playActivationSound and improve timing of loops 2 years ago
config.go Add SayWithVoice to yaegi symbols 2 years ago
go.mod Fix module path 2 years ago
go.sum Switch TTS from mimic to flite 2 years ago
logging.go Initial Commit 2 years ago
main.go Add SayWithVoice to yaegi symbols 2 years ago
plugins.go Add SayWithVoice to yaegi symbols 2 years ago
symbols.go Add SayWithVoice to yaegi symbols 2 years ago
trident.example.toml Initial Commit 2 years ago

README.md

Trident

Personal voice assistant written in go using DeepSpeech. This was mainly created for personal use, so there may be some edge cases unaccounted for.


Prerequisites

The prerequisites for trident are:

  • libdeepspeech and DeepSpeech models (speech to text)
  • flite (text to speech)
  • go

libdeepspeech along with its models can be found in its github releases. Be sure to download the native_client tarball for your platform and the .pbmm and .scorer files.

flite can be installed via your distribution's repositories:

  • Debian/Ubuntu: sudo apt install flite-dev
  • Fedora: sudo dnf install flite-devel
  • Arch: sudo pacman -S flite festival-us

Installation

Move the previously downloaded models (.pbmm and .scorer) into this repo as deepspeech.pbmm and deepspeech.scorer. Then, follow the next steps.

To build trident, run:

make

After that, install by running:

sudo make install

Customization

To change the activation tone, replace the activate.wav file with any valid wav file and rebuild. The file will be embedded in the executable via //go:embed.

Trident has a config file called trident.toml. It will first look for it in <user config directory>/trident.toml (config directory as defined by os.UserConfigDir()), then it will look for it in the same directory as the executable.