Skip to content

Releases: pollybird/edge_tts_roles_electron

v2.0.4

Choose a tag to compare

@pollybird pollybird released this 07 Oct 08:17

v2.0.4

Improvements

  • TTS main-process modularization: the original 481-line ttsService.ts has been split into four responsibility-focused modules (the public API and the ttsService singleton are unchanged):
    • src/main/tts/voiceCatalog.ts — voice catalog caching.
    • src/main/tts/segmentCache.ts — PCM disk cache (lazy cacheDir initialization with tmpdir fallback, SHA-256 keyFor, LRU prune 300→200).
    • src/main/tts/segmentSynthesizer.ts — single-segment streaming synthesis with up to 15 retries and a 15 s idle watchdog.
    • src/main/ttsService.ts — pipeline orchestration, progress reporting and attachExtras (~240 lines).

Testing

  • UI automated tests (Playwright / Electron): 9 end-to-end cases added, covering:
    • First-launch agreement gate (5): dialog shown on fresh userData, ESC/mask click cannot bypass, decline exits the app, accept without checkbox still prompts on restart, accept with checkbox persists and skips the dialog on restart.
    • Language menu switching and persistence (1): drives the native Language menu via app.evaluate, verifies the placeholder text changes and settings.locale is persisted across restarts.
    • Text editor marker insertion (3): role markers [A][C] in click order, custom pause + beep + quick pause producing [A][500][R][1000], and markers mixed with manual typing ([B]hello).
    • Configured via playwright.config.ts; CI runs xvfb-run --auto-servernum npm run test:e2e and uploads the Playwright report on failure.

Bug Fixes

  • App.vue IPC subscription timing: all IPC subscriptions (onProgress, onFinished, onError, onLocaleChanged, onMenuAction, etc.) were previously registered after await window.api.listVoices(), so the locale:changed broadcast was lost when the voice list had not yet returned — language switching could silently fail shortly after first launch. Subscriptions are now registered synchronously at the top of onMounted, with async initialization moved into an IIFE. This regression was caught by the new E2E tests.

Repository

  • Issue / PR templates & Code of Conduct: added Issue templates (bug report, feature request), a Pull Request template, and a Contributor Covenant v2.1 Code of Conduct — all bilingual (Chinese + English).
  • README polish: added shields.io badges (Star / License / Release / CI), a "Star this repo" call to action, and a product screenshot.
  • MANUAL update: documented the tts/ subdirectory project structure, Playwright in the technology stack, an E2E testing section, and the CI description.

Installation: download the installer for your platform and architecture (Windows *-setup.exe, macOS *.dmg/*.zip, Linux *.AppImage/*.deb/*.rpm). The app checks for updates automatically on launch; existing v2.0.x users will receive this version through the in-app updater (GitHub primary feed, GitCode fallback).

Full changelog: https://github.com/pollybird/edge_tts_roles_electron/blob/main/UPGRADE.md

v2.0.3

Choose a tag to compare

@pollybird pollybird released this 06 Oct 06:43

Edge-TTS Multi-role Audio Generator v2.0.3

What's New

  • Persistent language switching: the language dropdown in the editor header has been removed. Language selection now lives in a new top-level Language menu (between Edit and Help), listing all 9 languages as radio items with the active one checked. The choice is persisted and reapplied on restart; users who never pick a language still follow the system language by default.
  • First-run user agreement gate: on first launch the app shows a modal User Agreement dialog. The main window is fully blocked until you click I have read and agree to the User Agreement — the dialog cannot be dismissed via mask click, ESC or a close button. A Do not show again next time checkbox persists the acceptance (leaving it unchecked allows this session but prompts again next launch), and Disagree and Exit terminates the app.
  • Feedback for manual update checks: when Help → Check for Updates finds that the latest version is already installed, the app now shows an explicit message. The automatic background check on startup remains silent.

Engineering

  • Update-feed probing was extracted into an Electron-free, injectable module (updateFeed.ts) with 15 new unit tests covering GitHub-first, GitCode fallback and dual-source failure paths.
  • Release automation: GitHub Actions now run typecheck/lint/tests on push and PR, and a v* tag triggers full multi-platform builds and release publishing.

Downloads

Platform Architecture File
Windows (NSIS installer) x64 / arm64 edge-tts-roles-2.0.3-x64-setup.exe / edge-tts-roles-2.0.3-arm64-setup.exe
macOS (zip) Intel x64 / Apple Silicon arm64 edge-tts-roles-2.0.3-x64.zip / edge-tts-roles-2.0.3-arm64.zip
Linux AppImage x86_64 / arm64 edge-tts-roles-2.0.3-x86_64.AppImage / edge-tts-roles-2.0.3-arm64.AppImage
Linux deb amd64 / arm64 edge-tts-roles-2.0.3-amd64.deb / edge-tts-roles-2.0.3-arm64.deb
Linux rpm x86_64 / aarch64 edge-tts-roles-2.0.3-x86_64.rpm / edge-tts-roles-2.0.3-aarch64.rpm

In-app updates use the attached latest.yml, latest-mac.yml and latest-linux.yml.

Full Changelog: v2.0.2...v2.0.3

v2.0.2

Choose a tag to compare

@pollybird pollybird released this 05 Oct 13:56

v2.0.2

v2.0.1 was not published as a Release, so this release includes all changes from both v2.0.1 and v2.0.2.

✨ New Features

  • Arabic (ar-SA) translation with full right-to-left (RTL) layout support.
  • Traditional Chinese (zh-TW) translation using Taiwan terminology.
  • Runtime language switcher: a language dropdown in the editor header supports instant switching across 9 languages. The app follows the system language on startup; switching applies to the current session only.
  • Automatic updates: the app checks for updates 5 seconds after launch, or manually via Help → Check for Updates. The primary feed is GitHub Releases; when GitHub is unreachable it automatically falls back to GitCode.

🐛 Bug Fixes

  • Update errors (e.g. an HTML page returned when latest.yml is missing on the mirror) no longer leak raw content into the main window — only a simple "Update check failed" dialog is shown.
  • (v2.0.1) The preview dialog's stopped status was hardcoded in Chinese; it now uses the translated string in all languages.

🔒 Security

  • (v2.0.1) The audio-file IPC channel validates file extensions against an allowlist (mp3, wav, ogg, flac, m4a, aac, opus, wma), preventing arbitrary file access.

⚖️ Legal

  • User agreement clause 4 revised: the previous prohibition on reverse engineering conflicted with the AGPL-3.0 license; it now states AGPL-3.0 compliance and prohibits infringing the rights of Microsoft and other service providers.

🧪 Testing

  • (v2.0.1) Introduced Vitest with 56 passing tests covering text parsing, voice grouping/display, audio processing, and the TTS service.

📦 Downloads

Platform Architecture File
Windows x64 (Intel/AMD) edge-tts-roles-2.0.2-x64-setup.exe
Windows ARM64 edge-tts-roles-2.0.2-arm64-setup.exe
macOS Intel (x64) edge-tts-roles-2.0.2-x64.zip
macOS Apple Silicon (arm64) edge-tts-roles-2.0.2-arm64.zip
Linux x86_64 edge-tts-roles-2.0.2-x86_64.AppImage / edge-tts-roles-2.0.2-amd64.deb / edge-tts-roles-2.0.2-x86_64.rpm
Linux arm64 edge-tts-roles-2.0.2-arm64.AppImage / edge-tts-roles-2.0.2-arm64.deb / edge-tts-roles-2.0.2-aarch64.rpm

Full Changelog: v2.0.0...v2.0.2

v2.0.0

Choose a tag to compare

@pollybird pollybird released this 04 Oct 05:40

v2.0.0

Edge-TTS Multi-Role Audio Generator v2.0.0, built with Electron + Vue 3 + TypeScript.

What's New

  • Extra Audio Tracks: pick local audio files as intro, outro, and background music, each with an independent 0–100% volume slider; background music is automatically looped to cover the entire voice track
  • Launch Maximized: the main window now opens maximized by default
  • Layout Refinement: the extra-audio panel has been moved below the voice selection

Full Feature Set

  • Four switchable speaker roles (A–D), each with independent neural voice, rate, volume, and pitch
  • Marker-based script: [A] [B] [1000] [R]
  • Reliable long-form synthesis: up to 15 retries per segment, 15 s idle watchdog, disk cache for resumable generation
  • Export to WAV / MP3 / OGG / FLAC (bundled ffmpeg, no system install required)
  • Seven built-in UI languages: English, Simplified Chinese, French, German, Spanish, Russian, Japanese
  • Complete Edge TTS voice catalog, grouped and labeled by language

Downloads

Platform Architecture File
Windows x64 edge-tts-roles-2.0.0-x64-setup.exe
Windows ARM64 edge-tts-roles-2.0.0-arm64-setup.exe (bundles x64 ffmpeg, runs via emulation)
macOS Intel edge-tts-roles-2.0.0-x64.zip
macOS Apple Silicon edge-tts-roles-2.0.0-arm64.zip
Linux x86_64 .AppImage / .deb / .rpm
Linux ARM64 .AppImage / .deb / .rpm

The Windows NSIS installer presents the full GNU AGPL v3 license page — please read it before proceeding.

License

Released under AGPL-3.0-only. See LICENSE for the full text.