Skip to main content

QuickCall

QuickCall VoiceOver

Multi-backend TTS tool for creating voice-over audio assets

PyPI License Web Discord

Install | Quick Start | Backends | CLI Options | Voice Models | Configuration | Docker | License


Install

Install with Piper backend

uv pip install quickcall-voiceover[piper]

Install with Kokoro backend

uv pip install quickcall-voiceover[kokoro]

# macOS: Also install espeak-ng
brew install espeak-ng

Install with all backends

uv pip install quickcall-voiceover[all]

# macOS: Also install espeak-ng for Kokoro
brew install espeak-ng

Quick Start

Config Mode

# Piper (default)
quickcall-voiceover config.json --combine

# Kokoro
quickcall-voiceover -b kokoro -v af_heart config.json --combine

Text File Mode

# Piper
quickcall-voiceover -t script.txt -c -o ./output

# Kokoro with af_heart voice
quickcall-voiceover -b kokoro -v af_heart -t script.txt -c -o ./output

Interactive Mode

quickcall-voiceover --text
quickcall-voiceover -b kokoro --text

Show Available Voices

quickcall-voiceover --voices           # Piper voices
quickcall-voiceover -b kokoro --voices # Kokoro voices

Backends

Backend Model Quality Speed Install
Piper Various Medium-High Fast Default
Kokoro Kokoro-82M High Medium [kokoro] extra

CLI Options

quickcall-voiceover [CONFIG] [OPTIONS]

Arguments:
  CONFIG                Path to JSON configuration file

Options:
  -b, --backend         TTS backend: piper, kokoro (default: piper)
  -t, --text [FILE]     Text mode: provide .txt file or use interactively
  -v, --voice VOICE     Voice model (default depends on backend)
  -o, --output DIR      Output directory (default: ./output)
  -m, --models DIR      Models directory (default: ./models)
  -c, --combine         Create a combined audio file from all segments
  --combined-name       Filename for combined output (default: combined_voiceover.wav)
  --voices              Show available voice models and exit
  -h, --help            Show help message

Examples

# Piper (default backend)
quickcall-voiceover config.json --combine
quickcall-voiceover -t script.txt -v en_US-ryan-high -c

# Kokoro backend
quickcall-voiceover -b kokoro -v af_heart config.json -c
quickcall-voiceover -b kokoro -v am_michael -t script.txt -c

# Use config for voice settings, text file for content
quickcall-voiceover voice_config.json -t script.txt -c

# Interactive text mode
quickcall-voiceover --text
quickcall-voiceover -b kokoro --text

Voice Models

Piper Voices

Model ID Name Description
en_US-hfc_male-medium Male (US) Clear male voice (default)
en_US-hfc_female-medium Female (US) Clear female voice
en_US-amy-medium Amy (US) Natural female voice
en_US-joe-medium Joe (US) Natural male voice
en_US-ryan-high Ryan (US) High quality male voice
en_US-lessac-high Lessac (US) High quality female voice
en_GB-alan-medium Alan (UK) British male voice
en_GB-alba-medium Alba (UK) British female voice
en_GB-cori-high Cori (UK) High quality British female

Browse all Piper voices at Piper samples.

Kokoro Voices

Voice ID Name Description
af_heart Heart (US Female) Warm, expressive (default)
af_bella Bella (US Female) Clear American female
af_nicole Nicole (US Female) Professional American female
af_sarah Sarah (US Female) Friendly American female
af_sky Sky (US Female) Bright American female
am_adam Adam (US Male) Clear American male
am_michael Michael (US Male) Professional American male
bf_emma Emma (UK Female) British female
bf_isabella Isabella (UK Female) Elegant British female
bm_george George (UK Male) British male
bm_lewis Lewis (UK Male) Clear British male

More info at Kokoro-82M on HuggingFace.

Configuration

Config File Format

{
  "voice": {
    "backend": "piper",
    "model": "en_US-hfc_male-medium",
    "length_scale": 1.0,
    "noise_scale": 0.667,
    "noise_w": 0.8,
    "sentence_silence": 0.5
  },
  "output": {
    "format": "wav"
  },
  "segments": [
    {
      "id": "01_intro",
      "text": "Welcome to the demo."
    },
    {
      "id": "02_main",
      "text": "This is the main content."
    }
  ]
}

Kokoro Config

{
  "voice": {
    "backend": "kokoro",
    "model": "af_heart",
    "speed": 1.0
  },
  "output": {
    "format": "wav"
  },
  "segments": [
    {
      "id": "01_intro",
      "text": "Welcome to the demo."
    }
  ]
}

Voice Settings

Piper Settings

Field Type Default Description
backend string piper TTS backend
model string en_US-hfc_male-medium Piper voice model
length_scale float 1.0 Speech speed (lower = faster)
noise_scale float 0.667 Voice variation
noise_w float 0.8 Phoneme width noise
sentence_silence float 0.5 Silence between sentences (seconds)

Kokoro Settings

Field Type Default Description
backend string kokoro TTS backend
model string af_heart Kokoro voice ID
speed float 1.0 Speech speed multiplier

Programmatic Usage

from pathlib import Path
from quickcall_voiceover import generate_voiceover, generate_from_text

# Piper (default)
generate_voiceover(
    config_path=Path("config.json"),
    output_dir=Path("./output"),
    combine=True,
)

# Kokoro
generate_voiceover(
    config_path=Path("config.json"),
    output_dir=Path("./output"),
    combine=True,
    backend="kokoro",
    voice="af_heart",
)

# From text lines with Kokoro
lines = [
    "First line of voice over.",
    "Second line of voice over.",
]

generate_from_text(
    lines=lines,
    voice="af_heart",
    output_dir=Path("./output"),
    combine=True,
    backend="kokoro",
)

Docker

Build the image:

docker build -t quickcall-voiceover .

Run with a config file:

docker run -v $(pwd)/config:/config -v $(pwd)/output:/app/output \
  quickcall-voiceover /config/voiceover.json --combine

License

This project is licensed under Apache-2.0.

Note: This tool depends on:

  • Piper TTS - GPL-3.0 license
  • Kokoro - Apache-2.0 license (trained on CC BY licensed datasets)

These are installed as separate dependencies and are not bundled with this package.


Built with ❤️ by QuickCall

Metadata

Release files for quickcall-voiceover 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quickcall-voiceover 0.2.0
File Size Uploaded Provenance
quickcall_voiceover-0.2.0.tar.gz 176.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for quickcall-voiceover 0.2.0
File Interpreter ABI Platform
quickcall_voiceover-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 195.8 kB

Release files / quickcall_voiceover-0.2.0.tar.gz

Download URL quickcall_voiceover-0.2.0.tar.gz
Size 176.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e696d85c9c53351ee2c09343742680c3829e2d1ae05d9f19943805df00c24d42
BLAKE2b-256 checksum
How to use checksums
768f505959b9955690e076c006324bf61e94707cdc01baa954a9b33c148a48cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / quickcall_voiceover-0.2.0-py3-none-any.whl

Download URL quickcall_voiceover-0.2.0-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a5c52a88fd5fe6091e593d19cd6e878e1842f29a85344efc8707017a07e17c1
BLAKE2b-256 checksum
How to use checksums
ce2083d993e45c01a362e31d508174b7c6b24cd397d2c3fe37a6431006cb6538
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for quickcall-voiceover 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page