Giter Club home page Giter Club logo

snips-tts-polly's Introduction

snips-tts-polly

This is a replacement for snips-tts (the text-to-speech component of the Snips voice assistant). Rather than using the local (but low quality) TTS service (e.g. pico2wav), this system uses the much higher quality AWS Polly service.

It communicates with Snips via the same MQTT topics as the default TTS service, i.e.

  • subscribes to hermes/tts/say to pick up new TTS requests.
  • sends converted audio to hermes/audioServer/default/playBytes.
  • closes Snips session via hermes/tts/sayFinished.

One of the main design features of Snips is that it's a local, rather than cloud based, voice assistant. Therefore depending on an cloud TTS service may seem to negate those benefits. However the quality improvement is massive, privacy concern low (i.e. Polly doesn't "listen" to you, or have access to your device), and it's fast.

Switching between the two can be as simple as:

systemctl stop snips-tts-poly && systemctl start snips-tts

Dependencies

  • boto3 - python library for communicating with AWS.
  • paho - python library for interacting with Snips via MQTT.
  • toml - python library for reading the central Snips config file.
  • mpg123 - binary for converting the MP3s Polly responds with, into WAVs which Snips can process.

Random Comments

  • The service caches speech in /tmp/tts to avoid converting text it's converted before. It doesn't currently prune this cache, so keep an eye on it.
  • I've included an example systemd unit file (snips-tts-polly.service) to make it easy to daemonize the service. (Remember to copy the binary to /usr/bin).

Credits

Initially developed from jarvis_listener.py by @tschmidty69

snips-tts-polly's People

Contributors

hcooper avatar

Watchers

James Cloos avatar uchagani avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.