-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
163 lines (152 loc) · 5.66 KB
/
Copy pathconfig.example.yaml
File metadata and controls
163 lines (152 loc) · 5.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
source_language: ru
target_language: sr-Latn
work_directory: work
output_directory: output
tools:
ffmpeg: tools/ffmpeg/ffmpeg.exe
ffprobe: tools/ffmpeg/ffprobe.exe
yt_dlp: tools/yt-dlp/yt-dlp.exe
audio:
asr_sample_rate: 16000
mix_sample_rate: 48000
asr:
# Parakeet won the real Russian-film A/B on speed and hallucination resistance
# at effectively tied CER/WER. whisper.cpp remains a selectable CUDA fallback.
engine: parakeet
executable: tools/whisper/whisper-cli.exe
model: models/ggml-large-v3.bin
# Disabling temperature fallback avoids a common source of confident stock-text
# hallucinations. Physical VAD and the quality gate remain active as a second layer.
extra_args: "--threads 8 --no-fallback"
# Project-local primary backend. setup-tools.bat installs both the native CLI
# and the pinned model; setup-asr-parakeet.bat can verify/reinstall it alone.
parakeet_executable: tools/whisper/parakeet-cli.exe
parakeet_model: models/ggml-parakeet-tdt-0.6b-v3-q8_0.bin
parakeet_extra_args: "--threads 8"
parakeet_segment_max_seconds: 8
tiny_diarize: false
vad: true
# Physical Silero windows keep wall-clock timestamps stable. embedded_vad is
# retained only as a legacy diagnostic mode because whisper.cpp can stretch
# embedded-VAD segments across removed silence.
vad_executable: tools/whisper/whisper-vad-speech-segments.exe
embedded_vad: false
vad_model: models/ggml-silero-v6.2.0.bin
vad_threshold: 0.5
vad_min_silence_ms: 250
vad_max_speech_seconds: 30
# Gaps below this threshold stay in one linguistic phrase; longer pauses become
# hard scheduling boundaries which translation/TTS are not allowed to erase.
vad_phrase_silence_ms: 250
vad_speech_padding_ms: 80
# Whisper can stretch a segment timestamp across a long silent interval.
# Refine only boundaries that fall inside measured silence in the ASR track.
refine_timestamps: true
timestamp_silence_threshold_db: -35
timestamp_min_silence_ms: 250
timestamp_speech_padding_ms: 50
chunk_minutes: 15
chunk_overlap_seconds: 3
retry_chunk_minutes: 3
max_context_tokens: 0
max_pattern_repeats: 8
max_segments_per_minute: 45
separation:
mode: demucs
engine: demucs
executable: tools/separation/.venv/Scripts/python.exe
model: htdemucs_ft
device: cuda
# Softer, reconstruction-safe separation. Higher shifts/overlap improve stability
# at the cost of a slower separation stage.
other_method: minus
shifts: 2
overlap: 0.50
arguments: '-m demucs --two-stems vocals -n "{model}" --device "{device}" -o "{output_dir}" "{input}"'
timeout_hours: 12
prepare:
merge_below_seconds: 2.2
max_merged_seconds: 10.0
max_gap_seconds: 0.65
preserve_pause_seconds: 0.25
source_subtitles:
maximum_download_mb: 16
match_padding_seconds: 1.0
local_search_seconds: 8.0
maximum_offset_seconds: 120
minimum_time_scale: 0.95
maximum_time_scale: 1.05
minimum_alignment_score: 0.15
# Keep real ASR-only material (for example songs omitted by the SRT).
# Duplicate/corrupt ASR fragments inside a matched SRT cue are still replaced.
preserve_unmatched_asr: true
translation:
# ollama, codex-cli, or claude-cli. CLI engines use the authenticated
# desktop subscription by default and do not use API-key environment variables.
engine: codex-cli
# dub-video.bat first reuses a running system Ollama on 127.0.0.1:11434.
# This isolated project-local endpoint remains the fallback when none is running.
endpoint: http://127.0.0.1:11435
model: translategemma:12b
# Leave these empty to use "codex"/"claude" from PATH and the CLI's default model.
cli_executable:
cli_model:
cli_extra_args:
cli_timeout_minutes: 20
cli_subscription_only: true
batch_size: 6
cli_batch_size: 80
cli_context_segments: 20
temperature: 0.0
context_length: 8192
max_output_tokens: 2048
think: false
prompt: prompts/translation-system.txt
shorten_prompt: prompts/shorten-system.txt
# Optional <target_language>.txt rules are appended to translate, verify and shorten prompts.
target_prompt_directory: prompts/targets
# A second model call is optional. Deterministic script/shape checks and retries
# still run when this is false; enable it only when the selected model benefits.
verify: false
verification_prompt: prompts/verify-translation-system.txt
max_retries: 2
# Local Serbian-capable AR + diffusion TTS. The persistent worker loads the
# 4-bit model once per stage and uses about 8 GB VRAM. Single mode creates one
# stable neutral profile when voice is empty. Speakers mode uses consented
# voices/SPEAKER_XX.wav references or stable generated per-speaker profiles.
tts:
engine: kugelaudio
voice:
voice_mode: single
speaker_voice_directory: voices
seed: 20260712
executable: tools/tts/kugelaudio/.venv/Scripts/python.exe
# Deferring the first end token by one acoustic frame lets KugelAudio render
# the final phoneme release and then stop naturally instead of cutting at an
# active 133 ms frame boundary.
arguments: 'scripts/kugelaudio-worker.py --model kugelaudio/kugelaudio-0-open --cache tools/tts/kugelaudio/cache --4bit --cfg-scale 3.5 --end-tail-frames 1'
timeout_minutes: 30
timing:
min_tempo: 0.88
max_tempo: 1.22
hard_max_tempo: 1.60
short_phrase_seconds: 2.0
short_phrase_hard_max_tempo: 2.0
max_overflow_seconds: 0.6
max_shorten_attempts: 3
trim_tts_silence: true
silence_threshold_db: -45
silence_padding_ms: 50
# Guaranteed post-roll before tempo fitting; prevents clipped final phonemes.
tail_padding_ms: 160
mix:
original_volume: 1.0
duck_volume: 0.06
voice_volume: 1.0
original_voice_volume: 0.10
attack_ms: 150
release_ms: 300
source_guard_ms: 250
video:
audio_bitrate: 192k
overwrite: true