A Python package (+CLI) for voice over subtitles, with the ability to embed in video, audio ducking, and dynamic voice changer for a single track.
Project description
Package for voice over subtitles:
- with the ability to embed in video,
- audio ducking,
- dynamic voice changer for a single track. Add "!: voice name" at the beginning of the subtitle line. (Applies to all subsequent ones)
pip install -U PyFastDub
Youtube support
Youtube argument group
pip install PyFastDub[YT]
Subtitles translate
Translate subtitles argument group
pip install PyFastDub[TR]
Usage
python -m FastDub --help
usage: FastDub [-h] [-rc {0,1,2}] [-rf CLEANUP_LEVEL] [-l LANGUAGE] [-tc THREADS_COUNT] [-i INPUT] [-vf VIDEO_FORMAT]
[-sf SUBTITLES_FORMAT] [-En EXCLUDE [EXCLUDE ...]] [-Eu EXCLUDE_UNDERSCORE]
[-sc | --sidechain | --no-sidechain] [-sc-msl MIN_SILENCE_LEN] [-sc-st SILENCE_THRESH]
[-sc-gdo GAIN_DURING_OVERLAY]
[-v {microsoft irina desktop - russian,microsoft zira desktop - english united states),microsoft david desktop - english (united states,aleksandr-hq,arina,artemiy,evgeniy-eng,evgeniy-rus,lyubov,marianna,mikhail,pavel,tatiana,victoria,vitaliy,volodymyr,yuriy}]
[-a ALIGN] [-ll {trace,debug,verbose,info,warning,error,fatal,panic,quiet}]
[-y | --confirm | --no-confirm] [-yt] [-ak API_KEYS [API_KEYS ...]] [-tr]
[--rewrite-srt | --no-rewrite-srt]
[-ts {alibaba,argos,baidu,bing,caiyun,deepl,google,iciba,iflytek,itranslate,papago,reverso,sogou,tencent,translateCom,utibet,yandex,youdao}]
FastDub is a tool for dubbing videos by subtitle files.
options:
-h, --help show this help message and exit
-rc {0,1,2}, --remove-cache {0,1,2}
Remove all cache (_cached_texts directory) files
0 - No remove cache
1 - Delete cache before voice acting
2 - Delete cache after voice acting (default)
-rf CLEANUP_LEVEL, --cleanup-level CLEANUP_LEVEL
Cleanup level 0 = No removing any files
> 0 remove audio from video (default)
> 1 = remove dubbed audio if video exists
> 2 = reomve dubbed cache files
-l LANGUAGE, --language LANGUAGE
Subtitles language (ru)
-tc THREADS_COUNT, --threads-count THREADS_COUNT
Process count to download (pass to cpu count, < 2 to disable)
*N = N * cpu count
Input:
-i INPUT, --input INPUT
Input directory/YouTube Playlist/Video URL.
-vf VIDEO_FORMAT, --video-format VIDEO_FORMAT
Video format (default .mp4).
-sf SUBTITLES_FORMAT, --subtitles-format SUBTITLES_FORMAT
Subtitles format (default .srt).
Audio Ducking:
-sc, --sidechain, --no-sidechain
Enable audio side chain compress (ducking) (default: True)
-sc-msl MIN_SILENCE_LEN, --min-silence-len MIN_SILENCE_LEN, --attack MIN_SILENCE_LEN
Minimum silence length in ms (default 100)
-sc-st SILENCE_THRESH, --silence-thresh SILENCE_THRESH
Silence threshold in dB
-sc-gdo GAIN_DURING_OVERLAY, --gain-during-overlay GAIN_DURING_OVERLAY
Gain during overlay in dB (-11)
Voicer:
-v {microsoft irina desktop - russian,microsoft zira desktop - english (united states),microsoft david desktop - english (united states),aleksandr-hq,arina,artemiy,evgeniy-eng,evgeniy-rus,lyubov,marianna,mikhail,pavel,tatiana,victoria,vitaliy,volodymyr,yuriy}, --voice {microsoft irina desktop - russian,microsoft zira desktop - english (united states),microsoft david desktop - english (united states),aleksandr-hq,arina,artemiy,evgeniy-eng,evgeniy-rus,lyubov,marianna,mikhail,pavel,tatiana,victoria,vitaliy,volodymyr,yuriy}
SAPI voice for voice acting.
-a ALIGN, --align ALIGN
Audio fit align
1 = right
2 = center (default)
FFMpeg Output:
-ll {trace,debug,verbose,info,warning,error,fatal,panic,quiet}, --loglevel {trace,debug,verbose,info,warning,error,fatal,panic,quiet}
FFMpegWrapper loglevel
-y, --confirm, --no-confirm
Don't ask for confirmation (default: True)
Youtube:
-yt, --youtube
-ak API_KEYS [API_KEYS ...], --api-keys API_KEYS [API_KEYS ...]
Youtube API key/s
Translate subtitles:
-tr, --translate Translate input subtitles files
--rewrite-srt, --no-rewrite-srt
Rewrite input subtitles files.
If not, add "_" to the beginning of the original subtitle file. (default: False)
-ts {alibaba,argos,baidu,bing,caiyun,deepl,google,iciba,iflytek,itranslate,papago,reverso,sogou,tencent,translateCom,utibet,yandex,youdao}, --translate-service {alibaba,argos,baidu,bing,caiyun,deepl,google,iciba,iflytek,itranslate,papago,reverso,sogou,tencent,translateCom,utibet,yandex,youdao}
Subtitle translation service. (default google)```
If the voice set after !: is not selected during voiceover, clear the cache with the -rc argument
Example
python -m FastDub DirToDub -v "Yuriy" --no-ducking -vf mkv
name is any name.
DirToDub:
- name.srt
- name.mkv
- name2.srt
- name2.mkv
- andit.srt
- andit.mkv
Then: name and name2 will be announced, and the results will be saved to a folder with the appropriate name.
YT Example
python -m FastDub https://youtu.be/DD5UKQggXTc -yt -v "Yuriy" -l ru
Translate Example
python -m FastDub DirToDub -tr -ts iciba -l ru
python -m pydoc -w FastDub
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
File details
Details for the file PyFastDub-2.4.8.tar.gz
.
File metadata
- Download URL: PyFastDub-2.4.8.tar.gz
- Upload date:
- Size: 34.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1826eedb224286a4a5795e039eca3eb3869aab578f81b8882b37e2ae1c08086b |
|
MD5 | 9a0578bac247bafa0e06aa6be14da8bb |
|
BLAKE2b-256 | 099b707dd27e429a111cea11a43067618ef1970c24b3fd9b7856d59d7ddbbea7 |
File details
Details for the file PyFastDub-2.4.8-py3-none-any.whl
.
File metadata
- Download URL: PyFastDub-2.4.8-py3-none-any.whl
- Upload date:
- Size: 42.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31f1e14c362ca2527f2bafdb04fb6fd7eb2dabb920dd40bd0a568e147ea32b1b |
|
MD5 | 92d8675b6ebe2046f5662f64e8abd782 |
|
BLAKE2b-256 | dc39f6856e03984e7aa4d562d627bb3f3d7e2b28e1031565651ce389d10e4e84 |