Skip to content

Releases: cyberofficial/Synthalingua

Feature Update 1.1-A4.5 | More Precision with Translations

26 Sep 19:34
59ba03f
Compare
Choose a tag to compare

Synthalingua GUI - Change Log

Portable + GUI is at itch.io! Pick it up there.

-- Please allow some time for itch.io to process the update --

This release brings a few key improvements and bug fixes:

What's Changed

  • Changed the License from GPL to AGPL with approval from contributors -> Resolves #139
  • A new feature has been added to the Web Browser Config Settings page, allowing you to specify your local network (LAN) IP address for streaming purposes.
    • This change makes it easier to set up and share content within a local network.
  • Added a new section in the "Text Settings" menu for configuring how the program handles found phrases.
  • Implemented logic to convert word blocked text to asterisks (*) or leave it as an empty string when a match is found.
  • A border will now appear around the captions box making it easier to click and drag and resize it.
  • Added new argument "--fp16". This allows for more accurate information being passed to the process. This will grant the AI the ability to process more information at the cost of speed. You will not see heavy impact on stronger hardware. (Precision mode check box in the UI)
  • You can now choose between 2 12GB Models, V2 and V3, using the ram argument flag like normal, but instead of 12gb, it's "12gb-v2", "12gb-v3" now. Combine 12gb-v3 + fp16 Flags (Precision Mode on the GUI) for the ultimate experience if you know what you are doing.
    • 12GB v2 - More Stable, Much Faster, Good for High End GTX devices, Overkill for RTX Devices. Beginner Friendly.
      • I suggest using the V2 Version only if don't know what you are doing in the land of soundscapes.
    • 12GB v3 - More Accurate, Tiny bit Slower, More sensitive to sounds, Good for High End RTX devices and Good Audio Setups and audiophiles.
      • If you don't know what virtual audio cables are, sound suppression systems are and how to set them up, then stick with v2.
  • The Stream Transcription module had some fixes applied onto it.
  • Subtitle Creator will work with FP16 mode and missing subflag was added.
  • GUI Has new elements to handle the new arguments. Also some minor spelling mistakes were zapped.
  • Microphone Mode had some improvements made and fixes applied to it.

Code Base Changes

  • Removed unnecessary comments and redundant assignments in event handlers.
  • Corrected indentation for better readability.
  • Added missing End If statements where they were implied before.
  • Simplified conditions checking by directly assigning values to variables within the event handler logic.
  • Fixed typos and corrected variable names as necessary.
  • Implemented mouse hover and leave events for Panel1 with appropriate cursor changes.
  • Removed commented out TODOs, application title formatting, version information formatting,
    and copyright text handling as they are no longer needed. Simplified the form load event.
  • Adjusted the size of the "Language Mode" menu item.
  • Add version number to MainUI_Load event handler
  • Updated publish profile to reflect new build date and time
  • Updated project version and assembly versions (1.1.4.44)
  • Added repository URL and type to the project properties

Full Changelog: 1.0.99995a443...1.0.99995a445

Synthalingua - Change Log | GUI Update and Custom Model Directory

18 Sep 07:46
8727723
Compare
Choose a tag to compare

Synthalingua Wrapper and Script - Change Log

Portable + GUI is at itch.io! Pick it up there.

-- Please allow some time for itch.io to process the update --

This release brings a few key improvements and bug fixes:

New Feature:

  • Custom Model Directory: You can now specify a custom directory for storing downloaded models using the --model_dir argument. This is useful for organizing models or using a different drive for storage. Requested from #135

Improvements:

  • Robust Version Checking: The version checker module is now more robust, handling various HTTP status codes gracefully and providing more informative error messages when update checks fail.

Bug Fixes:

  • Several minor bug fixes and code optimizations.

Automated Notes:

Full Changelog: 1.0.99995a442...1.0.99995a443

Synthalingua - Change Log | GUI Update and Set Up Fixes

08 Aug 07:43
4ad7486
Compare
Choose a tag to compare

Synthalingua Wrapper - Change Log

Portable + GUI is at itch.io! Pick it up there.

-- Please allow some time for itch.io to process the update --


Notable Change: The GUI Application name is now "SynthalinguaGUI.exe"

*GUI Version: 1.1.4.42

