Skip to content

[Transcribe] Refactor and unify APIs, add GAME algorithm and long chunk detection#2000

Merged
stakira merged 7 commits intostakira:masterfrom
yqzhishen:transcribe
Mar 12, 2026
Merged

[Transcribe] Refactor and unify APIs, add GAME algorithm and long chunk detection#2000
stakira merged 7 commits intostakira:masterfrom
yqzhishen:transcribe

Conversation

@yqzhishen
Copy link
Copy Markdown
Collaborator

Copilot AI review requested due to automatic review settings March 11, 2026 09:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors audio-to-MIDI transcription into a unified extraction pipeline, adds support for the GAME transcription backend (with batching/options), and introduces user-facing algorithm selection plus long-chunk detection/warnings.

Changes:

  • Add MidiExtractor<TOptions> base with shared slicing/resampling, progress reporting, batching, and long-chunk confirmation.
  • Introduce GAME backend + UI (dialog + view model) for selecting SOME vs GAME and configuring GAME inference/batching.
  • Refactor SOME to the new unified extractor API and update localization strings for the new dialog/messages.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
OpenUtau/Views/TranscribeDialog.axaml.cs New dialog code-behind handling OK/Cancel and Enter/Esc shortcuts.
OpenUtau/Views/TranscribeDialog.axaml New dialog UI for algorithm selection and GAME options.
OpenUtau/Views/MainWindow.axaml.cs Hooks transcription flow to show the new dialog, run selected backend, and prompt on long chunks.
OpenUtau/ViewModels/TranscribeViewModel.cs New VM that drives algorithm availability/selection and GAME option/batching construction.
OpenUtau/Strings/Strings.axaml Adds transcription dialog strings and renames SOME error key.
OpenUtau/Strings/Strings.zh-CN.axaml Adds zh-CN strings for transcription dialog and SOME error key.
OpenUtau.Core/Analysis/TranscribedNote.cs Introduces a shared note DTO for extractor backends.
OpenUtau.Core/Analysis/Some.cs Refactors SOME to MidiExtractor<SomeOptions> and adds install detection.
OpenUtau.Core/Analysis/MidiExtractor.cs Adds shared extraction pipeline (mono mixdown, resample, slice, batching, long-chunk detection).
OpenUtau.Core/Analysis/Game.cs New GAME backend implementation with lazy ONNX session loading and batching support.
OpenUtau.Core/Analysis/AudioSlicer.cs Extracts slicer logic into a shared component used by extractors.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@stakira stakira merged commit 0561ad3 into stakira:master Mar 12, 2026
6 checks passed
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.

3 participants