Releases: ThioJoe/Auto-Synced-Translated-Dubs
Releases · ThioJoe/Auto-Synced-Translated-Dubs
0.20.1
📈 [0.20.0] New Features and Improvements
- New config option
increase_max_chars_for_extreme_speeds
which will temporarily increase the maximum number of characters per line for lines that have extreme speaking speeds, so they are more likely to be combined with lower speed subtitle - Added a check while building the audio file to alert the user if any clips might run too long and possibly overlap with the next clip so you can check the file after generation.
- The script will now auto calculate the average character-rate of the entire video and use that as the char rate goal.
- The user can change this behavior in the config file with the "speech_rate_goal" setting if they want.
- This just means the speech speed might be slightly more natural on average
- Now displays message to tell user that it's downloading batch audio files
- Now when in debug mode, it will put out a proper completed subtitle file, and a separate debug version of the file.
- Fixed a long standing un-noticed bug that was causing combined subtitle lines to be less than ideally optimized
- Speech speeds should be significantly improved on average across all languages
- Addressed some odd punctuation issues where the resulting subtitles would begin with a period or comma, have double punctuation, etc.
🟢 0.20.0 → 0.20.1:
- Updated Azure voices list link in batch.ini
- Updated requirements.txt with correct soundfile version and added aiohttp
0.20.0
📈 [0.20.0] New Features and Improvements
- New config option
increase_max_chars_for_extreme_speeds
which will temporarily increase the maximum number of characters per line for lines that have extreme speaking speeds, so they are more likely to be combined with lower speed subtitle - Added a check while building the audio file to alert the user if any clips might run too long and possibly overlap with the next clip so you can check the file after generation.
- The script will now auto calculate the average character-rate of the entire video and use that as the char rate goal.
- The user can change this behavior in the config file with the "speech_rate_goal" setting if they want.
- This just means the speech speed might be slightly more natural on average
- Now displays message to tell user that it's downloading batch audio files
- Now when in debug mode, it will put out a proper completed subtitle file, and a separate debug version of the file.
- Fixed a long standing un-noticed bug that was causing combined subtitle lines to be less than ideally optimized
- Speech speeds should be significantly improved on average across all languages
- Addressed some odd punctuation issues where the resulting subtitles would begin with a period or comma, have double punctuation, etc.
0.19.0
📈 [0.19.0] New Features and Improvements
-
Reduced fragmented TTS speech thanks to new logic in the subtitle combining function
- Controlled by new option in
config.ini
calledprioritize_avoiding_fragmented_speech
. On by default but can be disabled. - This will reduce the amount of times the TTS voice will sound like it's starting a new sentence even though it's in the middle of a sentence
- Controlled by new option in
-
Add config option
subtitle_gap_threshold_milliseconds
, an advanced setting for controlling the largest gap between subtitle line timestamps where the script will consider combining them. SubtitleTrackRemover.py
now has the option to also remove a videos' localizations (aka translated titles and descriptions)- Now the script will also combine subtitles and output an srt file, even if the original language is the same as the target language.
0.18.1
📝 [0.18.0] Major Fix / Improvement:
-
Fix Fragmented Translations - Now Much Higher Quality Translations
- Until now the script was really only able to translate each line of subtitles individually. This often resulted in extremely fragmented and awkward sentences, and poor translator word choice because of lack of context
- Now, a huge amount (if not all) of the subtitles will be fed to the translator as a single string so the translator will have full context and will have no fragmented sentences
- On a technical level, this took some weird workarounds where I put HTML tag markers at the end of each subtitle line before combining it into the string, such that the translator wouldn't remove them after the fact, so they could be used to put the exact part of the translation back in the correct subtitle timestamp
- This might work better with DeepL, which has more native support for this technique. Google Translate took some extra janky workarounds so if you have trouble with it let me know and I can try to further improve it.
📈 [0.18.0] Other Improvements
-
Added
TranscriptTranslator.py
to the tools folder. This simply lets you translate a basic transcript file as opposed to a subtitle file into multiple languages.
🟢 0.18.0 → 0.18.1:
- Fixed error caused by translator sometimes returning blank lines in some spots
0.18.0
📝 [0.18.0] Major Fix / Improvement:
-
Fix Fragmented Translations - Now Much Higher Quality Translations
- Until now the script was really only able to translate each line of subtitles individually. This often resulted in extremely fragmented and awkward sentences, and poor translator word choice because of lack of context
- Now, a huge amount (if not all) of the subtitles will be fed to the translator as a single string so the translator will have full context and will have no fragmented sentences
- On a technical level, this took some weird workarounds where I put HTML tag markers at the end of each subtitle line before combining it into the string, such that the translator wouldn't remove them after the fact, so they could be used to put the exact part of the translation back in the correct subtitle timestamp
- This might work better with DeepL, which has more native support for this technique. Google Translate took some extra janky workarounds so if you have trouble with it let me know and I can try to further improve it.
📈 [0.18.0] Other Improvements
-
Added
TranscriptTranslator.py
to the tools folder. This simply lets you translate a basic transcript file as opposed to a subtitle file into multiple languages.
0.17.3
🎉 [0.17.0] New Features:
-
Support for Eleven Labs voice synthesis
- You can now use Eleven Labs for voice synthesis. Simply use the 'Voice ID' of the voice as the voice name
- Note that Eleven Labs doesn't support SSML so you don't have as much control
- Be sure to update your
cloud_service_settings.ini
file with the latest version
-
New Default Audio Stretching: FFMPEG
- I've found that FFMPEG actually results in much higher quality stretched audio than Rubberband, so I've added that and set it as default
- You can set it manually with the config option
local_audio_stretch_method
- The FFMPEG result is actually pretty close to Two Pass Synthesis so that might not be necessary unless you really want
- Be sure to update your
config.ini
file with the latest version
0.17.0 → 0.17.2:
- Now provides some more detail when ElevenLabs returns an error and stops the script from proceeding. Also checks if ElevenLabs API key is set when that TTS service is chosen
🟢 0.17.2 → 0.173:
- Improved error messaging for ElevenLabs when invalid voice is set
- Fixed unnecessary extra error messaging from test line that I forgot to remove
- Consolidated lots of code in the translation functions which will make it easier to add additional translation services
0.17.2
🎉 [0.17.0] New Features:
-
Support for Eleven Labs voice synthesis
- You can now use Eleven Labs for voice synthesis. Simply use the 'Voice ID' of the voice as the voice name
- Note that Eleven Labs doesn't support SSML so you don't have as much control
- Be sure to update your
cloud_service_settings.ini
file with the latest version
-
New Default Audio Stretching: FFMPEG
- I've found that FFMPEG actually results in much higher quality stretched audio than Rubberband, so I've added that and set it as default
- You can set it manually with the config option
local_audio_stretch_method
- The FFMPEG result is actually pretty close to Two Pass Synthesis so that might not be necessary unless you really want
- Be sure to update your
config.ini
file with the latest version
🟢 0.17.0 → 0.17.2:
- Now provides some more detail when ElevenLabs returns an error and stops the script from proceeding. Also checks if ElevenLabs API key is set when that TTS service is chosen
0.17.0
🎉 [0.17.0] New Features:
-
Support for Eleven Labs voice synthesis
- You can now use Eleven Labs for voice synthesis. Simply use the 'Voice ID' of the voice as the voice name
- Note that Eleven Labs doesn't support SSML so you don't have as much control
- Be sure to update your
cloud_service_settings.ini
file with the latest version
-
New Default Audio Stretching: FFMPEG
- I've found that FFMPEG actually results in much higher quality stretched audio than Rubberband, so I've added that and set it as default
- You can set it manually with the config option
local_audio_stretch_method
- The FFMPEG result is actually pretty close to Two Pass Synthesis so that might not be necessary unless you really want
- Be sure to update your
config.ini
file with the latest version
0.16.0
🎉 [0.16.0] New Features:
-
Added support for Rubberband on MacOS
- You can now use the MacOS version of the rubberband binaries (downloaded from the same page as the windows ones).
- Running the script on MacOS should now have equal feature parity between Windows and MacOS
[0.16.0] 📈 Improvements:
-
Fixed bug on MacOS preventing it from running because it was trying to import Windows sound module
-
Fixed bug where in a few places, byte files were being opened with UTF-8 encoding
0.15.0
🎉 [0.15.0] Major New Features:
-
Use YouTube-Translated and Synced Subtitles
- Through use of the new tool YouTube_Synced_Translations_Downloader.py, you can have YouTube automatically translate the subtitles of the original language file, including keeping the timestamps synced.
- Though this requires you to use YouTube's system for the translation (which presumably is Google Translate), it should eliminate translation errors arising from the translation of sentences that had been split across subtitle lines.
- It uses the same language list found in batch.ini used elsewhere.
- Add Translated Transcription Uploader in tools folder:
TranscriptAutoSyncUploader.py
- Allows user to upload pre-translated transcriptions for a YouTube video. There should already be a native transcript / subtitles for the video. YouTube will sync the translated subtitles to the correct times.
📝 [0.15.0] Other New Features:
- Title Translator now reads translation modifications from the SSML_Customization folder, such as manual translations and the dont_translate_phrases list
- Script now plays default system sound upon completion