Utility tool for creating voice-over audio assets for QuickCall videos
Project description
QuickCall VoiceOver
Utility tool for creating voice-over audio assets for QuickCall videos using Piper TTS.
What It Does
QuickCall VoiceOver is a config-driven tool that generates high-quality voice-over audio segments from text. It's designed for creating media assets for QuickCall's video content, but can be used for any TTS needs.
Key Features
- Config-driven: Define all your voice-over segments in a single JSON file
- Automatic model download: Voice models are downloaded automatically on first use
- Combined output: Optionally merge all segments into a single audio file
- CLI tool: Simple one-line command to generate all audio
Installation
pip install quickcall-voiceover
Or with uv:
uv pip install quickcall-voiceover
Getting Started
1. Create a config file
Create a voiceover.json file:
{
"voice": {
"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 of the video."
},
{
"id": "03_outro",
"text": "Thanks for watching!"
}
]
}
2. Generate audio
quickcall-voiceover voiceover.json
This will:
- Download the voice model (first run only)
- Generate WAV files for each segment in
./output/
3. Combined output (optional)
To also create a single combined audio file:
quickcall-voiceover voiceover.json --combine
CLI Options
quickcall-voiceover CONFIG [OPTIONS]
Arguments:
CONFIG Path to the JSON configuration file
Options:
-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)
Configuration Reference
Voice Settings
| Field | Type | Default | Description |
|---|---|---|---|
model |
string | en_US-hfc_male-medium |
Piper voice model name |
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) |
Available Voice Models
See Piper voices for all available models. Common ones:
en_US-hfc_male-medium- Male US English (recommended)en_US-amy-medium- Female US Englishen_GB-alan-medium- Male British English
Segment Format
Each segment requires:
id: Unique identifier (used as filename)text: The text to convert to speech
Programmatic Usage
from quickcall_voiceover import generate_voiceover
from pathlib import Path
generate_voiceover(
config_path=Path("voiceover.json"),
output_dir=Path("./output"),
combine=True,
)
Docker Usage
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
With combined output:
docker run -v $(pwd)/config:/config -v $(pwd)/output:/app/output quickcall-voiceover /config/voiceover.json --combine
Changing Voice Models
To use a different voice, simply change the model field in your config:
{
"voice": {
"model": "en_US-amy-medium"
}
}
The model will be automatically downloaded on first use. Browse all available voices at Piper samples.
License
This project is licensed under Apache-2.0.
Note: This tool depends on Piper TTS which is licensed under GPL-3.0. Piper is installed as a separate dependency and is not bundled with this package.
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 quickcall_voiceover-0.1.0.tar.gz.
File metadata
- Download URL: quickcall_voiceover-0.1.0.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b1e28f23f97f4162d2d628f8e6429b385b0d2c899433993c2652a5b2143245d
|
|
| MD5 |
12f9003ad8cfa953e95b03a67f0badec
|
|
| BLAKE2b-256 |
0421e6c0fa6cfe2d932f34bc5261de9332da186ff9f60c2a2ba7705f4e6c78ae
|
File details
Details for the file quickcall_voiceover-0.1.0-py3-none-any.whl.
File metadata
- Download URL: quickcall_voiceover-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
311666fa92ffbd0e092f35d71bb06a2a625993b0b105bb185ce3f8bd7fb9bc9a
|
|
| MD5 |
fcd7f4a4a82d70d0237e13e1dd8aed5c
|
|
| BLAKE2b-256 |
37784620f0d83b2d63be8d03381435009ec14d5ddd9f2215defb1770ecfb3da2
|