Skip to content

Add on-device English lyric translation - #3

Open
KashishSingh0936 wants to merge 1 commit into
Shippy-Music:mainfrom
KashishSingh0936:agent/add-english-lyric-translation
Open

Add on-device English lyric translation#3
KashishSingh0936 wants to merge 1 commit into
Shippy-Music:mainfrom
KashishSingh0936:agent/add-english-lyric-translation

Conversation

@KashishSingh0936

Copy link
Copy Markdown

What changed

  • add an explicit Translate to English action to the full lyrics surface
  • detect the source language and translate on-device with Google ML Kit
  • keep original lyrics primary and render English underneath each source line
  • preserve synchronized timestamps, active-line scrolling, and tap-to-seek behavior
  • deduplicate repeated lyric lines before translation and reconstruct them in order
  • cancel or ignore stale translation work when the active track changes
  • retain completed current-track translations for hide/show without retranslating
  • document the product, UX, and architecture decision

Why

Shippy already displays synchronized and plain lyrics, but listeners cannot understand non-English lyrics inside the app. This adds a narrow, user-initiated translation utility without introducing cloud credentials, automatic translation, or broader AI branding.

User impact

Listeners can request an English translation while keeping the original lyrics visible. The UI discloses the approximately 30 MB on-device model download, attributes the translation to Google, and reports loading, already-English, unsupported-language, and retryable failure states without hiding the original lyrics.

Validation

  • rebased onto Shippy-Music/Shippy:main at 7fb431c9f
  • git diff --check passed
  • dialog_lyrics.xml parsed successfully
  • focused deterministic tests added for timestamp/order preservation, repeated-line deduplication, and plain-line reconstruction
  • local Gradle formatting, compilation, and JVM execution were unavailable because this machine has no configured JDK; two attempts to provision a temporary portable JDK were interrupted by the network
  • Android/device behavior remains unverified and should be exercised before marking this PR ready

@Rtx09x
Rtx09x marked this pull request as ready for review August 3, 2026 05:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant