Skip to content

Releases: ThioJoe/Auto-Synced-Translated-Dubs

0.21.0

28 Jan 01:07
0d67c6a
Compare
Choose a tag to compare

🛠️ [0.21.0] Fixes

  • Updated calls to Azure TTS Batch API so it should work again with the latest API version
  • Added check for division by zero when calculating speech rate goal

📈 [0.21.0] New Features and Improvements

  • Added force_always_stretch option to config, which will make it stretch the audio files after receiving from the TTS service even if it usually supports exact length, like Azure. Should come in handy if certain voices don't support specifying the exact length like some preview voices in Azure.

[0.21.0] Other Changes

  • Some behind the scene changes to type hinting and enums instead of hard coded string references to improve reliability when making changes in the future

0.20.1

12 Feb 16:12
1aa14ff
Compare
Choose a tag to compare

📈 [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

29 Jan 02:24
8b4c0be
Compare
Choose a tag to compare

📈 [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

21 Jan 00:52
c84b159
Compare
Choose a tag to compare

📈 [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 called prioritize_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
  • 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

20 Jan 00:38
078822d
Compare
Choose a tag to compare

📝 [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

19 Jan 23:40
f8cc6fc
Compare
Choose a tag to compare

📝 [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

15 Jan 02:00
4f3c12b
Compare
Choose a tag to compare

🎉 [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

12 Jan 18:57
323fda9
Compare
Choose a tag to compare

🎉 [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

11 Jan 18:20
c694e2b
Compare
Choose a tag to compare

🎉 [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

06 Jan 18:20
e1feb4c
Compare
Choose a tag to compare

🎉 [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