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
- Launch the program
- Go to Download Voices, and select a voice. For English (US) I find Amy Medium (en_US-amy-medium) to be a good choice.
- Click "Install/uninstall selected voice"
- Go to the Voice Aliases tab, and click "Add new alias", and pick a name
- Pick the voice name in the Voice dropdown
- Click "Save changes"
- Pick the new name in the dropdown, enter some text, and hit enter!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a12106fe10a988411860f59263d7570c4bb1a80e8671ee33ddcdd2be36998ebc
|
|
| MD5 |
e7c55b89a5e2edc7b1cfc4c3c2f8826e
|
|
| BLAKE2b-256 |
459b3c3e9d8d21658a64f332359879d10945df2639f8d1824ba897eb2cc7a818
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f071d3dc71c9f9782870a1d6e9ce0492aca06a5a7dfcecbae35e66067f2d9be
|
|
| MD5 |
a37fef2fbd42fc9c5ac19103be254aed
|
|
| BLAKE2b-256 |
8f7c1e253b024428cfe5d9f81ec70d0051c00c118916797a1b276a0c57a91460
|