Skip to main content

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 English
  • en_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


Download files

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

Source Distribution

quickcall_voiceover-0.1.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

quickcall_voiceover-0.1.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

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

Hashes for quickcall_voiceover-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0b1e28f23f97f4162d2d628f8e6429b385b0d2c899433993c2652a5b2143245d
MD5 12f9003ad8cfa953e95b03a67f0badec
BLAKE2b-256 0421e6c0fa6cfe2d932f34bc5261de9332da186ff9f60c2a2ba7705f4e6c78ae

See more details on using hashes here.

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

Hashes for quickcall_voiceover-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 311666fa92ffbd0e092f35d71bb06a2a625993b0b105bb185ce3f8bd7fb9bc9a
MD5 fcd7f4a4a82d70d0237e13e1dd8aed5c
BLAKE2b-256 37784620f0d83b2d63be8d03381435009ec14d5ddd9f2215defb1770ecfb3da2

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