speak-tts
Voice cloning CLI for Mac (Apple Silicon) using F5-TTS.
Installation
Via Homebrew
brew tap danielsinai/speak-tts
brew install speak-tts
Via pipx
pipx install speak-tts
Via pip
pip install speak-tts
Requirements
- macOS with Apple Silicon (M1/M2/M3/M4)
- Python 3.10+
Usage
Add a Voice Profile
speak --add-profile daniel --voice ~/voice.wav --text-file ~/reference.txt
The reference audio should be a clear WAV recording (24kHz) of the voice you want to clone, and the text file should contain an exact transcript.
Generate Speech
Plays audio directly (no file saved):
speak daniel "Hello, this is a test!"
Save to a file:
speak daniel "Hello world" --output ~/Desktop/hello.wav
List Profiles
speak --list
Play Audio
speak --play output.wav
Profile Storage
Profiles stored in ~/.speak/profiles/<name>/ with:
reference.wav- Voice samplereference.txt- Transcript
Tips
- Reference Audio: 5-15 seconds, 24kHz, minimal background noise
- Reference Text: Exact transcript of the audio
- First Run: Downloads F5-TTS model (~1GB)
Publishing
1. Publish to PyPI
# Install tools
pip install build twine
# Build and upload
./scripts/publish.sh
Or manually:
python -m build
twine upload dist/*
2. Set up Homebrew Tap
-
Create a new GitHub repo:
homebrew-speak-tts -
Copy the formula:
cp Formula/speak-tts.rb ~/homebrew-speak-tts/
-
Get SHA256 after PyPI upload:
shasum -a 256 dist/speak_tts-*.tar.gz
-
Update
sha256in the formula, commit, and push -
Users install with:
brew tap YOUR_USERNAME/speak-tts brew install speak-tts
Development
git clone https://github.com/danielsinai/speak-tts
cd speak-tts
python3 -m venv venv
source venv/bin/activate
pip install -e .
speak --help
License
MIT
Metadata
Release files for speak-tts 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| speak_tts-0.1.0.tar.gz | 4.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| speak_tts-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.8 kB
Release files / speak_tts-0.1.0.tar.gz
| Download URL | speak_tts-0.1.0.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d29e116cd2b13204eb3d1c4f0268d477372990ff168cc310756525f033dd9b05
|
|
BLAKE2b-256 checksum How to use checksums |
50d7f18f5b1d705ce45063059bb2cd9ebaf28d8366957d28eb98abf30aae2f06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / speak_tts-0.1.0-py3-none-any.whl
| Download URL | speak_tts-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cb5db4ef6ce3978dd1f26a08588956d3bf267af242ccb7ee7b9fe410a8ea8322
|
|
BLAKE2b-256 checksum How to use checksums |
b7cc4dc18e02a55d82aec720fac26a7ea6df28c56cb9ef968e004b2a0dd4e31f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|