| Crates.io | voicepeak-cli |
| lib.rs | voicepeak-cli |
| version | 0.6.0 |
| created_at | 2025-06-28 10:01:25.308434+00 |
| updated_at | 2025-07-10 12:57:07.130141+00 |
| description | A command-line interface wrapper for VOICEPEAK text-to-speech software |
| homepage | https://github.com/petamorikei/voicepeak-cli |
| repository | https://github.com/petamorikei/voicepeak-cli |
| max_upload_size | |
| id | 1729696 |
| size | 71,463 |
ζ₯ζ¬θͺ | English
A command-line interface wrapper for VOICEPEAK text-to-speech software with preset management and automatic audio playback.
This wrapper enhances the original VOICEPEAK CLI with several powerful features:
echo "text" | vp--verbose to see debug info)~/.config/vp/config.toml/Applications/voicepeak.app/brew install mpv)brew install ffmpeg)cargo install voicepeak-cli
cargo install --path .
# Simple text-to-speech (requires preset or --narrator)
vp "γγγ«γ‘γ―γδΈηοΌ"
# With explicit narrator
vp "γγγ«γ‘γ―γδΈηοΌ" --narrator "ε€θ²θ±ζ’¨"
# Save to file instead of auto-play
vp "γγγ«γ‘γ―γδΈηοΌ" --narrator "ε€θ²θ±ζ’¨" -o output.wav
# Read from file
vp -t input.txt --narrator "ε€θ²θ±ζ’¨"
# Pipe input
echo "γγγ«γ‘γ―γδΈηοΌ" | vp --narrator "ε€θ²θ±ζ’¨"
cat document.txt | vp -p karin-happy
# List available presets
vp --list-presets
# Use a preset
vp "γγγ«γ‘γ―γδΈηοΌ" -p karin-happy
# Override preset settings
vp "γγγ«γ‘γ―γδΈηοΌ" -p karin-normal --emotion "happy=50"
# Control speech parameters
vp "γγγ«γ‘γ―γδΈηοΌ" --narrator "ε€θ²θ±ζ’¨" --speed 120 --pitch 50
# List available narrators
vp --list-narrator
# List emotions for a specific narrator
vp --list-emotion "ε€θ²θ±ζ’¨"
# Allow automatic text splitting (default)
vp "very long text..."
# Strict mode: reject texts longer than 140 characters
vp "text" --strict-length
# Batch mode: generate all chunks first, merge, then play (default)
vp "long text" --playback-mode batch
# Sequential mode: generate and play chunks one by one
vp "long text" --playback-mode sequential
# Long text file output (uses ffmpeg to merge chunks)
vp "very long text" -o output.wav
# For sequential playback without ffmpeg
vp "long text" --playback-mode sequential
Configuration is stored in ~/.config/vp/config.toml. The file is automatically created on first run.
default_preset = "karin-custom"
[[presets]]
name = "karin-custom"
narrator = "ε€θ²θ±ζ’¨"
emotions = [
{ name = "hightension", value = 10 },
{ name = "sasayaki", value = 20 },
]
pitch = 30
speed = 120
[[presets]]
name = "karin-normal"
narrator = "ε€θ²θ±ζ’¨"
emotions = []
[[presets]]
name = "karin-happy"
narrator = "ε€θ²θ±ζ’¨"
emotions = [{ name = "hightension", value = 50 }]
default_preset: Optional. Preset to use when no -p option is specifiedpresets: Array of voice presetsname: Unique preset identifiernarrator: Voice narrator nameemotions: Array of emotion parameters with name and valuepitch: Optional pitch adjustment (-300 to 300)speed: Optional speed adjustment (50 to 200)Usage: vp [OPTIONS] [TEXT]
Arguments:
[TEXT] Text to say (or pipe from stdin)
Options:
-t, --text <FILE> Text file to say
-o, --out <FILE> Path of output file (optional - will play with mpv if not specified)
-n, --narrator <NAME> Name of voice
-e, --emotion <EXPR> Emotion expression (e.g., happy=50,sad=50)
-p, --preset <NAME> Use voice preset
--list-narrator Print voice list
--list-emotion <NARRATOR> Print emotion list for given voice
--list-presets Print available presets
--speed <VALUE> Speed (50 - 200)
--pitch <VALUE> Pitch (-300 - 300)
--strict-length Reject input longer than 140 characters (default: false, allows splitting)
--playback-mode <MODE> Playback mode: sequential or batch (default: batch)
-v, --verbose Enable verbose output (show VOICEPEAK debug messages)
-h, --help Print help
-V, --version Print version
When multiple sources specify the same parameter, the priority order is:
For example:
vp "text" -p my-preset --pitch 100 uses pitch=100 (CLI override)vp "text" -p my-preset uses preset's pitch valuevp "text" --narrator "voice" uses no pitch adjustmentThis project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please see CONTRIBUTING.md for detailed guidelines on how to contribute to this project.