Added:

  • Loading Screen: Implemented a new loading screen that displays application title, version, and build information while the application initializes. The loading screen is now the application's splash screen and is set to display for at least 3 seconds to allow time for the application properly load and show the user something is happening.
  • GUI: The application's window title has been changed from "Synthalingua - Shortcut Maker" to "Synthalingua GUI".
  • Automatic Detection: The application now attempts to automatically detect the required program files (transcribe_audio.exe or transcribe_audio.py) in the current directory. If they are not found, the user is prompted to manually locate them.

Changed:

  • UI Layout: Minor adjustments to the UI layout, including the addition of a "Search For Program" button for locating the main program file.
  • Dependency Management:
    • Updated setup.bash script to automatically install required packages, including PyTorch with CUDA support, and handle potential Python version issues.
    • Updated set_up_env.py script to automatically find FFmpeg and yt-dlp.
    • Updated yt-dlp to version 2024.08.06.

Removed:

  • Icon: Removed the previous application icon (684849.ico).
  • Publish Profiles: Removed the "Dev_Build" and "Main Build" publish profiles.

Fixed:

  • CUDA Support: Fixed an issue where the setup.bash script was installing the non-GPU version of Whisper by default. The script now explicitly installs the CUDA-enabled PyTorch packages.

Notes:

  • This update focuses on improving the user experience by simplifying setup and providing a more polished presentation.
  • The updated scripts automate the process of setting up the necessary tools, reducing the potential for user error.

1.0.99997 | Alpha 4.4 for 1.1 | Current: Version 1.1-A4.4

05 Aug 02:26
Compare
Choose a tag to compare

Portable + GUI is at itch.io! Pick it up there.

-- Please allow some time for itch.io to process the update --


Version 1.1-A 4.4

This update focuses on enhancing the user experience for set up and portable issue, fixing bugs, improving compatibility, and simplifying the setup process.

Added:

  • New application icon Synthalingua GUI now has a distinctive icon.
  • Automatic dependency setup: A new script, set_up_env.py, automates the download and extraction of FFmpeg and yt-dlp, simplifying the initial setup process. This also has a windows exe file in the portable version.

Changed:

  • Minimum Supported Windows Version: The portable version of the GUI now requires Windows 10 (build 10.0.17763 or later) due to a change in .NET framework requirements. Windows 7 is no longer supported for the portable GUI.
  • Code of Conduct: The project's Code of Conduct has been updated to be more comprehensive and inclusive, promoting a welcoming and respectful community. Read Here
    * Updated setup.bat Script: Improved the setup.bat script to handle Python installations not found in the system's PATH and to provide clearer instructions to users.

Fixed:

  • Batch Script for FFmpeg Path: The batch script responsible for setting the FFmpeg path has been rewritten for clarity and efficiency.
  • Fixed #119
  • Fixed #121

Removed:

  • Manual FFmpeg/yt-dlp Setup: Users no longer need to manually download and extract FFmpeg, 7zr, or yt-dlp. The new set_up_env.py script handles this automatically.
  • Outdated PyTorch CUDA Packages: The setup script no longer installs CUDA-specific PyTorch packages, preventing potential compatibility issues.

We are committed to improving Synthalingua and welcome feedback and contributions from the community.

1.0.99996 | Alpha 4.3 for 1.1 | Current: Version 1.1-A4.3

10 Jul 00:44
Compare
Choose a tag to compare

Portable + GUI is at itch.io! Pick it up there.

Version 1.1-A 4.3

This update primarily focuses on enhancements to the GUI experience, subtitle window functionality, and a few minor bug fixes.

GUI Enhancements

  • Improved caption window:

    • Dynamic text building: The caption window now dynamically builds the displayed text based on the user's selection of original, translated, or transcribed captions. This provides a cleaner and more organized display.
    • Resizing capabilities: Users can now resize the caption window by clicking and dragging its edges, providing more flexibility in how the captions are displayed.
    • Movement by dragging: The caption window can be moved around the screen by clicking and dragging the header text, making it easier to position the captions as desired.
    • Background toggle: A menu option has been added to toggle the background of the caption window on or off, allowing for better integration with other applications.
    • Auto-size mode: Users can now toggle the auto-size mode for the captions on and off. When on, the caption box will automatically resize to fit the text content.
    • Updated Help Menu: The help menu (?) in the caption window has been updated to provide more information on the available features and their usage.
  • Visual Cues for Resizing: The mouse cursor now changes to indicate resizing options when hovering over the edges of the caption window, providing a more intuitive experience.

  • Transparency Settings: Options have been added to control the transparency of the caption window when in "Plant" mode, allowing for better visual integration with other applications.

  • Minor Bug Fixes:

    • Fixed a minor bug related to loading the blacklist file path.
    • Addressed a potential issue where the caption window might not correctly display dynamic text when the form is closing.

