Go to file
2021-04-21 19:29:14 -07:00
plugins Initial Commit 2021-04-21 19:29:14 -07:00
.envrc Initial Commit 2021-04-21 19:29:14 -07:00
.gitignore Initial Commit 2021-04-21 19:29:14 -07:00
action.go Initial Commit 2021-04-21 19:29:14 -07:00
activate.wav Initial Commit 2021-04-21 19:29:14 -07:00
audio.go Initial Commit 2021-04-21 19:29:14 -07:00
config.go Initial Commit 2021-04-21 19:29:14 -07:00
go.mod Initial Commit 2021-04-21 19:29:14 -07:00
go.sum Initial Commit 2021-04-21 19:29:14 -07:00
LICENSE Initial Commit 2021-04-21 19:29:14 -07:00
logging.go Initial Commit 2021-04-21 19:29:14 -07:00
main.go Initial Commit 2021-04-21 19:29:14 -07:00
Makefile Initial Commit 2021-04-21 19:29:14 -07:00
plugins.go Initial Commit 2021-04-21 19:29:14 -07:00
README.md Initial Commit 2021-04-21 19:29:14 -07:00
symbols.go Initial Commit 2021-04-21 19:29:14 -07:00
trident.example.toml Initial Commit 2021-04-21 19:29:14 -07:00

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)
  • mimic (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.

mimic can be installed via an install script or its AUR package if using Arch Linux or its derivatives.

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.