Skip to main content

A drop-in replacement for Speaker.bot using Piper TTS

Project description

Speekaboo

Speekaboo is a WIP Speaker.bot API implementation using the Piper text-to-speech library.

This was designed because on Linux, while Speaker.bot launches with the correct libraries, Sapi5 doesn't work (it's a stub in Wine), Azure doesn't work, Google Cloud TTS has a weird popping, and basically everything else costs money.

While Speekaboo doesn't have chat integration (as of writing), it supports the same Websockets and UDP API as Speaker.bot, so it can be integrated with other programs like Streamer.bot.

Features

Speekaboo is far from complete. For basic functionality, it works good enough to use for a basic TTS bot. For an EN-US voice, I recommend Amy Medium.

  • Not spaghetti codebase
  • Setup wizard (you need to manually add voices)
  • Functional UI
  • Compatibility of the Speaker.bot WS/UDP API
    • Basic speaking functionality
    • Speak requests
    • Speaking subscriptions (needed for Streamer.bot)
    • Other subscriptions
    • Compatibility with Streamer.bot
    • Document all functions and events
    • 100% API compatibility (some things are stubbed)
    • Proper error checking
  • Playing voices
    • Basic TTS
    • Voice customization
    • Multiple/random voices (each voice alias is one voice only)
    • Speaker IDs
    • Pitch shift
    • Volume
    • Arabic support. piper-phonemize-cross does not include Tashkeel.
  • Downloading/uninstalling new voices
  • Adding custom .onnx voices
  • Manually playing text
  • Profanity filter
  • Interface to cancel or review messages
  • Random voices/multiple voice aliases (todo, needs proper memory overhead management)
  • In-GUI configuration
    • Creating aliases
  • Chat integration (NOT PLANNED, Streamer.bot can send commands)

Installation

Requirements:

  • Python 3.10-3.12 (3.13 is not compatible yet due to piper-phonemize-cross not being updated yet)
  • Poetry
poetry install

Running

A desktop shortcut may be added in the future.

speekaboo

Initial setup

  1. Launch the program
  2. Go to Download Voices, and select a voice. For English (US) I find Amy Medium (en_US-amy-medium) to be a good choice.
  3. Click "Install/uninstall selected voice"
  4. Go to the Voice Aliases tab, and click "Add new alias", and pick a name
  5. Pick the voice name in the Voice dropdown
  6. Click "Save changes"
  7. Pick the new name in the dropdown, enter some text, and hit enter!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speekaboo-0.2.0.tar.gz (57.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

speekaboo-0.2.0-py3-none-any.whl (63.7 kB view details)

Uploaded Python 3

File details

Details for the file speekaboo-0.2.0.tar.gz.

File metadata

  • Download URL: speekaboo-0.2.0.tar.gz
  • Upload date:
  • Size: 57.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for speekaboo-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a12106fe10a988411860f59263d7570c4bb1a80e8671ee33ddcdd2be36998ebc
MD5 e7c55b89a5e2edc7b1cfc4c3c2f8826e
BLAKE2b-256 459b3c3e9d8d21658a64f332359879d10945df2639f8d1824ba897eb2cc7a818

See more details on using hashes here.

File details

Details for the file speekaboo-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: speekaboo-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 63.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for speekaboo-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f071d3dc71c9f9782870a1d6e9ce0492aca06a5a7dfcecbae35e66067f2d9be
MD5 a37fef2fbd42fc9c5ac19103be254aed
BLAKE2b-256 8f7c1e253b024428cfe5d9f81ec70d0051c00c118916797a1b276a0c57a91460

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page