Version 1.1-A4

Full Fixes located at #112

What's Changed

Changelog

Remote Microphone Server (Start of 1.1)

  • Remote Microphone Server
  • Fixed an issue where the stream module would show blank text if nothing is said.
  • RMS Password Protected
  • Made the stream module Multi-Threaded
  • GUI updated to suit the HLS password system
  • Fixed some issues with latency

Ignore sending data to API if data is empty

  • Will not update API call if data is empty.

Journey to 1.1

  • Remote Microphone Server
  • RMS Password Protected
  • Made the stream module Multi-Threaded
  • GUI updated to suit the HLS password system

GUI Wrapper Update

  • Added save functionality for HLS additional elements
  • Added icons to bring up GitHub or Itch easily.
  • Unchecks wipe setting checkbox if user canceled the wipe.

Fixed minor error

  • Forgot to remove a sleep timer from processing audio oops.

Fix Win 2 Error For Portable Version [temporary]

  • Fixed an issue where Win 2 Error would happen with the portable version, temporary fix. More better
  • New UI Style (Experimenting with styling)

Remote Microphone update and Stream Module Update

Improvements:

  • Enhanced Error Handling and Retries in Downloading Segments:
    • Improved the download_segment function in stream_transcription_module.py to include more robust error handling and retries for downloading segments.
    • Added a max_retries parameter to the download_segment function to specify the number of retry attempts.
    • The function now handles requests.exceptions.RequestException specifically for network-related errors, providing more informative error messages.
    • Implemented a retry mechanism with an optional retry_delay to handle temporary network issues.
    • Added error handling for http.client.IncompleteRead exceptions, which can occur if the connection drops during download.
  • Improved M3U8 Playlist Loading:
    • The load_m3u8_with_retry function in stream_transcription_module.py has been enhanced to retry loading the M3U8 playlist file if there are errors, making it more resilient to network fluctuations.
    • The function now handles potential requests.exceptions.RequestException and http.client.IncompleteRead errors during playlist loading, retrying with a delay until successful.
  • Optimized Segment Downloading and Skipping Logic:
    • Streamlined the segment downloading logic to avoid re-downloading already processed segments, improving efficiency.
    • Modified the code to skip segments that have already been downloaded successfully, preventing unnecessary downloads.
  • Prep for native audio capture support
    • Added sounddevice, soundfile, and pydub to requirements.txt for audio capture. Will be using a more native way to capture audio better.
  • GUI Improvements
    • Adjusted vertical spacing for headers in player.html to address potential overlapping issues. This change ensures better visual clarity and prevents elements from overlapping, enhancing the user interface.

Bug Fixes:

  • Fixed Issue with Segment Downloading in stream_transcription_module.py:
    • Resolved a bug where the code was not properly skipping already downloaded segments in certain situations. This fix ensures that only new segments are downloaded instead of trying to decode broken audio files, improving efficiency. Fixes #108
  • Fixed Issue with Incorrect HLS Flags in remote_microphone.py:
    • Corrected the HLS flags used in the FFmpeg command in remote_microphone.py. This change ensures that the generated HLS playlist is created correctly, addressing potential issues with live stream playback.

Lock numpy to version 1.26.4

  • Fixes #111 - Lock numpy to version 1.26.4

Update README.md

Version Bump

Additional Fixes

  • UI Update: Sets a reminder to change port number before using prevents issue 107 (Fixes #107 )

Full Changelog: 1.0.99995a3...1.0.99995a4


Version 1.1-A3
A2 -> A3

  • Fixed an issue where Win Error 2 would show up. #106
  • Portable Version of FFMPEG will now be packed alongside the program, this is a temporary fix and will be baked into the program soon.
  • GUI style updated. (Source version, not current release)

Synthalingua Change Log: Version 1.0.99995

This update focuses on improving the streaming functionality and user experience.

New Features:

  • Remote Microphone Streaming: You can now stream audio from your microphone to a web server, allowing remote access for translation and transcription. This is useful for situations where you need to capture audio from a device that is not directly connected to the computer running Synthalingua.
  • HLS Stream Password Support: Added support for HLS streams that require a password. You can now specify the password ID and password using the --remote_hls_password_id and --remote_hls_password flags.
  • Improved Stream Downloading: Enhanced the reliability of segment downloading with retry mechanisms and error handling for streams with password protection or invalid credentials.
  • Concurrent Download Limiting: Implemented a semaphore to limit the number of concurrent segment downloads, preventing potential network congestion and improving overall stability.
  • Reduced Latency: Added a delay between segment downloads to improve the smoothness of stream processing and reduce latency.

Bug Fixes:

  • Stream Transcription Crashes: Resolved several issues that could cause the stream transcription process to crash unexpectedly.
  • Blacklist Filtering: Fixed a bug where blacklist filtering was not applied correctly in certain cases.
  • User Interface Enhancements: The GUI wrapper now provides more informative messages and tooltips to guide users through the configuration process.

Other Changes:

  • Updated dependencies to their latest versions.
  • Refined code for better readability and maintainability.

Please note: This changelog highlights the key changes in version 1.0.99995. For a comprehensive list of all changes, please refer to the commit history on the GitHub repository.

ℹ️ Important information:

The streaming server for the microphone will record 30 1 second chunks. So if you want a 6 second record time, set to 6 chunks, or 3 seconds of audio set to 3 chunks. 1 Chunk = 1 Second


Synthalingua Remote Microphone Streaming and HLS Password Support

This update introduces two major features to Synthalingua: remote microphone streaming and support for password-protected HLS streams.

Remote Microphone Streaming

You can now stream audio from your microphone to a web server, enabling remote access for translation and transcription. This is particularly useful when:

  • Capturing audio from a different device: If your microphone is connected to another computer or device within your network, you can utilize this feature to stream the audio to the machine running Synthalingua.
  • Sharing audio with collaborators: Collaborators on different machines can access and translate/transcribe the audio...
Read more

1.0.99995 | Alpha 3 for 1.1 | Current: Version 1.1-A3

07 May 07:35
Compare
Choose a tag to compare

Portable + GUI is at itch.io! Pick it up there.


Version 1.1-A3
A2 -> A3

  • Fixed an issue where Win Error 2 would show up. #106
  • Portable Version of FFMPEG will now be packed alongside the program, this is a temporary fix and will be baked into the program soon.
  • GUI style updated. (Source version, not current release)

Synthalingua Change Log: Version 1.0.99995

This update focuses on improving the streaming functionality and user experience.

New Features:

  • Remote Microphone Streaming: You can now stream audio from your microphone to a web server, allowing remote access for translation and transcription. This is useful for situations where you need to capture audio from a device that is not directly connected to the computer running Synthalingua.
  • HLS Stream Password Support: Added support for HLS streams that require a password. You can now specify the password ID and password using the --remote_hls_password_id and --remote_hls_password flags.
  • Improved Stream Downloading: Enhanced the reliability of segment downloading with retry mechanisms and error handling for streams with password protection or invalid credentials.
  • Concurrent Download Limiting: Implemented a semaphore to limit the number of concurrent segment downloads, preventing potential network congestion and improving overall stability.
  • Reduced Latency: Added a delay between segment downloads to improve the smoothness of stream processing and reduce latency.

Bug Fixes:

  • Stream Transcription Crashes: Resolved several issues that could cause the stream transcription process to crash unexpectedly.
  • Blacklist Filtering: Fixed a bug where blacklist filtering was not applied correctly in certain cases.
  • User Interface Enhancements: The GUI wrapper now provides more informative messages and tooltips to guide users through the configuration process.

Other Changes:

  • Updated dependencies to their latest versions.
  • Refined code for better readability and maintainability.

Please note: This changelog highlights the key changes in version 1.0.99995. For a comprehensive list of all changes, please refer to the commit history on the GitHub repository.

ℹ️ Important information:

The streaming server for the microphone will record 30 1 second chunks. So if you want a 6 second record time, set to 6 chunks, or 3 seconds of audio set to 3 chunks. 1 Chunk = 1 Second


Synthalingua Remote Microphone Streaming and HLS Password Support

This update introduces two major features to Synthalingua: remote microphone streaming and support for password-protected HLS streams.

Remote Microphone Streaming

You can now stream audio from your microphone to a web server, enabling remote access for translation and transcription. This is particularly useful when:

  • Capturing audio from a different device: If your microphone is connected to another computer or device within your network, you can utilize this feature to stream the audio to the machine running Synthalingua.
  • Sharing audio with collaborators: Collaborators on different machines can access and translate/transcribe the audio stream from your microphone, facilitating remote collaboration. So lets say a user has a beefy pc, with like a 24gb gpu, using the 2gb ram option and english they can support a few people leaving enough gpu for personal use as-well.

To use remote microphone streaming:

  1. Run the remote_microphone.py script on the machine with the microphone input or virtual audio input. This script creates a local web server that streams the microphone audio as an HLS stream. You will be prompted to select the microphone and choose a server port and stream key. For instance, if the script generates the stream key "your_secret_key", the HLS playlist URL would be:

    http://localhost:8888/index.m3u8?key=your_secret_key 
    
  2. On the machine running Synthalingua, use the --stream flag with the HLS playlist URL:

    python transcribe_audio.py --stream "http://localhost:8888/index.m3u8?key=your_secret_key" --stream_translate
    

    Remember to replace "your_secret_key" with the actual stream key generated by the remote_microphone.py script.

  3. Add the --remote_hls_password_id and --remote_hls_password flags to provide the stream key ID and key and othe relevant arguments:

    python transcribe_audio.py --ram 2gb --stream_original_text --stream "http://10.0.0.100:8888/index.m3u8?key=pMt3hgV1cVQRW08L9k3VDw" --stream_language English --stream_chunks 6 --device cuda --ignorelist "X:\github\Real-Time-Translation\blacklist.txt" --portnumber 2000 --condition_on_previous_text --remote_hls_password_id "key" --remote_hls_password "pMt3hgV1cVQRW08L9k3VDw "
    

    This ensures that only authorized users with the correct stream key can access the audio stream. Which is hard coded enabled, there will be not option to disable this. Security first! This command does the following, Sets the VRAM usage to 2GB, Will show original text, Identify the input language as English so we don't need to transcribe or translate, sets the stream chunk to 6 (6 second audio recording time), using cuda (aka gpu) using a custom black list of phrases, Sets the webserver of Synthalingua to 2000 on the local machine, condition_on_previous_text will try to prevent spammed repeats of words, hls id is key, password is the password after the = sign.

HLS Stream Password Support

Synthalingua now supports HLS streams that require a password through url authentication, allowing you to access and translate/transcribe content from premium or protected sources that use hls passwords via direct url. Please remember not all HLS Password streams will not work like this, but this is still early alpha and will be improved upon later.

To use HLS stream password support also comes along the microphone server:

  1. Obtain the HLS URL and password information. This might involve inspecting network requests or utilizing browser developer tools to identify the HLS playlist URL and any required authentication parameters.

  2. Use the --stream flag with the HLS URL:

    python transcribe_audio.py --stream "https://your-protected-stream.com/playlist.m3u8" --stream_translate 
    
  3. Include the --remote_hls_password_id and --remote_hls_password flags to provide the password ID and password:

    python transcribe_audio.py --stream "https://your-protected-stream.com/playlist.m3u8" --stream_translate --remote_hls_password_id "your_id" --remote_hls_password "your_password" 
    
  4. Replace "your_id" and "your_password" with the actual values required for authentication. The specific format and values for these parameters will vary depending on the stream provider.

Important Notes:

  • The remote microphone server is also password-protected. Therefore, you still need to use the --remote_hls_password_id and --remote_hls_password flags when connecting to the microphone stream.
  • HLS password support is currently in early alpha and may not work with all streams. We are actively working to improve compatibility and reliability.
  • Ensure that ports are open if the microphone server is not within your local network.
  • The default password ID used by the remote_microphone.py script is "key".

I hope these new features enhance your experience with Synthalingua! Please feel free to report any issues or provide feedback on the GitHub repository.

Update 1.0.99994 | GUI Update, Bug Fixes, QoL Changes & More

22 Apr 22:23
e505a0e
Compare
Choose a tag to compare

This is NOT the next major update release for remote Web UI. This is a QoL and Bug fix update. Still hard at work for next major.

This update is the final update for QoL things, and other bug fixes.
After this, Update 1.1.0 is the only thing I'll be working on.

Thanks for using my tool! This is a passion project, so it's just me working on this. I apologize for the slow updates, but balancing this project/ work/ family/ and other things is not easy.


Noticeable Changes.

  • GUI

    • Customizable Captions Window can now be saved
    • You can now edit a block list file or load your own straight from the GUI
    • You can now save the generated command with the save button, so you can just relaunch the app with out clicking generate.
    • You can now generate a web player url to use for your self, or to share with friends.
  • Captions Window

    • Word block list will also search and destroy in the captions window if the script it self misses them.
  • App Changes

    • Added repeat protections, this is not bullet proof, but is still something to use. Must be enabled through the GUI with "Repeat Protection", or with the command line argument --condition_on_previous_text
    • Repeat protection was added.
    • Word/phrase block list was added, use --ignorelist "c:\path\to\textfile.txt" to load the list. This helps by having multiple lists you can use for certain streamers or personally used list.
  • OBS/Stream Source

    • Text now has a green background so you can remove it easily with a color filter. The color is pure green #00FF00

Portable + GUI is at itch.io! Pick it up there.


Extended Update Log

What's Changed

Full Changelog: 1.0.99992hf6...1.0.99994

Web Interface Update

  • Updated the web interface, including HTML changes.
  • Now green to easily filter out in OBS.
  • Added Font Size.
  • Updated index.html.
  • Added form/option to customize web player easily.
  • Removed Detected language info from header in the web player.

Model Loading Issue

  • Fixed an issue where the models would load multiple times.
  • Fixed an issue where Original was set to English if no argument was passed (auto mode).
  • Testing shows CPU mode is now slightly faster and GPU mode increased too.

Update to Wrapper, Caption Window, Subtitle Window

  • Updated the Wrapper, including the Captions Window and Subtitle Window; it will now save and reload settings. Also added extra warning before wiping settings.
  • Updated sub title window with additional checks to not load URIs that don't need to be loaded.
  • Updated Wrapper for Word Block list.

[fix] API Passthrough Fix

  • Fixed the issue where the text in the caption window appeared to repeat from the start of the session.

[fix] Stopped Log Replay

  • Prevented the console from replaying the entire session per translation.

Word Block List

  • Added a Word Block list (Early Stages).

Update 1.0.99992hf5/6 | Word Block List

18 Apr 12:57
Compare
Choose a tag to compare

This is NOT the next major update release for remote Web UI. This is a small feature update. Still hard at work for next major.

hf5 -> hf6

  • Fixed an issue where word list wouldn't load correctly.

Portable + GUI is at itch.io! Pick it up there.

Simple What's New

Application Update, you'll need to grab the GUI + Portable this time.

  • Word Block List
  • Fixed an issue where the console would replay previous translations / transcriptions
Flag Description
--ignorelist Activates the blacklist.txt file.

hf5 -> hf6

Advanced Logs

Full Changelog: 1.0.99992hf4...1.0.99992hf6

Update 1.0.99992hf4

17 Apr 16:02
Compare
Choose a tag to compare

This is NOT the next major update release for remote Web UI. This is a patch update. Still hard at work for next major.

Portable + GUI is at itch.io! Pick it up there.

Simple What's New

Application Update, you'll need to grab the GUI + Portable this time.

  • Fixed an error in the program where stacked transcription/translations would show in the Subtitle Window (looked like conversations were replaying)
  • Subtitle Window only will request loaded subtitles that are enabled
  • Fixed the background color not restoring from plant mode.

Advanced Logs

Full Changelog: 1.0.99992hf1...1.0.99992hf4

1.0.99992hf1 | GUI Update

24 Mar 18:06
dad2378
Compare
Choose a tag to compare

Portable + GUI is at itch.io! Pick it up there.

Simple What's New

  • Fixed an issue where the GUI wouldn't recognize the already saved script location
  • Fixed an issue where the generate command wouldn't do a full path for source or portable location.

Advanced Logs

What's Changed