feat: implemented v1 audio-to-midi conversion (polyphonic only, algorithm-based)

This commit is contained in:
Xiaohan-Tian
2026-07-06 22:56:22 -07:00
parent f4e22e50a4
commit 5aa74e61a8
18 changed files with 1518 additions and 17 deletions
+14
View File
@@ -191,6 +191,7 @@ export const zhCnMessages: TranslationMessages = {
'dialog.title.tempoDetection': '速度检测',
'dialog.title.applyTempo': '应用速度',
'dialog.title.chordDetection': '和弦检测',
'dialog.title.audioToMidi': '转换为 MIDI',
'dialog.title.input': '输入',
'dialog.title.confirm': '确认',
'dialog.close': '关闭对话框',
@@ -201,6 +202,7 @@ export const zhCnMessages: TranslationMessages = {
'dialog.chordHint.audio': '和弦分析仍属实验性功能。和声内容、编配密度以及瞬态较强的素材都可能影响准确率。建议先使用默认设置,再逐步微调灵敏度和稳定性,让检测结果更贴近实际乐句。',
'dialog.chordHint.midi': '和弦分析仍属实验性功能。和弦堆叠密度、重叠以及装饰音都会影响结果。建议先使用默认设置,再调整短音抑制和和声关注方式,以匹配该段音乐的和声作用。',
'dialog.chordHint.tempo': '速度分析仍属实验性功能。自由速度、瞬态稀疏以及多层打击乐都可能降低准确率。建议先使用默认 BPM 范围,如果第一次结果不理想,再把分析范围收窄到更可能的速度区间。',
'dialog.audioToMidiHint': 'Audio-to-MIDI 转换仍属实验性功能。建议先切换到频谱视图,调整 Floor,直到只剩下真正的音符轮廓而大部分鬼影音高消失,再启用使用当前 Floor dB 后执行转换。',
'dialog.sourceHint.kgone': '为了获得更可靠的和弦标签,建议分析已经削弱或移除了人声和打击乐的 stem。如果已启用 K.G.One Music Studio 服务器集成,请使用带有 “Vocal, Drums, Bass, Guitar, Piano, and Others” 的 Separator 模型,并优先分析 Piano 或 Others stem。',
'dialog.sourceHint.local': '为了获得更可靠的和弦标签,建议分析已经削弱或移除了人声和打击乐的 stem。如果您使用本地分轨器,请选择 “Vocal, Drums, Bass, and Others” 模型,并使用 Others stem 进行分析。',
'dialog.label.sensitivity': '灵敏度',
@@ -217,7 +219,18 @@ export const zhCnMessages: TranslationMessages = {
'dialog.label.minimumBpm': '最小 BPM',
'dialog.label.maximumBpm': '最大 BPM',
'dialog.label.autoAlignRegionToBeat': '自动将片段对齐到拍点',
'dialog.label.monophonicOnly': '仅限单音 (v1)',
'dialog.label.useCurrentFloorDb': '使用当前 Floor dB',
'dialog.label.manualFloorDb': '手动 Floor dB',
'dialog.label.pitchRange': '音高范围',
'dialog.label.quantizeNoteStart': '量化音符起点',
'dialog.label.quantizeNoteLength': '量化音符长度',
'dialog.label.convertLoopRangeOnly': '仅转换 loop 范围内的音频片段',
'dialog.label.groupAdjacentPitchesToHighest': '将相邻音高归并到最强的音高格',
'dialog.label.targetTrack': '目标 MIDI 轨',
'dialog.to': '到',
'dialog.message.chordDetection': '在处理前调整音频和弦检测设置。',
'dialog.message.audioToMidi': '在处理前调整 Audio-to-MIDI 转换设置。',
'dialog.message.tempoDetection': '在处理前调整音频速度检测设置。',
'dialog.message.tempoApply': '检测到速度:{bpm} BPM。请选择应用方式。\n\n"更新当前速度"将修改此片段位置的有效速度。"插入速度变更"将在片段起始点前最近的小节处添加新的速度区域。',
'dialog.action.updateCurrentTempo': '更新当前速度',
@@ -352,6 +365,7 @@ export const zhCnMessages: TranslationMessages = {
'pianoRoll.detectingChords': '正在检测和弦...',
'pianoRoll.detectTempo': '检测速度...',
'pianoRoll.detectingTempo': '正在检测速度...',
'pianoRoll.convertToMidi': '转换为 MIDI...',
'percussion.short.35': '原底鼓',
'percussion.short.36': '底鼓',
'percussion.short.37': '边击',